1CLenta.ru  

1С:Предприятие - подключение OLE Automation сервер

Программирование системы     25.05.2016 13:57     14904

Automation сервер применяется для управления 1С:Предприятием и выполнения интерактивных действий в нём из внешнего приложения.
Для создания данного вида соединения используются COM-объекты V82.Application(для 1С:Предприятия версии 8.2) или V83.Application(для 1С:Предприятия версии 8.3). При подключении через Automation сервер запускается приложение в отдельном процессе. С помощью одного экземпляра объекта можно установить неограниченное количество соединений. Automation сервер 1С:Предприятия предоставляет доступ ко всем свойствам и методам своего глобального контекста, а также к пользовательскому интерфейсу.

Процедура УстановитьСоединениеAutomation()


Процедура устанавливает соединеие с 1С:Предприятием. В зависимости от типа подключаемой информационной базы(файловый, серверный) строка подключения задаётся в разном формате.

Файловый вариант
  • File - имя каталога, в котором размещается информационная база
  • Usr - имя пользователя информационной базы
  • Pwd - пароль пользователя информационной базы

Серверный вариант
  • Srvr - имя компьютера или его ip-адрес
  • Ref - имя базы в кластере серверов
  • Usr - имя пользователя информационной базы
  • Pwd - пароль пользователя информационной базы


Перем мСоединение;
Процедура УстановитьСоединениеAutomation()

//Файловый вариант
СтрокаПодключения = "File=""""; Usr=""""; Pwd="""";";

//Серверный вариант
СтрокаПодключения = "Srvr=""""; Ref=""""; Usr=""""; Pwd="""";";

Попытка
мСоединение = Новый COMObject("V83.Application");
мСоединение.Connect(СтрокаПодключения)

Исключение
Сообщить("Не удалось подключиться: " + ОписаниеОшибки());
КонецПопытки;

КонецПроцедуры


Процедура ВыполнитьДействия()


Процедура ВыполнитьДействия()

//Выполнить интерактивные действия
Форма = мСоединение.Справочники.ИмяСправочника.ПолучитьФормуВыбора();
//...
//...
//...

//Обработать данные

Справочник = мСоединение.Справочники.ИмяСправочника;
Документ = мСоединение.Документы.ИмяДокумента;
Регистр = мСоединение.РегистрыСведений.ИмяРегистра;
//...
//...
//...

//Создать любой объект встроенного языка

ЗапросCOM = мСоединение.NewObject("Запрос");
ТаблицаCOM = мСоединение.NewObject("ТаблицаЗначений");
МассивCOM = мСоединение.NewObject("Массив");
//...
//...
//...

КонецПроцедуры


Процедура ЗакрытьСоединениеAutomation()


Процедура ЗакрытьСоединениеAutomation()
мСоединение = Неопределено;
КонецПроцедуры


COM-соединение, является менее ресурсозатратным чем подключение через Automation сервер. Но COM-соединение не позволяет программно выполнять интерактивные действия (открывать окна и т.д).

Комментарии (0)