Система 1С:Предприятие может использоваться внешними приложениями в качестве Automation-сервера. При работе в качестве Automation-сервера 1С:Предприятие предоставляет доступ ко всем свойствам и методам своего глобального контекста, а также включение и выключение пользовательского интерфейса (главного окна 1С:Предприятия 8). Кроме того, Automation-сервер 1С:Предприятия имеет дополнительные свойства и методы для выполнения действий, специфичных для работы в режиме Automation. Основное назначение Automation-сервера 1С:Предприятие в управлении приложением 1С:Предприятия 8 из других приложений и выполнение действий аналогичных интерактивным действиям, например, построение отчетов. Для запуска системы 1С:Предприятие в качестве Automation-сервера из внешнего приложения, выполняется следующая последовательность действий: создается COMОбъект с идентификатором V85.Application (для тонкого клиента V85C.Application); выполняется инициализация системы 1С:Предприятие методом Connect (для тонкого клиента существует возможность передать в строке соединения дополнительные параметры прокси сервера); вызываются свойства и методы системы 1С:Предприятие как Automation-сервера. Многие современные программные продукты (MS Office, MS FoxPro и т.п.) могут выступать в роли клиентов Automation, что позволяет обмениваться данными между этими продуктами и системой 1С:Предприятие. Замечание 1: Поскольку система 1С:Предприятие может создавать и использовать Automation-серверы, предоставляемые внешними прил
Примеры платформы
Соединитель = Новый COMObject("V85.Application");
Sub Excel_to_trade()
Dim trade As Object
Dim Товар As Object
Dim Группа As Object
Dim Элемент As Object
Set trade = CreateObject("V85.Application")
trade.Connect("File=""c:\InfoBases\Trade"";Usr=""Director"";")
Set Товар = trade.Справочники.Товары
Set Группа = Товар.СоздатьГруппу()
Группа.Наименование = "***** Экспорт из Excel ******"
Группа.Записать()
N = 100 'Количество строк в документе
For Count = 1 To N
Set Элемент = Товар.СоздатьЭлемент()
Элемент.Наименование = Application.Cells(Count, 2).Value
Элемент.Розн_Цена = Application.Cells(Count, 3).Value
Элемент.Мел_Опт_Цена = Application.Cells(Count, 4).Value
Элемент.Опт_Цена = Application.Cells(Count, 5).Value
Элемент.Родитель = Группа.Ссылка
Элемент.Записать()
Next Count
End SubПолное описание, параметры и ограничения
Automation сервер (Automation server)
Automation сервер (Automation server)
Доступен, начиная с версии 8.2.
Свойства:
Visible (Visible)
Методы:
Connect (Connect)
NewObject (NewObject)
String (String)
Описание:
Система 1С:Предприятие может использоваться внешними приложениями в качестве Automation-сервера. При работе в качестве Automation-сервера 1С:Предприятие предоставляет доступ ко всем свойствам и методам своего глобального контекста, а также включение и выключение пользовательского интерфейса (главного окна 1С:Предприятия 8). Кроме того, Automation-сервер 1С:Предприятия имеет дополнительные свойства и методы для выполнения действий, специфичных для работы в режиме Automation.
Основное назначение Automation-сервера 1С:Предприятие в управлении приложением 1С:Предприятия 8 из других приложений и выполнение действий аналогичных интерактивным действиям, например, построение отчетов.
Для запуска системы 1С:Предприятие в качестве Automation-сервера из внешнего приложения, выполняется следующая последовательность действий:
создается COMОбъект с идентификатором V85.Application (для тонкого клиента V85C.Application);
выполняется инициализация системы 1С:Предприятие методом Connect (для тонкого клиента существует возможность передать в строке соединения дополнительные параметры прокси сервера);
вызываются свойства и методы системы 1С:Предприятие как Automation-сервера.
Многие современные программные продукты (MS Office, MS FoxPro и т.п.) могут выступать в роли клиентов Automation, что позволяет обмениваться данными между этими продуктами и системой 1С:Предприятие.
Замечание 1: Поскольку система 1С:Предприятие может создавать и использовать Automation-серверы, предоставляемые внешними приложениями (т.е. является Automation-клиентом), то имеется возможность из 1С:Предприятия обращаться к другой копии 1С:Предприятия (например, к другой конфигурации) для обмена данными.
Замечание 2: Нелокализованные версии внешних программ, обращающихся к программе 1С:Предприятие посредством Automation, могут неправильно интерпретировать русские идентификаторы объектов, например, реквизитов справочников. Данное замечание не относится к продуктам MS Office и к программам, использующим в качестве языка обращения к COM-объектам Microsoft Visual Basic. Рекомендуется использовать локализованные версии программных продуктов, либо в конфигурации использовать идентификаторы без символов кириллицы. Для обращения к свойствам и методам объектов системы 1С:Предприятие из внешних приложений рекомендуется использовать их англоязычные синонимы.
Замечание 3: Все созданные объекты Automation существуют до тех пор, пока существует переменная, которая содержит значение данного объекта. Следовательно, сама программа 1С:Предприятие, выступающая в качестве объекта Automation в другой программе, будет находиться в памяти компьютера до удаления или изменения значения переменной, содержащей ее в качестве объекта.
Система 1С:Предприятие в качестве Automation-сервера предоставляет полный доступ к своему глобальному контексту. Поэтому объект Automation-сервер 1С:Предприятие в качестве своих свойств может иметь: системные константы, значения заданных в Конфигураторе объектов, доступ к которым осуществляется с помощью менеджеров (например, константы, перечисления, справочники, документы, журналы документов, отчеты, обработки, планы видов характеристик, планы счетов, планы видов расчета, регистры), а также переменные, объявленные в модуле приложения (управляемого / обычного) с ключевым словом Экспорт.
Automation-сервер 1С:Предприятие в качестве своих методов может иметь: системные процедуры и функции, а также процедуры и функции модуля приложения и общих модулей, объявленные с ключевым словом Экспорт.
Доступность:
Интеграция.
Пример:
// Пример1 создания объекта
Соединитель = Новый COMObject("V85.Application");
// Пример 2
// В данном примере запускается и инициализируется конфигурация
// 1С:Предприятие с базой данных в каталоге c:\InfoBases\Trade.
// Далее в программе 1С:Предприятие создается объект типа "Справочник.Товары",
// где создается новая группа элементов с названием "***** Экспорт из Excel ******".
// Во вновь созданную группу каталога записываются данные из таблицы MS Excel.
// Пример приводится на языке MS Visual Basic.
Sub Excel_to_trade()
Dim trade As Object
Dim Товар As Object
Dim Группа As Object
Dim Элемент As Object
Set trade = CreateObject("V85.Application")
trade.Connect("File=""c:\InfoBases\Trade"";Usr=""Director"";")
Set Товар = trade.Справочники.Товары
Set Группа = Товар.СоздатьГруппу()
Группа.Наименование = "***** Экспорт из Excel ******"
Группа.Записать()
N = 100 'Количество строк в документе
For Count = 1 To N
Set Элемент = Товар.СоздатьЭлемент()
Элемент.Наименование = Application.Cells(Count, 2).Value
Элемент.Розн_Цена = Application.Cells(Count, 3).Value
Элемент.Мел_Опт_Цена = Application.Cells(Count, 4).Value
Элемент.Опт_Цена = Application.Cells(Count, 5).Value
Элемент.Родитель = Группа.Ссылка
Элемент.Записать()
Next Count
End Sub
Использование в версии:
Доступен, начиная с версии 8.2.
Описание изменено в версии 8.3.27.
Методическая информация
Практические примеры
Automation: подключить свою базу и создать значение
V85.Application — Automation-сервер с интерфейсом приложения. Он отличается от внешнего соединения через COMConnector.
Где и как запускать
Синтаксический пример толстого клиента Windows, обращающегося к COM-интерфейсу своего отдельного учебного сервера. Эти COM-методы в справке имеют контекст «Интеграция». Здесь COM не запускался.
Подготовка
В Windows зарегистрируйте официальный Automation-сервер платформы и подготовьте свою отдельную файловую ИБ C:\УчебныеДанные\Automation для разрешённого входа.
Visible = Истина показывает интерфейс при будущем запуске. Здесь приложение и окно не запускались.
Приложение = Новый COMОбъект("V85.Application");
Подключено = Приложение.Connect("File=""C:\УчебныеДанные\Automation"";");
Если Подключено Тогда
Приложение.Visible = Истина;
Значение = Приложение.NewObject("Структура");
Сообщить(Приложение.String(Значение));
Сообщить(Приложение.String(42));
КонецЕсли;Разбор по шагам
Создайте реальный Automation COM-объект.
Инициализируйте его через Connect и проверьте булев результат.
Создайте значение через NewObject и преобразуйте значения методом String.
Как проверить результат
При Подключено = Ложь остальные методы этого примера не выполняются.
NewObject создаёт значение в Automation-среде, а не произвольный локальный COM-класс.
Ожидаемый результат
Это короткий синтаксический пример для указанного учебного стенда. Здесь он не выполнялся; сообщение после вызова не заменяет отдельную проверку фактического состояния.
На что обратить внимание
Automation имеет контекст интеграции; БСЛ здесь выступает клиентом другой копии 1С.
Visible не управляет COMConnector. Удержание переменных может удерживать процесс; мгновенное освобождение здесь не обещается.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.