Стандартный коннектор Directum для синхронизации справочников с платформой 1С предоставляет достаточно гибкий интерфейс для организации обмена данными, который, тем не менее, имеет ряд особенностей и сопутствующих ему ограничений:
В связи с вышеизложенными причинами было принято решение об изменении механизма синхронизации, для чего было разработано соответствующее решение.
Разработка решения осуществлялась в несколько этапов:
При планировании архитектуры решения были учтены обширные возможности языка C#, ядро работы механизма синхронизации - библиотека для создания клиентов REST-сервисов была построена с помощью механизма C# - обобщений, что ускорило разработку, так как применение наследования и обобщений дало возможность ограничиться реализацией моделей получаемых данных, и исключило необходимость
многократного дублирования кода для работы со схемой запросов каждой модели. Решение представляет из себя модуль, в котором реализован фоновый процесс, по расписанию опрашивающий веб-сервисы, реализованные на стороне 1С, и сохраняющий или обновляющий сущности DirectumRX в соответствии с логикой работы штатного коннектора.
В настоящий момент решение находится в стадии внедрения и опытной эксплуатации в ООО “Арбат отель менеджмент” (управляющая компания сети курортов Alean Family Resort Collection). Решение было разработано за 1,5 месяца.
В результате реализации решения был получен механизм, обеспечивающий:
В перспективе планируется доработка решения для осуществления экспорта данных из DirectumRX в 1С.
Обсудите реализацию с экспертом Directum
Комментарии (1)
Добрый день, Дмитрий. Вы довольно подробно расписали технические аспекты. Мне хотелось бы задать пару вопросов, в основном они касаются бизнес логики процесса:
1. Для каких типов сущностей применяется данная синхронизация? Документы, справочники? Или набор сущностей аналогичен, синхронизируемому стандартным коннектором?
2. Причины перехода на веб-сервисы были исключительно техническими или все же продиктованы конкретными требованиями бизнеса?
3. Какова периодичность запуска фонового процесса? Не было ли мысли реализовать запуск "по кнопке" или событию процесса для обновления информации только для конкретной сущности?