Back to top

1Сv8: COM-соединения

Опубликовано e-1c@mail.ru - ср, 08/24/2016 - 05:12

При применении доступа к информации в программе 1С:Предприятия 8.2 через COM–соединения есть следующие достоинства по сравнению с применением Automation сервера:
1. Мгновенная установка соединения, поскольку вообще не нужно создавать отдельный процесс ОС, а все действия выполняются в границах вызывающего процесса;
2. Мгновенное обращение к свойствам и объектам 1C 8.2, поскольку для обращения вообще не нужно организовывать межпроцессорную коммуникацию;
3. Маленький расход ресурсов ОС.

В целом вся работа в 1С 8.* через COM- соединения похожа на работу 1С: Предприятия в режиме Automation сервера. Главные отличия состоят в следующем:
1. В случае Automation сервера начинает запускаться полноценное приложение, а в случае COM –соединения начинает запускаться относительно малый внутри процессорный COM -сервер.
2. При работе через COM – соединения, являются полностью недоступными все функциональные возможности так или иным способом связанные с организацией интерфейса пользователя в программе 1С: Предприятие 8.2;
3. При работе COM-соединения не применяется узел программы конфигурации. Его роль как раз при работе с COM-подключением играет именно узел внешнего соединения.

1.1 Порядок инсталляции COM-соединения

Для нормального доступа ко всей информации в программе 1С:Предприятияе 8.2 посредством COM-подключение, должна выполняться такая последовательность действий:
1. Сначала создается специальный COM-объект вместе с идентификатором V8.COMConnector, посредством которого выполняется инсталляция соединения;
2. Выполняется обращение к методу Connect ранее уже созданного объекта V8.COMConnector. Метод Connect в свою очередь возвращает ссылку на объект COM-соединения с базой данных программы;
3. По полученному объекту СОМ-соединения происходит обращение к допустимым объектам, свойствам и методам базы информации, с которой мы соединены.

Объекты программы 1С:Предприятия, которые доступны извне посредством COM-соединения:
1. Экспортные переменные и функции/процедуры модуля внешнего соединения
2. Экспортируемые данные и процедуры/функции всех модулей
3. Включение и исключение всех модулей в целом посредством инсталляции свойств общих модулей
4. Включение и полное исключение фрагментов всех модулей посредством препроцессора
5. Полный контекст бухгалтерской программы 1С:Предприятия 8.2, за исключением только объектов, которые связаны с клиентской программой (ТекстовыйДокумент, ТабличныйДокумент, ...)

1.2 Модуль внешнего соединения
Обязанности модуля программы при работе посредством COM -соединения, выполняет именно узел внешнего соединения. Этот узел может иметь специальные процедуры-обработчики данных ПриНачалеРаботыСистемы() и ПриЗавершенииРаботыСистемы(), в которых могут размещаться действия, которые выполняются при получении и завершении соединения.

Процедуры, все функции и все глобальные переменные, которые определены в модуле внешнего соединения с ключевиком Экспорт в свою очередь становятся одной из частей глобального контекста.

1.3 Общие модули
Для таких модулей были введены свойства "Сервер", "Клиент", и "Внешнее Подключение". Они служат для точного определения в конфигурации применения модулей в клиент-серверном способе и при Com-подключении.

1.4 Объект "V8.COMConnector"
Единственная задача, которую решает COM –объект V8.COMConnector – это установка СОМ-соединения с информ. базой 1С:Предприятия 8.2. Посредством одного только экземпляра объекта V8.COMConnector может легко быть инсталлировано громадное количество соединений. У объекта V8.COMConnector есть только один способ Connect , который предназначен для инсталляция COM-соединения с базой данных 1С:Предприятия 8.2.

<СтрокаСоединения БД>

Строка соединения с БД является некоторой цепочкой специальных фрагментов вида Параметр=Значение. Фрагменты в свою очередь отделяются между собой специальными символами ';'. Если значение будет содержать пробельные символы, то оно обязано бать просто заключено в простые двойные кавычки (").

Общие данные:

Usr – логин;
Pwd - parol.

Для файлового способа определен параметр:

File - каталог базы данных.

Для клиент-серверного способа определены такие параметры:

Srvr –сервер программы 1С:Предприятия;
Ref – база данных на сервере.

Вариант Connect полностью возвращает ссылку на уже созданный объект COMсоединения.

Вариант Connect совершает COM-подключение с базой данных 1С:Предприятия 8.2 и при этом возвращает ссылку на COM-подключение.

Пример:

// Создается специальный  объект-коннектор 
V8 = Новый COMObject ("V8.COMConnector"); 
// создается  специальный объект COM -подключение 
Подключение = V8.Connect ("File=""c:\ТестСОМ\ ""; Usr =""Админ"";")

Получение доступа посредством COM-соединения будет возможным как с помощью специальных параметров строки соединения «Usr» и «Pwd», так и через юзера Windows, в любом варианте должен быть доступ к «Внешнему подключению».

1.5 Объект "COM-подключение"

COM -подключение вместе с базой данных 1С:Предприятия предоставляет абсолютно полный доступ ко всему своему контексту (см. «Контекст произведения модуля программы»). Поэтому именно COM-подключение в качестве своих способов может иметь: разные значения заданных прямо в конфигураторе объектов, разные системные константы, доступ к которым выполняется посредством менеджеров (например, справочники, перечисления, документы, константы, журналы документов, обработки, планы видов данных, отчеты, планы счетов, регистры, планы видов расчета), а также переменные, которые будут объявлены прямо в модуле внешнего соединения с ключевиком Экспорт.

Помимо того, COM -подключение имеет вспомогательный способ NewObject, посредством которого можно без проблем создавать значения конкретных типов.

Пример:

тз = Соединение. NewObject ("ТаблицаЗначений");

С помощью способа String можно получать представления данных в виде строки программы 1С:Предприятия.
Пример:

Представление = Соединение. String(Данные. УникальныйИдентификатор());

1.6. Особенности деятельности с COM-соединением

В Automation и в таком подключении TRUE и FALSE имеют свои значения: -1 (минус один) и 0.

Есть возможность организации пула подобных соединений. При этом уже на принимающей на сервере программы 1С предварительно создаются сразу несколько объектов COM-соединения и на инсталляцию необходимо намного меньше времени, так как не стоит вообще создавать новый объект.

Реализован объект ПостроительЗапроса, который необходим для преобразования текстов запросов на базе заданных настроек. Этот объект позволяет поддерживать функциональность всего построителя отчета, которая вообще не относится к выводу отчета в табличный процессор и иным задачам, которые связаны с интерфейсом пользователя. Этот объект может применяться на сервере программы и еще в Com-подключении.

Доступно применение COM-объектов при работе интегрированного языка на сервере программы 1С: Предприятия.

Если в конфигурации будет выполняться попытка создания вообще недопустимого объекта, например, какого-то табличного документа, в общем модуле, в модуле внешнего соединения или же прямо в модуле объекта, то COM-подключение может быть вообще не получено или попросту прервано в виде простого исключения.