Запуск automation 1с что это

Запуск automation 1с что это. Смотреть фото Запуск automation 1с что это. Смотреть картинку Запуск automation 1с что это. Картинка про Запуск automation 1с что это. Фото Запуск automation 1с что это Программирование системы Запуск automation 1с что это. Смотреть фото Запуск automation 1с что это. Смотреть картинку Запуск automation 1с что это. Картинка про Запуск automation 1с что это. Фото Запуск automation 1с что это25.05.2016 13:57 Запуск automation 1с что это. Смотреть фото Запуск automation 1с что это. Смотреть картинку Запуск automation 1с что это. Картинка про Запуск automation 1с что это. Фото Запуск automation 1с что это12207

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

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

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

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

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

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

Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться

Источник

Automation Client/Server

Поддержка технологий Automation Server и Automation Client — это один из инструментов интеграции с другими программными системами.

Запуск automation 1с что это. Смотреть фото Запуск automation 1с что это. Смотреть картинку Запуск automation 1с что это. Картинка про Запуск automation 1с что это. Фото Запуск automation 1с что это

Automation Server

Основное назначение Automation-сервера 1С:Предприятие 8 — управление приложением системы 1С:Предприятие 8 из других приложений и выполнение действий аналогичных интерактивным действиям.

Automation-сервер 1С:Предприятие 8 предоставляет доступ ко всем свойствам и методам своего глобального контекста, имеет дополнительные свойства и методы для выполнения действий, специфичных для работы в режиме Automation.

После этого можно вызывать свойства и методы системы 1С:Предприятие 8 как Automation-сервера.

Пример

В качестве примера можно рассмотреть обращение к информационной базе 1С:Предприятия 8 из программы на языке MS Visual Basic. В данном примере запускается и инициализируется конфигурация 1С:Предприятие 8 с базой данных в каталоге c:\InfoBases\Trade. Далее в программе 1С:Предприятие 8 создается объект типа СправочникМенеджер.Товары и создается новая группа элементов с названием ***** Экспорт из Excel ******. Во вновь созданную группу каталога записываются данные из таблицы MS Excel.

Dim trade As Object
Dim Элемент As Object

Set trade = CreateObject («V82.Application») ‘Создать Automation сервер
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
Элемент.Родитель = ГруппаТоваров.Ссылка

Контекст исполнения

Automation Client

Как и многие современные программные продукты, 1С:Предприятие 8 может выступать в роли клиентов Automation. Поэтому имеется возможность из системы 1С:Предприятие 8 обращаться к другой копии 1С:Предприятие 8 (например, к другой конфигурации) для обмена данными.

В качестве примера можно рассмотреть обращение к информационной базе 1С:Предприятия 8 из другой информационной базы 1С:Предприятия 8. В данном примере запускается и инициализируется конфигурация 1С:Предприятия 8 с базой данных в каталоге c:\InfoBases\Trade. Далее в этой базе, в справочнике Товары создается новая группа с наименованием *** Экспорт из другой базы 1С:Предприятия 8 ***, и эта группа записывается.

Источник

Внешнее соединение

Внешнее соединение — это один из механизмов интеграции с другими системами. Основная задача, решаемая с помощью внешнего соединения — обеспечение надежного и быстрого программного доступа к данным 1С:Предприятия 8 из внешних приложений.

Запуск automation 1с что это. Смотреть фото Запуск automation 1с что это. Смотреть картинку Запуск automation 1с что это. Картинка про Запуск automation 1с что это. Фото Запуск automation 1с что это

Отличия от Automation-сервера

Запуск automation 1с что это. Смотреть фото Запуск automation 1с что это. Смотреть картинку Запуск automation 1с что это. Картинка про Запуск automation 1с что это. Фото Запуск automation 1с что это

Преимущества

Пример

В качестве примера можно привести обращение к информационной базе 1С:Предприятия 8 через внешнее соединение из программы на языке MS Visual Basic.

Информационная база находится в каталоге c:\InfoBases\Trade. В программе 1С:Предприятие 8 создается объект типа СправочникМенеджер.Товары и создается новая группа элементов с названием ***** Экспорт из Excel ******. Во вновь созданную группу каталога записываются данные из таблицы MS Excel:

Dim cntr As Object
Dim trade As Object
Dim Элемент As Object

Set cntr = CreateObject («V82.COMConnector») ‘Создать менеджер COM-соединений
Set trade = cntr.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
Элемент.Родитель = ГруппаТоваров.Ссылка

Контекст исполнения

Обязанности модуля приложения при работе через внешнее соединение выполняет модуль внешнего соединения. Данный модуль может иметь процедуры-обработчики событий, в которых могут быть размещены действия, выполняемые при инициализации и завершении соединения, соответственно.

Процедуры, функции и глобальные переменные, определенные в модуле внешнего соединения с ключевым словом Экспорт становятся, как и в случае модуля приложения, частью глобального контекста.

Пул соединений

Открытые внешние соединения могут быть сохранены в пуле для их повторного использования, что позволяет экономить ресурсы и ускорять работу пользователей, которые ранее уже подключались к данной информационной базе.

Варианты использования

С помощью внешнего соединения можно, например, организовать веб-доступ к базе данных 1С:Предприятия 8:

Запуск automation 1с что это. Смотреть фото Запуск automation 1с что это. Смотреть картинку Запуск automation 1с что это. Картинка про Запуск automation 1с что это. Фото Запуск automation 1с что это

Также внешнее соединение позволяет организовать обмен XML-документами системы 1С:Предприятие 8 с внешним приложением:

Источник

Автоматизация при разработке платформы «1С: Предприятие»

В этой статье пойдет речь о том, как мы автоматизируем процессы разработки и тестирования технологической платформы «1С:Предприятие 8». Платформа «1С:Предприятие 8» — набор инструментов для создания бизнес-приложений и среда их выполнения. Это большой (более десятка миллионов строк кода) проект на С++, Java и JavaScript. Над ним трудятся десятки программистов, одновременно разрабатывающие и поддерживающие до 10 различных версий продукта.

Платформа работает на различных версиях ОС и БД:

Запуск automation 1с что это. Смотреть фото Запуск automation 1с что это. Смотреть картинку Запуск automation 1с что это. Картинка про Запуск automation 1с что это. Фото Запуск automation 1с что это

Общие задачи автоматизации

Цели, которые мы перед собой ставим:

Мы применяем в своей работе практику Continuous Integration (CI); слияние рабочих копий кода в общую основную ветвь происходит несколько раз в день, после слияния выполняется автосборка и автотестирование измененного проекта. В случае наличия проблем при сборке или тестировании изменённый код возвращается на доработку.

Запуск automation 1с что это. Смотреть фото Запуск automation 1с что это. Смотреть картинку Запуск automation 1с что это. Картинка про Запуск automation 1с что это. Фото Запуск automation 1с что это
Процессы разработки одной версии платформы

Задачи, стоящие перед CI:

Для некоторого типа сборок принято правило «10 сбоев», когда серия тестов автоматически прерывается при достижении 10 сбоев в пределах одной серии, чтоб освободить ресурсы для тестирования других сборок/других версий и т.д.

В сборке и тестировании у нас участвует около 70 физических серверов и около 1500 виртуальных серверов.

Инструменты

Jenkins

Мы используем Jenkins в качестве системы непрерывной интеграции. В пиковые периоды он выполняет от 20 сборок платформы в день; на одну полную сборку уходит около 1.5 часов, на тестирование – от 1 часа. Сборка ведется параллельно по архитектурам (Windows, Linux, macOS), каждая сборка – в сотни потоков одновременно. Такой подход несколько лет назад позволил сократить время сборки одной версии платформы со всеми архитектурами с 8 часов до 80 минут, и мы не собираемся останавливаться на достигнутом.
Через веб-сервисы Jenkins интегрирован с нашим таск-трекером, «Базой Задач» (написанном на платформе «1С:Предприятие»), и в случае проблем автоматически заводит ошибки непосредственно в «Базе Задач», прикладывая ссылки на логи и артефакты тестирования. Также Jenkins подготавливает платформу к публикации, при необходимости фильтрует и разбирает дампы.

Также Jenkins управляет тестированием, позволяя реализовывать сколь угодно сложные сценарии на произвольных конфигурациях оборудования, в том числе на большом количестве виртуальных машин, а также делает дополнительную работу, например – доставку и установку платформы на 1500 серверов до 70 раз в день.

Apache JMeter

У JMeter есть очень ценное качество – у него низкие требования к оборудованию для эмуляции работы большого количества пользователей. Также JMeter позволяет генерировать смешанную нагрузку в одном тесте – HTTP, SOAP, JDBC, LDAP, SMTP, TCP.

В частности, мы используем JMeter для тестирования производительности кластера приложений и отдельных его компонент, а также для нагрузочного тестирования кластера приложений на большом количестве (до 10 000) пользователей. Для этого тестирования достаточно одного сервера БД, двух серверов 1С и одного сервера нагрузки.

У нас есть 4 стенда для тестирования, на которых тестируются одиночный кластер, кластер в отказоустойчивой и неотказоустойчивой конфигурациях; для тестирования этих конфигураций нам достаточно всего двух физических машин.

Запуск automation 1с что это. Смотреть фото Запуск automation 1с что это. Смотреть картинку Запуск automation 1с что это. Картинка про Запуск automation 1с что это. Фото Запуск automation 1с что это
Графики производительности от JMeter

Тест-центр

Для более сложного тестирования мы используем наш продукт Тест-центр (входит в состав Корпоративного Инструментального Пакета). Тест-Центр – это конфигурация на платформе «1С:Предприятие 8»; он позволяет описывать многопользовательские сценарии тестирования, автоматически запускать их и контролировать ход их выполнения. Мы запускаем Тест-центр на так называемых конвейерах; один конвейер состоит из 2 мощных физических серверов, на которых расположены виртуальные машины:

Для запуска тестов на 10000 пользователей в одной базе используется два рабочих сервера приложений 1С. Каждая конфигурация кластера настраивается автоматически из сотни параметров в начале каждого теста. По сути можно считать, что стенд полностью готовится к работе автоматически, т.к.:

В ходе проведения нагрузочных тестов мы автоматически собираем и анализируем:

Запуск automation 1с что это. Смотреть фото Запуск automation 1с что это. Смотреть картинку Запуск automation 1с что это. Картинка про Запуск automation 1с что это. Фото Запуск automation 1с что это
Экран Тест-центра

Еще мы проводим нагрузочное тестирование работы 10 000 пользователей в конфигурации «1С:ERP Управление предприятием 2» на отказоустойчивом кластере с моделированием отказов оборудования, отказов сети, нехваткой памяти, ресурсов ЦПУ и места на диске. Это большой тестовый сценарий, в котором поочередно на протяжении всего теста моделируется зависание серверных процессов 1С, часть процессов «убивается» утилитой taskkill, отключается и восстанавливается сеть и т.д. В рамках тестирования прогоняются пользовательские сценарии работы в разных подсистемах – склад, закупки, продажи, взаиморасчеты и т.д. В нагрузочном тесте ERP проводится около 400 ключевых операций, тест идет несколько часов.

Запуск automation 1с что это. Смотреть фото Запуск automation 1с что это. Смотреть картинку Запуск automation 1с что это. Картинка про Запуск automation 1с что это. Фото Запуск automation 1с что это

Сравнение Производительности Конфигураций

Поверх описанных систем работает наш внутренний инструмент – «Сравнение Производительности Конфигураций» (СПК), позволяющий сравнивать производительность:

Мы анализируем как ухудшение показателей, так и улучшение, что может быть симптомом какой-либо проблемы.

Система может использоваться для сравнения

Под сравнением производительности подразумевается измерение общей производительности конфигураций, среднего времени работы и среднего APDEX по каждой ключевой операции.

Визуальное тестирование

Все вышеперечисленные инструменты эмулируют работу пользователей, вызывая соответствующие методы встроенных объектов тестируемых конфигураций, делая вызовы web- и HTTP-сервисов и т.п. Но также крайне важно тестировать именно то, что реально видит пользователь, особенно пользователь, работающий через веб-клиент (где довольно существенное время может занять отрисовка интерфейса браузером). Мы сталкивались с ситуацией, когда производительность с точки зрения автоматических тестов при переходе на новую версию не менялась, но когда мы сажали человека с секундомером, то он получал одни числа на старой версии, и совершенно другие – на новой. Связано это, в частности, со временем отрисовки графического интерфейса, которое в новой версии по какой-то причине могло поменяться.
Мы написали свой инструмент, позволяющий делать визуальное тестирование практически любого приложения. Инструмент записывает действия пользователя, запустившего приложение, в файл-сценарий. Инструмент также записывает изображение рабочей области экрана. При контроле новых версий клиента сценарии проигрываются без пользовательского участия. При проигрывании сценария инструмент, прежде чем сэмулировать нажатие клавиш или кнопок мыши, ожидает появления такой же картинки экрана (с точностью до пикселя), какая была в записанном сценарии.

Инструмент также проводит замеры производительности приложений с точностью до 25 миллисекунд, результаты пишет в лог для дальнейшего автоматического сравнения. В ряде случаев мы закольцовываем части сценария (например, несколько раз повторяем ввод заказа) для анализа деградации времени выполнения сценария. Это тестирование, помимо замера производительности, также позволяет нам быть уверенными, что в новой версии платформы пользователь увидит в тонком клиенте и в браузере те же экраны, что и на предыдущей версии приложения.

Пример запуска сценария по вводу заказа в конфигурации «Управление Нашей Фирмой» — заказ вводится 5 раз; вот реальная скорость работы платформы «1С:Предприятие», если пользователь мгновенно реагирует на доступность интерфейса:

Функциональное тестирование

Мы также активно развиваем функциональное тестирование. Тестируем комбинации основных версий ОС и баз данных, на каждую такую комбинацию у нас есть свой комплект виртуальных машин, весь комплект комбинаций образует один конвейер; автоматизировано добавление новых комбинаций ОС и БД в этот конвейер. Каждый функциональный тест превращается в набор задач, исполняющихся на всех возможных комбинациях; задачи выполняются первыми свободными стендами. Тестируются Конфигуратор (среда разработки прикладных решений 1С), функции встроенного языка, язык запросов и т.д.

При тестировании Конфигуратора мы проверяем большинство команд, доступных в командной строке Конфигуратора. Помимо этого у нас есть специальная библиотека (наружу мы ее не поставляем), позволяющая тестировать внутреннюю логику работы Конфигуратора, доступную только через пользовательский интерфейс, не прибегая к непосредственному UI-тестированию. Таким образом, тестируется большинство функций по работе с расширениями конфигурации, функционал сравнения/объединения и другой функционал Конфигуратора.

Для целей тестирования в этом режиме доступно написание скриптов на языке 1С. В рамках скрипта доступны специальные объекты для целей тестирования. Запуск конфигуратора в этом режиме может совмещаться в одном тесте с запуском клиентского приложения. Это позволяет использовать этот режим не только как средство тестирования конфигуратора, но и как способ настройки тестового окружения.

Eating your own dogfood

Есть ряд наших внутренних инструментов, написанных на платформе «1С:Предприятие», которые мы используем в нашей ежедневной работе. Они работают на самых свежих сборках платформы. Ниже мы расскажем о двух из них – «Базе задач» и «Отчетах сотрудников».

База задач

Наш внутренний таск-трекер, «База задач» — конфигурация, написанная на платформе «1С:Предприятие». Это 21 самостоятельная база (часть баз – рабочие, часть — тестовые) на разных версиях платформы, с разными ОС и СУБД, базы синхронизируются через платформенный механизм обмена данными; версии платформы обновляются ежедневно, на некоторых серверах ставятся экспериментальные версии платформы с отдельными новыми фичами. Закоммиченную новую функциональность платформы можно тестировать на «Базе Задач» уже на следующий день. Разные экземпляры баз работают с разным серверным окружением (ОС, СУБД) и с разными версиями платформы, а пользователи еще и входят с разных клиентов (тонкий клиент, мобильный клиент) и через веб-клиент с разных браузеров. Таким образом, осуществляется тестирование разных версий платформы в разном окружении.

Отчеты сотрудников

«Отчеты сотрудников» — это тайм-трекер для учета рабочего времени, который используют сотрудники отдела разработки платформы «1С:Предприятие». Он работает на самой последней сборке платформы.

«1С:Документооборот»

Типовое решение «1С:Документооборот», которым пользуются все сотрудники нашей фирмы, мы также используем с новыми, еще не выпущенными версиями платформы.

Тесты платформы в прикладных решениях

Наряду с автоматическими визуальными тестами популярных прикладных решений («Бухгалтерия Предприятия», «Управление Нашей Фирмой», «Зарплата и Управление Персоналом» и т.п.) мы проводим ручные тесты: сценарные, визуальные, ручную отработку по тест-плану основных кейсов. После достижения определенного уровня качества платформы мы просим разработчиков прикладных конфигураций перейти на разработку на новой версии платформы и протестировать свои продукты на готовящейся к выпуску версии.

Источник

Пример использования 1С-Automation и скриптов AutoIT

Чтобы показать возможности такого решения, в приведенном примере выполняются смешанные операции: соединение с 1С-Automation сервером, вызов процедур глобального контекста (в том числе из общего пользовательского модуля), запуск 1С-предприятия в командной строке (выгрузка БД в режиме конфигуратора).

Функциональность примера понятна из текста программы: мы производим выгрузку файловой базы данных (запуская 1С в пакетном режиме через RunWhite / RunAsWhite ), при этом, заносим информацию об этом событии в журнал регистрации БД и, через функцию общего модуля, дополнительную информации помещаем в независимый регистр сведений.

Код скрипта приведен ниже:

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****

#AutoIt3Wrapper_Res_Comment=Пример использования AutoIT

#AutoIt3Wrapper_Res_Description=Пример использования AutoIT

#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

; Пример использования 1С Automation Server

; Используем 1С как Automation сервер. Присоединяемся к файловой БД. Блокируем сеансы.

; Выгружаем БД через запуск приложения в командной строке. Пишем лог в журнал БД.

; Для запуска скрипта с правами Администратора, нужно использовать RunAsWait().

; Так как код можно скомпилировать в исполняемое приложение (используя обфускатор),

; то явно имени и пароля видно не будет (защита от дураков).

; Последние изменения: 26.06.2012

; Задаем параметры скрипта

$sDBaseFile = “C:\TST\1C” ; Место расположения БД

$sDBaseUser = “User” ; Имя пользователя БД

$sDBasePass = “userpass” ; Пароль пользователя БД

$sKeyCode = “123” ; Код блокировки ( /UC )

$sArchFile = “C:\TST\1C\Base.DT” ; Архивный файл для выгрузки

$sAdminUser = “Администратор” ; Пользователь администратор

$sAdminPass = “passadmin” ; Пароль пользователя администратора

$sDomen = “MyDomen” ; Домен

; Создаем объект V82.Application

$o1CObject = ObjCreate(“V82.Application”) ; Создаем 1С объект

Msgbox (0,”1С Application”,”Ошибка создания V82.Application. Код ошибки: ” & @error)

; Устанавливаем соединение с БД

Msgbox (0,”Соединение с 1С базой”,”Ошибка соединения. Код ошибки: ” & @error, 5)

; Формируем статистику для записи в журнал

$tCurTime = _Date_Time_GetSystemTime() ; текущее системное время

$sUserSys = @UserName ; Пользователь системы

$sCompSys = @ComputerName ; Компютер системы

; Устанавливаем блокировку сеансов

$oSessionLock.Use = True ; ставим флаг блокировки сеансов

$o1CObject.SetSessionsLock($oSessionLock) ; блокируем сессии.

Msgbox (0,”Блокировка”,”Блокировка уже установлена.”, 5)

; Необходимо задать дополнительные параметры: пользователь, домен, пароль

;$sCommandLine = “C:\Program Files\1cv82\common\1cestart.exe DESIGNER /F C:\TST\1C /N User /P userpass”

Msgbox (0,”Выгрузка базы”,”Ошибка выгрузки. Код ошибки: ” & @error, 5)

; Регистрируем событие выгрузки БД в журнале

$oSessionLock.Message = “Сняли блокировку”

$oSessionLock.Use = False ; ставим флаг снятия блокировки сеансов

$o1CObject.SetSessionsLock($oSessionLock) ; разблокируем сессии.

$o1CObject=”” ; Освобождаем память

В конфигурации 1С определен общий не глобальный модуль MyFunction, через который вызывается функция записи лога в журнал:

// Экспортная процедура общего не глобального модуля MyFunction

Процедура SetLog( User, Comp ) Экспорт

// фиксируем пользователя и компьютер в нашем журнале

Кроме того, запись идет во внутренний «ЖурналВыгрузки» на базе непериодического независимого регистра сведений:

// Непериодический независимый регистр сведений “ЖурналВыгрузки”.

// Процедуры модуля менеджера:

Процедура ДобавитьНовыйЛог(Пользователь, Компьютер) Экспорт

Запрос = Новый Запрос;

| МАКСИМУМ(ЖурналВыгрузки.Номер) + 1 КАК Номер

| РегистрСведений.ЖурналВыгрузки КАК ЖурналВыгрузки”;

Если НЕ ВыборкаДетальныеЗаписи.Следующий() Тогда

Сама процедура скрипта может быть скомпилирована в отдельный исполняемый модуль. В этом случае при использовании обфуркации мы, в некотором смысле защищаем информацию, так как в явном виде не просматривается имя пользователяя и его пароль (защита от дураков). Дополнительно, средствами AutoIT можно ограничить запуск скомпилированной процедуры например только с определенного места, или, например при наличии ключа-флешки.

По моему мнению, написание скриптов (особенно простых, связанных с запуском внешних приложений) на AutoIT доступно любому, кто умеет работать с текстовым редактором.

Источник

Leave a Reply

Your email address will not be published. Required fields are marked *