АИТП. Простой, событийно-управляемый обмен данными

16.08.19

Интеграция - Внешние источники данных

В статье, на примере обмена с ЗУП 3.1, демонстрируется механизм событийно-управляемого взаимодействия конфигурации АИТП с прикладными решениями на платформе 1С:Предприятие.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
АИТП. Простой, событийно-управляемый обмен данными.:
.zip 17,33Mb
4
4 Скачать (1 SM) Купить за 1 850 руб.

Введение

Статья обновлена для работы с версией АИТП не ниже 1.0.0.0

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

В настоящее время существует масса различных способов (раз, два, три, четыре, пять, шесть и др.), для организации обмена данными как между прикладными решениями на платформе 1С:Предприятие, так и между прикладными решениями и внешними системами. Все они с успехом могут быть применены для озвученной задачи с той или иной степенью “допилки”, однако в настоящем демонстрационном примере мы организуем такой обмен средствами конфигурации АИТП, использовав ее как инфраструктуру, для управления транспортом сообщений.

Системные требования

ОС Windows или Linux.

Платформа 1С:Предприятие версии не ниже 8.3.12 (пример создавался на платформе 8.3.13.1809)

Демонстрационная конфигурация ЗУП 3.1, развернутая в клиент-серверном режиме (пример создавался на ЗУП 3.1.9.205).

Конфигурация АИТП версии не ниже 1.0.0.0

Механизм обмена

Суть используемой технологии не отличается какой-либо новизной или оригинальностью и заключается в том, что при наступлении какого-либо события, на отправляющей стороне формируется пакет с данными об этом событии, который простым http-запросом отправляется получателю. Принимающая сторона анализирует этот пакет и выполняет некие действия (см. рис. 1).

Рисунок 1. Схема обмена данными.

 

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

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

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

Подготовка конфигурации ЗУП

Для реализации вышеизложенного механизма обмена, внедрим часть подсистем АИТП в конфигурацию ЗУП. Для этого, необходимо разрешить редактирование конфигурации с сохранением поддержки, настроить правила редактирования как на рис. 2, а также разрешить изменения у корня конфигурации см. рис. 3.

Рисунок 2. Настройка правил поддержки.

 

Рисунок 3. Правило редактирования для корня конфигурации.

 

Внедрение производится путем сравнения/объединения текущей конфигурации, с конфигурацией АИТП. Для внедрения, необходимо выбрать подсистему БазовыеПодсистемыАИТП (см. рис. 4), ОбменДаннымиАИТП, а также можно выбрать подсистему ОбновлениеСистемыАИТП. Затем дополнительно отметить подсистемы БазовыеПодсистемыПрикладныеРолиАИТП и НеБлокируемыеПриОбновленииРегламентныеЗаданияАИТП, в случае, если была выбрана подсистема ОбновлениеСистемыАИТП.

Дабы не переизобретать пользовательский интерфейс, также можно отметить подсистемы ПользовательскийИнтерфейсАдминистрированиеАИТП, ПользовательскийИнтерфейсОркестраторАИТП, а также ПользовательскийИнтерфейсОбновлениеСистемыАИТП.

Рисунок 4. Выбор по подсистемам из файла.

 

Рисунок 5. Дополнительные подсистемы.

 

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

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

По каким-то причинам, разработчики типовой конфигурации решили, что все бизнес-процессы должны иметь определенный набор обязательных реквизитов, что отражено в обработчике подписки ЗаписатьВСписокБизнесПроцессов см. код ниже.

 

Для решения этих проблем создадим расширение, в котором переопределим стандартный обработчик ОбщегоНазначенияПереопределяемый.ПриДобавленииОбработчиковУстановкиПараметровСеанса нижеследующим образом:

 

Для решения второй проблемы, переопределим обработчик подписки на нижеследующий:

 

Также, для увеличения производительности были переопределены обработчики некоторых других подписок способом, аналогичным вышеприведенному (см. рис. 6).

Рисунок 6. Расширение для внедрения АИТП в ЗУП 3.1.

 

На этом, подготовка конфигурации ЗУП завершена.

Передаваемые данные

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

Для нашего демонстрационного примера, в качестве источников данных, выберем регистры сведений ФИОФизическихЛиц и КадроваяИсторияСотрудников, справочники ФизическиеЛица, Сотрудники, Организации, ПодразделенияОрганизаций, Должности.

Реализация обмена

Сторона ЗУП

Для минимизации влияния на основную конфигурацию, реализуем механизм обмена с использованием расширений. Факты изменения соответствующих объектов будем отслеживать по наступлению события ПриЗаписи для соответствующих объектов.

Создадим расширение ОбменСАИТП с общим модулем ОбменСАИТП_СлужебныеФункции, в котором определим обработчики интересующих нас событий.

Для справочников, в общем случае нас будут интересовать реквизиты Наименование, Ссылка и ПометкаУдаления (Для справочника ПодразделенияОрганизаций также Родитель и Владелец).

Типичный код обработчика события ПриЗаписи для элемента справочника представлен ниже:

 

Как можно увидеть, первым параметом процедуры ОтправитьСообщение является ссылка на элемент справочника ПолучателиСообщенийОбменаАИТП или строка, соответствующая коду элемента (в противном случае, сообщение не будет отправлено). Также, переопределим событие ПриЗаписи в модулях объектов соответствующих справочников примерно нижеследующим образом:

 

Аналогичным образом, поступим с регистрами сведений. Пример кода для регистра сведений ФИОФизическихЛиц представлен ниже:

 
 

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

 
 

Поскольку иногда, документы изменяющие кадровую историю могут быть отменены, создадим соответствующий обработчик:

 

И привяжем его к событию ОбработкаУдаленияПроведения соответствующих документов, примерно следующим образом:

 

На этом, реализация на стороне отправителя завершена.

Сторона АИТП

Включаем возможность изменения объектов конфигурации с сохранением поддержки аналогично тому, как это было сделано для конфигурации ЗУП.

Поскольку конфигурация АИТП не содержит каких-либо объектов, связанных с организациями, должностями, подразделениями и т.п., создадим соответствующие объекты конфигурации (см. рис. 7).

Рисунок 7. Объекты конфигурации в АИТП.

 

Для приема сообщений, разрешим редактирование общего модуля ОбменДаннымиПереопределяемыйАИТП и переопределим процедуру ОбработатьВходящееСообщение нижеследующим образом:

 

Определим в модуле ОбменДаннымиЗУП соответствующие процедуры, изменяющие данные в системе-получателе:

 

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

Тестирование обмена

Запустим модифицированную конфигурацию ЗУП и конфигурацию АИТП в пользовательском режиме (ранее созданные в базе АИТП http-сервисы должны быть опубликованы на web-сервере).

В базе ЗУП, разрешим старт процессов (Администрирование АИТП -> Общие настройки).

В обеих базах, создадим узел обмена, для конфигурации ЗУП с кодом “001” (Обмен данными -> Узлы обмена данными).

В базе ЗУП, сделаем созданный узел текущим узлом обмена (Обмен данными -> Настройки обменов данными).

Настроим получателей сообщений. Для этого, в базе ЗУП перейдем в раздел Обмен Данными и выберем пункт Получатели сообщений обмена. В системе имеется предопределенный элемент ПолучательПоУмолчанию. Воспользуемся им для настройки получателя наших сообщений (см. рис. 8.).

Рисунок 8. Настройка получателя сообщений с http транспортом.

 

Откроем созданную ранее обработку Начальная синхронизация с АИТП и запустим синхронизацию.

Рисунок 9. Обработка начальной синхронизации.

 

Убедимся, что в конфигурации АИТП появились интересующие нас данные.

Рисунок 10. Результаты в конфигурации АИТП.

 

Также мы можем просмотреть тело отправленного сообщения (см. рис. 11.), а также время его отправки и автора (см. рис. 12).

Рисунок 11. Тело отправленного сообщения.

 

Рисунок 12. Дополнительные реквизиты процесса

 

Перенастроим получателя сообщений для работы с web-сервисом:

 

Изменим ФИО какого-либо сотрудника и убедимся, что изменения отреплицировались.

Таким образом, мы можем использовать в качестве транспорта сообщений как http так и web-сервисы без изменения конфигурации.

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

Для этого, создадим пользователя штатными средствами ЗУП, в конфигураторе добавим ему роль Базовые права БСП и добавим его в пользователи подсистем АИТП с соответствующими правами. Как можно увидеть, при входе пользователя в информационную базу,  его права будут ограничены соответствующими правами на подсистемы АИТП (см. рис 13).

Рисунок 13. Интерфейс IT-специалиста для работы с ЗУП.

 

Заключение

Вот таким-вот нехитрым способом, с использованием “дедовских” методов, мы реализовали возможность получения актуальной информации о сотрудниках компании, которая может быть использована для автоматизации настройки ИТ-систем предприятия.

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

АИТП http обмен

См. также

Внешние источники данных Программист Бизнес-аналитик Пользователь Платформа 1С v8.3 Управляемые формы Анализ и прогнозирование Конфигурации 1cv8 Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

15.11.2022    19717    18    SQV0    49    

37

Зарплата Внешние источники данных Бюджетный учет Перенос данных 1C Системный администратор Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 8 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

84000 руб.

19.08.2020    24421    23    1    

25

Поиск данных Внешние источники данных Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Если вам нужно автоматически генерировать представления (view) к вашей базе данных 1С (есть две версии - для СУБД MS SQL Server и для PostgreSQL) по структуре метаданных 1С, то вам необходима данная обработка. Наш "Генератор View", другими словами - это коннектор к данным 1С для Power BI - незаменимый помощник для бизнес-аналитиков, работающих с базами 1С из Yandex Datalens/Power BI и т.д. Работает для обычных и управляемых форм под 1С 8.3

230000 руб.

31.07.2020    13515    13    48    

25

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

60000 руб.

05.10.2022    10495    11    8    

13

Производство готовой продукции (работ, услуг) Внешние источники данных Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 Лесное и деревообрабатывающее хозяйство Россия Управленческий учет Платные (руб)

Обработка предназначена для загрузки файлов, выгруженных из системы Базис-мебельщик, в справочник 1С "Спецификации" для последующих процессов учета и диспетчирования полуфабрикатов и изделий.

10200 руб.

24.06.2021    20380    57    53    

34

Внешние источники данных Загрузка и выгрузка в Excel Зарплата Бюджетный учет Системный администратор Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате из Парус 10(Торнадо) учреждений через файлы Excel в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ). В принципе, обработка может быть использована для загрузки из файлов Excel, полученных из любых информационных систем.

48000 руб.

16.11.2018    30665    21    31    

22

Розничная торговля Внешние источники данных Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Бухгалтерский учет 1С:Бухгалтерия 3.0 Фармацевтика, аптеки Россия Бухгалтерский учет Платные (руб)

Внешняя обработка загрузки данных из файла-выгрузки, сформированного в программе F3 TAIL версии 3.4 (и выше) или еФарма версии 2.1, в базу конфигурации 1С: Бухгалтерия предприятия 8, ред. 3.0 (базовая, ПРОФ, КОРП, ФРЕШ).

13200 руб.

19.12.2016    46696    85    105    

65
Оставьте свое сообщение