Описание проверялось на версии 8.3.18.
1. В конфигураторе той базы, где будет работать COM соединение, открываем в гл. меню: Отладка - Подключение...
1.1. Нажимаем кнопку "Автоматическое подключение", ставим флажок "Клиентские и внешние соединения на сервере".
1.2. Нажимаем кнопку "Настройка...", копируем значение возле надписи "Отладчик". В моем случае это "tcp://ИмяПК:1562" заменяем на "tcp://localhost:1562" (далее эту строку подставим в значение атрибута debuggerURL, файла comcntrcfg.xml)
2. Создаем файл comcntrcfg.xml в директории: C:\Program Files\1cv8\8.3.18.ХХХХ\bin\conf с содержимым:
<config xmlns="http://v8.1c.ru/v8/comcntrcfg">
<debugconfig debug="true" protocol="tcp" debuggerURL="tcp://localhost:1562"/>
</config>
3. Готово. Ставим точки останова там где нужно и запускаем приложение, из которого выполняется создание COM соединения и работа с ним.
Замечание 1. Про метод УстановитьПривилегированныйРежим.
Он доступен, когда вызывается как бы "внутри" базы, встроенным языком 1С. Например, когда вы пишите Соединение.МойОбщийМодульВнешнегоСоединения.ВыполнитьУстановкуПривилегированногоРежима() - режим для подключения установится. Выполнения кода в данном случае выполняется в 1С.
Соединение.УстановитьПривилегированныйРежим(Истина) - привилег режим не установится, потому установка режима выполняется не в 1С, а той программой, которая установила соединение - vb скрипт, к примеру, и код выполняется dll'кой в процессе, вызвавшем COMConneсtor.
Такое ограничение разработчиками сделано специально, чтобы защитить информационную базу от неправомерных действий сторонних приложений.
Замечание 2. На выполнение кода в режиме COM-соединение влияет инструкция препроцессора:
#Если ВнешнееСоединение Тогда
// здесь код из COM-соединения выполняется
#Иначе
// а здесь не выполняется
#Конец
Используемые источники:
1. https://its.1c.ua/db/v8318doc#bookmark:dev:TI000001036
2. https://infostart.ru/1c/articles/309179/
Спасибо!!! все так
ОтветитьУдалить