Related Posts
- Получение логина и пароля техподдержки 1С из базы
- Класс для вывода отчета в Excel
- Счет-фактура для УПП
- Библиотека классов для создания внешней компоненты 1С на C#
- Акт об оказании услуг (со скидками) — внешняя печатная форма для Управление торговлей 11.1.10.86
- Прайс-лист с артикулом в отдельной колонке
Просьба помочь, на строке с dynamic возникает ошибка:
Не удалось найти имя типа или пространства имен «dynamic» (пропущена директива using или ссылка на сборку?)
Как можно исправить ошибку?
dynamic появился вроде в NET 4.0
Это скрипт работает на ASP.NET если да то как?
При обращении к платформе 8.3 необходимо в настройках проекта поставить 32 разрядную систему))
(4) bator.koreev, при обращении к 8.3 не надо ломиться в COM 🙂
да и сам смысл ломиться в COM какой, если есть более приятные и для .Net и для 1С способы — Веб-сервисы/HTTP сервисы. Только если надо ввалить кучу данных. Но и в этом случае (да простит меня 1С :)) проще использовать более родные способы для .Net из пространства имен System.Data или даже SSIS
(1) serg__k, тип «dynamic» появился в VS 2010. В более ранних версиях его нету.
Автору большое спасибо за вполне себе грамотную и подробную статью. По существу все супер.
Но у меня возникли вопросы на которые сейчас не знаю ответа. В процессе поиска. Поиски чуть подзатянулись и поэтому хочу спросить, может автор статьи сталкивался уже? Или может кто ещё подскажет?
В общем, создаю я в C# комОбъект. Вижу через него справочники, регистры и т.п. Даже могу вызвать метод ПолучитьСтруктуруХраненияБазыДанных(). Хоть и не могу потом на стороне C# разобрать результат по частям. Но это не важно.
Написал пару методов для себя на стороне 1С.
Первый принимает в качестве параметра название объекта 1С. Параметр строковый. Возвращает тоже строку, только уже с описанием структуры хранения данного объекта. Второй метод принимает дату, возвращает число 1 или 0.
Проблема: ни тот, ни другой метод я не могу использовать на стороне C#. Получаю ошибку System.NullReferenceException: «Ссылка на объект не указывает на экземпляр объекта.»
Тоже самое получаю и при вызове ТекущаяДата().
У меня конечная цель была — узнать статус одной долгой процедуры, если статус плохой — развернуть свежий бэкап базы на тестовом сервере и параллельно запустить одну обработку на тестовом сервере.
Опять же начинаю сомневаться в том — смогу ли я корректно эту обработку запустить? Там в процедуру надо передать ряд параметров у которых типы: Строка, дата, булево…
Буду благодарен за любое направление в нужную сторону, где копать(искать).
(7) upd: Уже разобрался что для вызова методов через COM соединение существует Модуль внешнего соединения. Действительно — функции объявленные в нем — благополучно вызываются из C#. И даже параметры передаются корректно.
Но! Стоит мне вызвать в функции, объявленной в модуле внешнего соединения, функцию из другого, общего модуля — возникает та же самая ошибка. Хотя в общем модуле тоже стоит признак «Внешнее соединение». Уже думал проблема с ролями или что-то ещё. Возвращаю из общего модуля без всяких обработок просто строку «Проверка дебаг» — ошибка осталась. Возврат этой же строки непосредственно из модуля внешнего соединения — проходит корректно. Продолжаю поиски
(7) upd1: Разобрался окончательно. Всем спасибо! Первым делом надо было отлаживать всю схему из 1С, а потом уже код переносить в C#.
В 1С было видно что за ошибки возникали. И сразу все пофиксил и все заработало.
А именно: в общем модуле были ссылки на общий модуль который не имел флага «Внешнее соединение», в общем модуле были команды которые доступны только на клиенте, не обрамленные проверкой что бы выполнять только на клиенте. Плюс жесткий косяк с моей стороны — назвал методы в модуле внешнего соединения и в общем модуле — одинаково.
После устранения описанных ошибок — все заработало.
Здравствуйте. Большая просьба к знатокам разъяснить момент. Могу ли я асинхронно дергать функции из модуля внешнего соединения, в контексте выполнения одного экземпляра COM, или нужно дожидаться завершения выполнения предыдущей функции? 1С однопоточна же. Это скорее всего относится и к COM-объекту?