Автоматизация обменов в распределённой базе данных средствами VisualBatch

11.06.13

Интеграция - Перенос данных 1C

Стандартный механизм распределённых баз данных на основе планов обменов не даёт гибкости в доставке XML пакетов. Что делать, если нет связи или FTP недоступен? Как узнать текущее состояние репликации? Как передать XML пакет в IP сеть за NAT маршрутизатор? Попробуем дать ответы на эти вопросы.

Файлы

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

Наименование Скачано Купить файл
VisualBatch 1.4.msi
.msi 125,58Mb
18 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Введение

Реализованные в 1С 8 механизмы работы с распределёнными базами данных на основе объекта «Планы обменов» дают разработчикам полноценный инструмент по настройке репликации данных. В данной статье мы не будем рассматривать вопросы настройки планов обменов, а лишь предложим решение по более качественной и гарантированной доставке пакетов данных.

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

Постановка задачи

Есть центральный офис и некоторое количество филиалов. В конфигурациях участвующих в обмене настроены «Планы обмена». Сети офиса и филиалов маршрутизируемы, хосты серверов «видят» друг друга.

Рассмотрим по пунктам, чего не хватает в стандартной реализации и что хочется получить.

Синхронный запуск – Мы настраиваем расписание выполнения обменов только в центральном офисе. Филиалы получают «оповещение» о начале цикла обмена и «сообщают» центру о необходимости забрать пакет. В филиалах нет запуска обменов по расписанию, нет постоянно запущенной программы с интервалом в одну минуту просматривающей FTP папку на предмет появления там нужного файла.

Работа оператора – В штатном режиме обмен выполняется автоматически с заданным интервалом времени. Но если нам необходимо мы можем принудительно начать цикл обмена, как с конкретной точкой, так и со всеми филиалами. При этом оператор обмена может находиться за любым компьютером в сети, причём как в филиале, так и центральном офисе. Для выполнения этого действия достаточно послать «оповещение» о начале обмена.

Обратная связь – Заваливать обслуживающий персонал электронными письмами и SMS сообщениями о каждом шаге системы нет смысла. А вот сообщить о неудаче обязательно нужно. То есть нужна система принятия решений о необходимости оповещения и использующая различные способы достучаться до админа: почта, jabber сообщение, всплывающее окно на его рабочем столе.

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

Работа в качестве Windows службы – Необходимо чтобы на серверах участвующих в обмене всё работало в виде Windows службы, а не запускалось в трэй на рабочем столе одного из пользователей.

Больше транспортов доставки – Если сети офиса и филиалов настроены с использованием доменов Windows, то выкладывать файлы обменов достаточно и в Windows папки совместного доступа. Если этого нет, то используем FTP папку или прикрепление к электронному письму. В случае повышенных требований к безопасности транспорта используем SFTP на основе протокола SSH с использованием пар ключей RSA.

Реализация

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

Основная идея

Главным компонентом продукта является приложение, предназначенное для визуального создания и отладки работы диаграмм, состоящих из отдельных команд. Каждая команда выполняет действие схожее с инструкциями пакетных файлов Windows и различных сервисных приложений, применяемых в пакетных файлах. Атомарные команды на диаграмме представлены блоками, имеющими один или несколько входов и один или несколько выходов, в зависимости от задач решаемых командой. Среда визуального создания диаграмм позволяет разместить на диаграмме любое количество блоков и соединить связующими линиями выходы и входы блоков, тем самым настроить условия ветвлений работы диаграммы при её запуске на выполнение (Рис. 1).

 

 Пример конструирования диаграммы в приложении «Дизайнер диаграмм»

Рис. 1. Пример конструирования диаграммы в приложении «Дизайнер диаграмм».

 

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

Удалённое взаимодействие

В комплект поставки продукта входят две Windows службы. Первая – PAUTMessageService, она является реализацией службы очередей сообщений. Более детально о её работе можно прочитать в статье: //infostart.ru/public/128273. Чтобы использовать её возможности при конструировании диаграмм в группе «Удалённое взаимодействие» есть блок позволяющий отправлять сообщения через эту службу и блок ожидания сообщений. Например, с помощью этих блоков диаграмма расположенная в центральном офисе может «слушать» события приходящие из филиалов и принимать решения о дальнейших действиях. На рисунке 2 показаны примеры таких диаграмм. Создайте две такие диаграммы в различных экземплярах дизайнера и запустите сначала диаграмму 2б, а затем 2а.

 

Отправка сообщения

 Рис. 2а. Отправка сообщения.

Ожидание сообщения

Рис. 2б. Ожидание сообщения.

 Диаграмма с рисунка 2а отправит событие с именем «TestMessage» на локальный хост, в свою очередь диаграмма 2б будет ждать этого события в течении десяти минут и выдаст текстовое сообщение в случае успеха или завершит свою работу по таймауту.

Вторая служба называется PAUTCommandService, её работа основана на функционале первой службы. Она предоставляет более высокоуровневый сервис, позволяющий принимать задание на выполнение диаграмм от удалённых хостов, причём диаграмма может быть передана с вызывающего хоста, а затем запущена на выполнение. Для взаимодействия с этой службой разработан блок «Выполнить диаграмму» (Рис. 3).

 

 Пример передачи диаграммы для выполнения на другой хост

Рис. 3. Пример передачи диаграммы для выполнения на другой хост.

 

На примере блока видно, что установлен переключатель «Выполнять на удалённом хосте». При выполнении блока это приведёт к тому, что диаграмма, указанная в поле «Файл диаграммы» будет передана на все хосты указанные в списке «Домен, хост или маска IP адресов».

Создаём необходимые диаграммы

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

                Можно выделить следующих участников процесса (Рис. 4):

  1. Сервер центрального офиса с установленным продуктом VisualBatch;
  2. Стандартный планировщик заданий на сервере центрального офиса;
  3. FTP сервер развёрнутый на сервере центрального офиса;
  4. Некоторое количество филиалов с развернутым продуктом VisualBatch на их серверах;
  5. Набор из диаграмм, хранящихся на сервере центрально офиса и реализующих все необходимые операции по выполнению обмена;
  6. Один из пользователей системы наделённый полномочиями по запуску диаграмм обмена в произвольное время. Для этого на его ПК так же необходимо развернуть VisualBatch.

 

 Компоненты системы обмена

Рис. 4. Компоненты системы обмена.

 

Создаём следующие диаграммы для каждого филиала:

  1. Выполнение выгрузки данных для филиала. Эта диаграмма будет выполняться в центральном офисе;
  2. Выполнение загрузки данных в филиале. Эта диаграмма будет выполняться в филиале;

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

 

Сценарий работы диаграммы выгрузки данных для филиала следующий:

  1. Выполняем заранее подготовленную обработку 1С содержащую единственную строчку кода по формированию XML файла обмена для этого узла;
  2. Берём сформированный файл и, используя выбранный нами транспорт, передаём на сторону филиала;
  3. Посылаем филиалу команду на выполнение диаграммы по загрузке данных. Причём в блоке «Выполнить диаграмму» используем возможность передачи диаграммы на удалённый хост;
  4. Ждём поступления события со стороны филиала. Вариантов три: успех, неудача или истечение времени ожидания;
  5. Если пришло сообщение об успехе – выполняем загрузку файла ответа.

 

Сценарий работы диаграммы по загрузке данных в филиале следующий:

  1. Забираем файл данных;
  2. Выполняем заранее подготовленную обработку 1С по загрузке данных;
  3. Берём сформированный файл ответа и, используя выбранный нами транспорт, передаём на сторону центрального офиса;
  4. Посылаем сообщение в центр о завершении работы.

 

Сценарий работы главной диаграммы таков: перебираем в заранее определённой папке все диаграммы первого этапа и выполняем их.

 

Необходимо отметить следующее:

  1. Решение о необходимости оповещения администратора можно принять на любом этапе выполнения сценариев обмена, большинство блоков умеют возвращать результат «Ошибка»;
  2. За счёт наличия в блоке «Ожидать PAUT сообщения» возможности настроить таймаут ожидания, можно принять решение о том что в филиале возникли не предвиденные проблемы и необходимо вмешательство администратора;
  3. Для предотвращения одновременного запуска нескольких экземпляров диаграмм в рамках одного сервера можно использовать блоки из группы «Объекты синхронизации». Это избавит администратора от возможных проблем.

 

Пользователю, наделённому полномочиями по запуску диаграмм обмена в произвольное время необходимо разработать простую диаграмму, которая используя блок «Выполнить диаграмму» произведёт удалённый запуск полного цикла обмена.

 

Далее остаётся настроить запуск главной диаграммы обмена по расписанию, используя для этих целей, стандартный планировщик задач входящий в Windows.

 

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

Дополнительные возможности

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

Если с филиалом нет связи – а обмен делать надо. Пишем диаграммы по копированию определённых файлов на USB накопитель. Эти диаграммы, «знают» какой файл должен уходить в филиал, куда его складывать и как запускать цикл обмена в филиале. Более того все операции с USB накопителем можно сопровождать всплывающими окнами – подсказывающими людям на местах, что сейчас необходимо сделать. Разработанные нами блоки позволяют ожидать подключения конкретного USB накопителя, идентифицируя его по серийному номеру, выполнять корректное отключение устройства. Примеры диаграмм работы с USB накопителями включены в комплект поставки.

Отображение на мониторинге – при большом числе филиалов без мониторинга процесса обмена не обойтись. Мы применяем простую схему – каждый филиал отображается на мониторинге в виде «лампочки». Красный цвет – значит необходимо вмешаться, зелёный – всё в порядке. В VisualBatch входит разработанная нами система мониторинга основанная на отображении Майкрософт Visio документа в качестве схем сети или элементов сетевого взаимодействия.

Отключение активных пользователей – во время выполнения обмена бывает потребность в монопольном доступе к данным конфигурации. В данной версии продукта нет блоков, позволяющих принудительно отключить пользователей на основе механизма заложенного в 1С. Мы предлагаем воспользоваться возможностями нашей службы очередей сообщений PAUTMessageService. Доработайте конфигурации с использованием внешней компоненты разработанной нами, о её возможностях рассказано в статье: //infostart.ru/public/128273.

Хосты за маршрутизаторами с NAT – т.е. сервера участвующие в обмене не могут взаимодействовать, не используя какой-то внешний сервис, как может возникнуть такая ситуация? Может из-за отсутствия правильно настроенной сетевой инфраструктуры, а может это сделано сознательно. Что мы предлагаем? В обеих точках на маршрутизаторах настроить «проброс» порта. Настройки нашей службы передачи сообщений позволяют это учесть и тогда центральная и периферийная точки смогут взаимодействовать не замечая ограничений. Если возможности перенастроить маршрутизаторы нет, есть вариант наладить взаимодействие служб через третий узел, который имеет «белый» IP адрес и может выступать в роли посредника по передачи сообщений между закрытыми сетями.

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

Альтернативный транспорт – Так как передаваемый пакет обмена является XML строкой, его можно передать на принимающую сторону через дополнительный параметр поля «Данные для оповещения» блока «Отправить PAUT сообщение». Это позволит вообще отказаться от внешнего инструментария по передачи файлов, хотя при размере XML файла больше 300кб возможны завершения работы блоков по таймауту.

Заключение

Всё сказанное так же относится и к обменам 1С 7.7 на основе УРИБ. Нами разработаны примеры диаграмм и демонстрационные конфигурации, которые выложены на сайте. Более детальную информацию по работе продукта можно получить ознакомившись с его документацией.

 

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Перенос данных 1C Программист 1С:Предприятие 8 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

58000 руб.

04.08.2015    186304    437    301    

445

SALE! 10%

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

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.267.x) и БП 3.0 (3.0.194.x). Правила подходят для версии ПРОФ и КОРП.

38000 34200 руб.

15.12.2021    33513    250    64    

190

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

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

50050 руб.

25.02.2015    187523    356    288    

416

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27633 руб.

12.06.2017    159655    959    317    

480

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Правила переноса кадровых и расчетных данных и справочной информации из "1С:УПП1.3" или "1С:КА 1.1" в "1С:ЗУП 3.1 | Разработан в формате КД 2 (правила конвертации данных) | При выгрузке есть фильтр по организациям | Обновляется при выходе новых релизов 1С | Развитие алгоритмов | Расчетные документы переносятся в документ "Перенос данных" | Создаются документы "Начальная штатная расстановка" и "Начальная задолженность по зарплате", переносятся кадровые документы

58000 руб.

29.10.2018    62383    80    131    

78

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Управление торговлей 10 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.88.x) и УТ 11.5 (11.5.25.x).

38000 34200 руб.

23.07.2020    67377    313    94    

251

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой

58000 руб.

15.04.2019    83213    222    174    

161

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Россия Платные (руб)

Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 3, УНФ 3 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.

16531 руб.

18.02.2016    202102    671    543    

562
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. pepe 64 11.06.13 17:49 Сейчас в теме
Хорошая идея, осталось только на практике попробовать.
2. dzuyba 46 12.06.13 12:13 Сейчас в теме
Пробуйте, если будут вопросы то пишите поможем.
3. qw12225 12.06.13 14:43 Сейчас в теме
Сейчас готовлю статью почти на эту тему, скоро появиться, реализация немного другая (связана с тем что филиалы не завязаны в одну сеть с центральным офисом). Будет интересно почитайте.
4. dzuyba 46 12.06.13 17:08 Сейчас в теме
Наш сервер очередей сообщений при определенных настройках передает данные между закрытыми сетями. Об этом я написал в параграфе "доп. возможности". Настраивается просто указанием внешнего ip и пробросом порта. Статью о вашей реализации обязательно прочитаю.
Для отправки сообщения требуется регистрация/авторизация