Помощь - Поиск - Пользователи - Календарь
Полная версия: Запись в таблицу "Контактная информация" через COM
"1C-PRO" - форум по 1C > Форумы по платформе "1С:Предприятие 8.x" > (8.х) Другие проекты на платформе "1С:Предприятие 8.x"
Vzhik
Всем привет!
Столкнулся со следующей проблемой.
Делаю веб (ASP.NET 2.0) сервис для доступа к данным "1С Предприятие 8.0". Есть необходимость добавлять новые контактные данные для контрагентов. Создаю COM (V8DbConnection) соединение, формирую запрос (V8DbInsertCommand) на таблицу РегистрСведений.КонтактнаяИнформация, выполняю его методом V8DbInsertCommand.ExecuteNonQuery() и получаю exception с сообщением "Вставка не поддерживается. Таблица РегистрСведений.КонтактнаяИнформация". Каким же образом я могу вставить новые данные в контактную информацию через COM??? Может, стоит написать в 1С для этого отдельную экспортную процедуру?
Vzhik
Увы, приходится отвечать самому себе...
Проблему, к сожалению, нельзя решить при помощи внешних запросов к ИБ 1С через COM. Ответ на вопрос, по какой причине это не разрешается, в открытых источниках мне найти не удалось. Если кто знает, буду очень признателени за информацию.

Но решение проблемы есть. Необходимо создать процедуру или функцию 1С, доступную для запуска из внешнего соединения (я такие процедуры называю "экспортными" за то, что в их объявлении стоит слово "экспорт"). Эта экспортная процедура или функция содержит всю логику по манипуляции данными обычными средствами встроенного языка 1С. В моем случае - это запись нового контакта для контрагента.

Вызвать экспортную процедуру можно средствами web-расширения, а именно методом _1C.V8.Data.V8.Call(...). Сама процедура/функция, помимо ключевого слова "экспорт", должна находится в глобальном контексте 1С, причем для модуля, в котором она определена, нужно в свойствах поставить галочку "внешнее соединение".

Надеюсь, мое решение поможет и еще кому-нибудь...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2008 Invision Power Services, Inc.