Запуск automation 1с что это
При использовании для доступа к данным 1С:Предприятия 8.0 COM -соединения имеются следующие преимущества по сравнению с использованием Automation сервера:
- Более быстрая установка соединения, так как не требуется создания отдельного процесса операционной системы, а все действия производятся в рамках вызывающего процесса;
- Более быстрое обращение к свойствам и методам объектов 1C:Предприятия, так как для организации обращения не требуется организации межпроцессной коммуникации;
- Меньший расход ресурсов операционной системы.
В общем и целом работа с 1С:Предприятием 8.0 через COM -соединение подобна работе с 1С:Предприятием в режиме Automation сервера. Основные отличия заключаются в следующем:
- В случае Automation сервера запускается полноценное приложение 1С:Предпприятия 8.0, а в случае COM -соединения запускается относительно небольшой внутрипроцессный COM -сервер.
- При работе через COM -соединение недоступны функциональные возможности так или иначе связанные с организацией пользовательского интерфейса 1С:Предприятия 8.0;
- При работе COM -соединения не используется модуль приложения конфигурации 1С:Предприятия 8.0. Его роль при работе с COM -соединением играет модуль внешнего соединения.
1.1 Порядок установки COM-соединения
Для организации доступа к данным 1С:Предприятия 8.0 через COM -соединение, выполняется следующая последовательность действий:
Важно! В связи с отсутствием пользовательского интерфейса в COM-соеденении не все объекты, а также свойства и методы можно использовать в COM -соединении.
Объекты 1С:Предприятия, доступные извне через COM -соединение:
- Экспортируемые переменные и процедуры/функции модуля внешнего соединения
- Экспортируемые переменные и процедуры/функции общих модулей
- Включение и исключение модулей целиком с помощью установки свойств общих модулей
- Включение и исключение фрагментов общих модулей с помощью препроцессора
- Глобальный контекст 1С:Предприятия 8.0, за исключением объектов, жестко связанных с клиентским приложением (ТекстовыйДокумент, ТабличныйДокумент, . )
1.2 Модуль внешнего соединения
Как уже отмечалось обязанности модуля приложения при работе через COM -соединение, выполняет модуль внешнего соединения. Данный модуль может иметь процедуры-обработчики событий ПриНачалеРаботыСистемы() и ПриЗавершенииРаботыСистемы(), в которых могут быть размещены действия, выполняемые при инициализации и завершении соединения, соответственно.
Процедуры, функции и глобальные переменные, определенные в модуле внешнего соединения с ключевым словом Экспорт становятся, как и в случае модуля приложения, частью глобального контекста.
1.3 Общие модули
Для общих модулей введены свойства "Клиент", "Сервер" и "ВнешнееСоединение". Они предназначены для определения в конфигурации использования модулей в клиент - серверном варианте и в режиме COM -соединения.
1.4 Объект "V8.COMConnector"
Строка соединения с ИБ представляет собой цепочку фрагментов вида Параметр=Значение. Фрагменты отделяются друг от друга символами ';'. Если значение содержит пробельные символы, то оно должно быть заключено в двойные кавычки (").
Usr - имя пользователя;
Pwd - пароль.
Для файлового варианта определен параметр:
File - каталог информационной базы.
Для клиент-серверного варианта определены параметры:
Srvr - имя сервера 1С:Предприятия;
Ref - имя информационной базы на сервере.
Метод Connect возвращает ссылку на созданный объект COM -соединения.
Метод Connect устанавливает COM -соединение с информационной базой 1С:Предприятия 8.0 и возвращает ссылку на объект COM -соединение.
// Создается объект-коннектор
V8 = Новый COMObject ("V8.COMConnector");
// создается объект COM -соединение
Соединение = V8.Connect ("File=""c:\InfoBases\Trade""; Usr =""Director"";")
Авторизация доступа через COM -соединение возможна как с помощью параметров строки соединения «Usr» и «Pwd», так и через пользователя Windows, в любом случае должно быть право на «Внешнее соединение».
1.5 Объект "COM-соединение"
COM -соединение с информационной базой 1С:Предприятия предоставляет полный доступ к своему глобальному контексту (см. «Контекст выполнения программного модуля»). Поэтому COM -соединение в качестве своих методов может иметь: системные константы, значения заданных в конфигураторе объектов, доступ к которым осуществляется с помощью менеджеров (например, константы, перечисления, справочники, документы, журналы документов, отчеты, обработки, планы видов характеристик, планы счетов, планы видов расчета, регистры), а также переменные, объявленные в модуле внешнего соединения с ключевым словом Экспорт.
Кроме того, COM -соединение имеет дополнительный метод NewObject, с помощью которого можно создавать значения определенных типов.
тз = Соединение. NewObject ("ТаблицаЗначений");
Метод String Позволяет получать строковые представления значений 1С:Предприятия.
1.6. Особенности работы с COM -соединением
В Automation и в COM -соединении TRUE и FALSE имеют соответственно значения: -1 (минус единица) и 0.
Имеется возможность организации пула COM-соединений. При этом на принимающей на сервере 1С:Предприятия ЗАРАНЕЕ создаются несколько объектов COM-соединения и на установку соединения требуется еще меньше времени, поскольку не нужно создавать новый объект.
Реализован новый объект ПостроительЗапроса, предназначенный для генерации текстов запросов на основании указанных настроек. Данный объект поддерживает функциональность построителя отчета, не относящуюся к выводу отчета в табличный документ и другим задачам, связанным с пользовательским интерфейсом. Данный объект может использоваться на сервере 1С:Предприятия и в COM -соединении.
Доступно использование COM -объектов при работе встроенного языка на сервере 1С:Предприятия.
Система 1С:Предприятие может использоваться внешними приложениями в качестве Automation-сервера. При работе в качестве Automation-сервера 1С:Предприятие предоставляет доступ ко всем свойствам и методам своего глобального контекста, а также включение и выключение пользовательского интерфейса (главного окна 1С:Предприятия 8). Кроме того, Automation-сервер 1С:Предприятия имеет дополнительные свойства и методы для выполнения действий, специфичных для работы в режиме Automation.
Основное назначение Automation-сервера 1С:Предприятие в управлении приложением 1С:Предприятия 8 из других приложений и выполнение действий аналогичных интерактивным действиям, например, построение отчетов.
Для запуска системы 1С:Предприятие в качестве Automation-сервера из внешнего приложения, выполняется следующая последовательность действий:
создается COMОбъект с идентификатором V83.Application (для тонкого клиента V83C.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С:Предприятие в качестве своих методов может иметь: системные процедуры и функции, а также процедуры и функции модуля приложения и общих модулей, объявленные с ключевым словом Экспорт.
Итак, рассмотрим данную технологию на примерах. Для начала решим простую задачу. Мы подключимся из нашей информационной базы к другой информационной базе и обратимся к некоторым свойствам и методам глобального контекста. Для этого мы создадим внешнюю обработку - "РаботаСДругойБазой". Создадим команду, перетащим её на форму. При нажатии на эту кнопку наша обработка будет выполнять определенные действия. Создаем обработчик действия.
В обработчике действия мы создаем новый СОМ - объект. Далее используем метод "Connect(<СтрокаСоединения>) " . В строке соединения данного метода мы укажем путь к нашей информационной базе и имя пользователя, под которым мы будем в неё заходить.
В случае, если подключение выполнить не удалось, мы сообщим об этом пользователю, а если все прошло удачно, то мы обратимся к методу глобального контекста "ИмяПользователя()" для того, чтобы сообщить, под каким пользователем мы заходим в базу. Данная функция доступна в режиме "Внешнее соединение":
Итак, сохраняем обработку и запускаем ее в пользовательском режиме. Нажимаем кнопку "Запуск" и спустя некоторое время система нам сообщает имя пользователя. При этом у нас открывается "ДругаяБаза" в пользовательском режиме.
Теперь немного усложним задачу. Допустим, нам нужно обратиться к справочнику в другой базе при помощи запроса. Если бы мы писали запрос в текущей базе, то мы бы объявили переменную класса "Запрос". Но сейчас мы будем выполнять запрос в рамках другой информационной базы. Для этого мы будем использовать метод NewObject(<Имя>). Далее мы пишем текст запроса. Мы можем напрямую обращаться к свойствам и методам данного запроса. Мы будем использовать методы "Выполнить()" и "Выбрать()". Казалось бы, на выходе у нас должна получиться "ВыборкаИзРезультатаЗапроса". Однако если мы поставим точку останова и посмотрим на выполнение нашего кода в отладчике, то мы увидим, что тип данных - это "CОМОбъект". Более того, все типы другой информационной базы у нас также будут CОМОбъектами. Есть и еще одна странность, мы работаем на клиенте, но при этом выполняем запрос. Дело в том, что мы обращаемся к ДругойБазе, а там программный код исполняется в режиме внешнего соединения.
Отметим также тот факт, что несмотря на то, что "Выборка.Ссылка" у нас имеет тип "CОМОбъект" мы можем получить строковое представление этого значения. Для этого у нас есть метод "String(<Параметр>)". Т.е. вместо Выборка.Ссылка.НаименованиеПолное мы могли использовать ДругаяБаза.String(Выборка.Ссылка), чтобы получить наименование элемента справочника.
Решим еще одну задачу. Из текущей информационной базы нам нужно будет обратиться к "ДругойБазе" и создать элемент справочника "Контрагенты". Вначале код у нас будет похожий, нам прежде всего нужно будет выполнить подключение к информационной базе. Нам нужно будет обратиться к классу СправочникиМенеджер (CatalogsManager).
Код у нас будет аналогичный тому, как если бы мы создавали элемент справочника в нашей базе. Единственное, вначале мы должны указать "ДругаяБаза.":
Следует отметить и одно неудобство при работе с "CОМОбъект" - это то, что у нас не работает контекстная подсказка.
Итак, мы уже научились создавать новые элементы в другой информационной базе, а теперь попробуем открыть только что созданный элемент. Для того, чтобы открыть форму, нам будет необходимо обратиться к методу глобального контекста "ОткрытьФорму()". Отличие будет в том, что мы будем обращаться не напрямую, а используя наш "СОМОбъект" "ДругаяБаза". Мы указываем имя нашего открываемого объекта. Кроме того, нам нужно передать второй параметр, который у нас является структурой, которая будет включать в себя "Ключ" и "Значение", которое будет являться ссылкой на наш элемент справочника:
Однако, если мы запустим нашу обработку с таким кодом система нам выдаст ошибку:
"Произошла исключительная ситуация (1C:Enterprise8.3.6.2237) несоответствие типов (параметр номер 2)". Подобные ошибки очень часто возникают при использовании технологии Automation. Дело в том, что мы создаем структуру в текущей базе, а её нужно создать в "ДругаяБаза". Правильный программный код будет следующий:
Когда мы подключаемся к "ДругойБазе", используя технологию OLE Automation у нас происходит обычный запуск приложения. Это означает, что когда мы обращаемся к базе, у нас будут работать обычные модули. Это модуль сеанса, модуль управляемого приложения со всеми событиями ПередНачаломРаботыСистемы(), ПередЗавершениемРаботыСистемы(). Но у нас еще есть модуль внешнего соединения, и в случае использования Automation он не вызывается. Он будет вызываться только когда мы будем подключаться через СОМ напрямую, используя "Менеджер COM-соединений", который обеспечивает возможность надежного и быстрое программного доступа к данным 1С:Предприятия 8 из внешних приложений через Внешнее соединение (External connection).
В общем и целом работа с 1С:Предприятием 8 через внешнее соединение подобна работе с 1С:Предприятием в режиме Automation сервера. Основные отличия заключаются в следующем:
В случае Automation сервера запускается полноценное приложение 1С:Предприятия 8, а в случае внешнего соединения запускается относительно небольшой внутрипроцессный COM-сервер.
При работе через внешнее соединение не доступны функциональные возможности, так или иначе связанные с организацией пользовательского интерфейса 1С:Предприятия 8;
При работе внешнего соединения не используется модуль управляемого приложения (модуль обычного приложения) конфигурации 1С:Предприятия 8. Его роль при работе с внешним соединением играет модуль внешнего соединения.
При использовании внешнего соединения имеются следующие преимущества по сравнению с использованием Automation сервера:
Более быстрая установка соединения, так как не требуется создания отдельного процесса операционной системы, а все действия производятся в рамках вызывающего процесса;
Более быстрое обращение к свойствам и методам объектов 1C:Предприятия, так как для организации обращения не требуется организации межпроцессной коммуникации;
Меньший расход ресурсов операционной системы.
Для организации доступа к данным 1С:Предприятия 8 через внешнее соединение, выполняется следующая последовательность действий:
создается менеджер COM-соединений, с помощью которого производится установка соединения;
производится обращение к методу Connect менеджера COM-соединений. Метод Connect возвращает внешнее соединение с информационной базой 1С:Предприятия 8;
через внешнее соединение производится обращение к допустимым методам, свойствам и объектам информационной базы, с которой установлено соединение.
Важно! В связи с отсутствием пользовательского интерфейса не все объекты, а также свойства и методы можно использовать во внешнем соединении.
Внешнее соединение предоставляет полный доступ к своему глобальному контексту. Поэтому внешнее соединение в качестве своих методов может иметь: системные константы, значения заданных в Конфигураторе объектов, доступ к которым осуществляется с помощью менеджеров (например, константы, перечисления, справочники, документы, журналы документов, отчеты, обработки, планы видов характеристик, планы счетов, планы видов расчета, регистры), а также переменные, объявленные в модуле внешнего соединения с ключевым словом Экспорт.
Также важно помнить, что у нас на уровне роли есть такое право, как возможность подключения к базе, используя технологию Automation. Если у пользователя это право стоит, то под ним можно будет выполнять запуск. В противном случае внешний запуск, используя данную технологию, будет невозможен.
Automation сервер
Свойства:
Методы:
Описание:
Система 1С:Предприятие может использоваться внешними приложениями в качестве Automation-сервера. При работе в качестве Automation-сервера 1С:Предприятие предоставляет доступ ко всем свойствам и методам своего глобального контекста, а также включение и выключение пользовательского интерфейса (главного окна 1С:Предприятия 8.1).Кроме того, Automation-сервер 1С:Предприятия имеет дополнительные свойства и методы для выполнения действий, специфичных для работы в режиме Automation.
Основное назначение Automation-сервера 1С:Предприятие в управлении приложением 1С:Предприятия 8.1 из других приложений и выполнение действий аналогичных интерактивным действиям, например, построение отчетов.
Для запуска системы 1С:Предприятие в качестве Automation-сервера из внешнего приложения, выполняется следующая последовательность действий:
создается COMОбъект с идентификатором V81.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С:Предприятие в качестве своих методов может иметь: системные процедуры и функции, а также процедуры и функции модуля приложения и общих модулей, объявленные с ключевым словом Экспорт.
Пример:
Dim trade As Object
For Count = 1 To N
--------------------------------------------------------------------------------
© 1996-2008 1C. Все права защищены.
(4) для отладки синтаксиса удобно подключаться из 1С к 1С, потом из шарпа.
так в примере было, я пробовал просто НовыйДок, все равно пишет что тип не определен
а можно ли выгрузить целиком объект в dataGrid или propertyGrid, ну чтоб поля не перебирать все
и еще вопрос - установил веб-расширение 1.1, не могу найти как опубликовать какой-нибудь шаблон для web-доступа
киньте ссылки по этой теме, а то ниче не могу найти
Фирма «1С» начала публикацию сценариев для автотестирования релизов 1С:ERP на Vanessa Automation.
Информацию об этом на своей странице facebook опубликовал Алексей Кислов, руководитель подразделения «Развитие практик ERP» фирмы «1С».
Выложенные сценарии тестирования дадут возможность фирмам, внедряющим 1С:ERP, тестировать на проектах свои «допиленные» конфигурации.
Состав дистрибутива
Дистрибутив, содержащий сценарии для автоматизированного тестирования 1C:ERP версии 2.5.4.102, доступен для скачивания пользователям 1C:ERP и фирмам-партнерам в сервисе «1C:Обновление программ» портала 1С.
Сам дистрибутив тестов для 1C:ERP пока что содержит небольшое количество файлов – это библиотека шагов, инструкция по запуску тестирования, один feature-файл для тестирования и выгрузка демо-базы 1С:ERP 2.5.4.102, но не содержит саму обработку Vanessa Automation (её можно скачать отдельно из репозитория на GitHub):
Как настроить и запустить сценарий тестирования в своей проектной базе 1С:ERP
- Создаем клиент тестирования из приложенного к архиву dt-файла конфигурации 1С:ERP 2.5.4.102 (База А: Это ваша проектная база ERP).
- Создаем менеджер тестирования (База Б: Любая другая база, запущенная с ключом /TestManager).
- Запускаем в Базе Б обработку Vanessa Automation (её можно скачать отдельно из репозитория на GitHub).
- Добавляем путь к поставляемой библиотеке шагов на вкладке «Библиотеки» и нажимаем кнопку «Сохранить настройки»:
- На вкладке «Клиенты тестирования» задаем параметры запуска основной тестируемой базы (указываем доступ для профиля «Администратор»):
- Открываем приложенный к дистрибутиву feature-файл:
Всего текущий тест «Производство с планированием по материальным и производственным ресурсам УП 2_5_4_102 платформа 8_3_16_1148» содержит 4 сценария, каждый из которых можно запускать по отдельности:
Как начать применять сценарии тестирования
Выложенные сценарии предназначены для тестирования с помощью инструмента Vanessa Automation, который достаточно широко освещается в статьях на Инфостарте, но до сих пор информация о нем воспринималась большей частью как интересный теоретический материал, без представления о том, как найти этому практическое применение в реальном проекте.
Но теперь, поскольку сама фирма «1С» начала публиковать сценарии для тестирования своего флагманского продукта 1C:ERP, начать тестировать свои доработки на базе выложенных сценариев стало гораздо проще.
Читайте также: