Automation сервер

Типы · Automation server

Система 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 не запускался.

Подготовка

  1. В Windows зарегистрируйте официальный Automation-сервер платформы и подготовьте свою отдельную файловую ИБ C:\УчебныеДанные\Automation для разрешённого входа.

  2. Visible = Истина показывает интерфейс при будущем запуске. Здесь приложение и окно не запускались.

Приложение = Новый COMОбъект("V85.Application");
Подключено = Приложение.Connect("File=""C:\УчебныеДанные\Automation"";");
Если Подключено Тогда
    Приложение.Visible = Истина;
    Значение = Приложение.NewObject("Структура");
    Сообщить(Приложение.String(Значение));
    Сообщить(Приложение.String(42));
КонецЕсли;

Разбор по шагам

  1. Создайте реальный Automation COM-объект.

  2. Инициализируйте его через Connect и проверьте булев результат.

  3. Создайте значение через NewObject и преобразуйте значения методом String.

Как проверить результат

  1. При Подключено = Ложь остальные методы этого примера не выполняются.

  2. NewObject создаёт значение в Automation-среде, а не произвольный локальный COM-класс.

Ожидаемый результат

Это короткий синтаксический пример для указанного учебного стенда. Здесь он не выполнялся; сообщение после вызова не заменяет отдельную проверку фактического состояния.

На что обратить внимание

  1. Automation имеет контекст интеграции; БСЛ здесь выступает клиентом другой копии 1С.

  2. Visible не управляет COMConnector. Удержание переменных может удерживать процесс; мгновенное освобождение здесь не обещается.

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

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.