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-соединение не позволяет программно выполнять интерактивные действия (открывать окна и т.д).
|