При работе с программными продуктами 1С часто возникает ситуация, когда необходимо подружить современные конфигурации (например, УТ 11.5) с их «древними» предшественниками (УТ 11.0 на базе БСП 1.2). Основная сложность здесь заключается в смене парадигмы обмена: старые системы работают исключительно на правилах Конвертации данных 2.0 (XML), в то время как новые ориентированы на EnterpriseData (КД 3.0), где логика прописана в коде модулей менеджеров.
В этой статье мы разберем, как организовать регулярный автоматический обмен данными через файлы, используя привычные правила КД 2.0, и при этом вписать это в стандартные или околостандартные механизмы систем, чтобы избежать написания громоздкого кода с нуля.
Рассмотрим ситуацию подробнее. В УТ 11.5 стандартная синхронизация через «Другую программу» по умолчанию ожидает использование формата EnterpriseData. Однако в УТ 11.0 версии 11.0.x механизмы БСП настолько старые, что внедрение туда поддержки EnterpriseData потребует колоссальных трудозатрат и масштабного обновления конфигурации.
Проанализируем доступные варианты. Если нам нужно перекидывать документы (например, превращать Заявку в Реализацию), самый быстрый путь — это создание правил в Конвертации данных 2.0. Но как заставить их работать автоматически по расписанию? Выясним, какие шаги для этого необходимы.
Прежде всего, нам понадобятся актуальные структуры обеих баз. Для этого используем обработку MD82Exp.epf (выгрузка описания конфигурации), которая идет в комплекте с КД 2.0. Выгружаем структуры из источника (УТ 11.0) и приемника (УТ 11.5).
Загружаем структуры в базу Конвертации данных и создаем правила обмена (ПКО, ПВД). На этом этапе важно помнить: в УТ 11.5 структура многих справочников (например, Партнеры и Контрагенты) значительно отличается от УТ 11.0. Поэтому в правилах необходимо тщательно прописать алгоритмы поиска и синхронизации по уникальным идентификаторам или кодам.
Чтобы обмен не выгружал всю базу каждый раз, а передавал только новые или измененные документы, нам понадобится План обмена. Рассмотрим, как это реализовать:
ПланОбмена (например, УдаленныйОбменСУТ115).Многие разработчики теряются, не находя кнопки «Загрузить правила» в интерфейсе синхронизации УТ 11.5. Разберем, где они прячутся. Современная БСП продолжает поддерживать старый формат обмена через регистр сведений ПравилаДляОбменаДанными.
Для активации обмена по правилам КД 2.0 в новой базе нам нужно:
ПравилаДляОбменаДанными.xml.Важный момент: В УТ 11.5 при загрузке данных может сработать жесткий контроль заполнения реквизитов или бизнес-логика модулей объектов. Чтобы этого избежать, в правилах конвертации объектов (ПКО) рекомендуется использовать обработчик ПриЗагрузке, устанавливая флаг ОбменДанными.Загрузка = Истина;.
Теперь выясним, как запустить этот процесс без участия пользователя. В старой УТ 11.0 мы не сможем полноценно вписаться в современную панель мониторинга синхронизации, поэтому пойдем по пути «малой крови».
Рассмотрим использование типовой обработки УниверсальныйОбменДаннымиВФорматеXML. Она уже встроена в большинство конфигураций. Нам нужно создать регламентное задание, которое будет программно вызывать эту обработку. Пример логики вызова может выглядеть так:
// Пример упрощенного вызова выгрузки по плану обмена
ОбработкаОбмена = Обработки.УниверсальныйОбменДаннымиВФорматеXML.Создать();
ОбработкаОбмена.РежимРаботы = "Выгрузка";
ОбработкаОбмена.ИмяФайлаПравилОбмена = "C:\Exchange\Rules.xml";
ОбработкаОбмена.ИмяФайлаДанных = "C:\Exchange\Data.xml";
ОбработкаОбмена.ИспользоватьПланыОбмена = Истина;
ОбработкаОбмена.УзелПланаОбменаГиперссылка = СсылкаНаУзел;
ОбработкаОбмена.ВыполнитьВыгрузку();
На стороне УТ 11.5 настраивается аналогичное регламентное задание на загрузку. Программа будет проверять наличие файла в папке и, если он появился, инициализировать загрузку через ту же универсальную обработку. Если нужен готовый механизм вместо собственного кода регламентных заданий, «Автообмен» запускает обмены по расписанию по готовым XML-правилам КД 2, использует планы обмена для регистрации изменений и поддерживает запуск через COM или веб-сервис.
Если базы находятся в пределах одной локальной сети, и задача ограничивается переносом одного-двух типов документов, проанализируем вариант с COM-соединением. Это позволит избежать создания файлов обмена и настройки правил регистрации.
В этом случае в УТ 11.5 пишется внешняя обработка, которая:
V83.COMConnector.Этот метод «быстрее» в реализации для разовых или простых задач, но сложнее в поддержке, если структура метаданных начнет часто меняться.
Подведем итог нашего исследования. Чтобы получить результат минимальными усилиями:
УниверсальныйОбменДаннымиВФорматеXML через регламентные задания.ПравилаДляОбменаДанными, что позволит системе «узнать» ваши правила.Такой подход позволит вам настроить полноценную автоматическую синхронизацию, сохранив при этом прозрачность процесса и возможность легкой корректировки правил обмена без изменения программного кода самих конфигураций. После запуска синхронизации контролировать накопившуюся очередь можно с помощью обработки анализа зарегистрированных изменений по планам обмена, которая показывает количество регистраций по узлам и объектам метаданных.