Как добавить правила обмена из Конвертации данных 2.1 в 1С:Управление нашей фирмой

Программист 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой Управленческий учет IT и автоматизация бизнеса
← На главную

При разработке механизмов интеграции между различными базами данных программисты часто сталкиваются с задачей переноса логики преобразования объектов в рабочую конфигурацию. В случае с 1С:Управление нашей фирмой (УНФ), которая базируется на Библиотеке стандартных подсистем (БСП), процесс добавления правил имеет свои архитектурные особенности. Разберем подробно, как правильно интегрировать правила, созданные в Конвертация данных 2.1, чтобы они работали стабильно, в том числе и в составе регламентных заданий на разных рабочих станциях.

Понимание архитектуры: План обмена vs Правила обмена

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

  1. План обмена — это объект метаданных в дереве конфигурации. Он является «каркасом», который определяет список узлов (куда передаем данные) и состав объектов (какие справочники и документы отслеживаются для выгрузки). План обмена создается только в Конфигураторе.
  2. Правила обмена — это XML-файл с алгоритмами, написанными в Конвертация данных 2.1. Они определяют, как именно СправочникСсылка.Контрагенты из одной базы превратится в аналогичный объект в другой базе.

Рассмотрим пошаговый алгоритм правильной подготовки и загрузки этих компонентов в систему.

Шаг 1. Создание и настройка Плана обмена в Конфигураторе

Если стандартные планы обмена в УНФ не подходят под ваши задачи, необходимо создать новый объект. Выясним, как это сделать правильно:

  1. Откроем Конфигуратор и перейдем в ветку Общие -> Планы обмена.
  2. Создадим новый план обмена, например, УНФ_ВнешняяСистема.
  3. На вкладке «Состав» укажем все объекты (справочники, документы, регистры), которые планируется передавать. Для каждого объекта установим режим «Авторегистрация» в значение Разрешить, если мы хотим, чтобы система сама фиксировала изменения данных.
  4. Если мы планируем использовать стандартные механизмы БСП, желательно включить наш план обмена в соответствующие подсистемы и настроить права доступа.

Шаг 2. Выгрузка метаданных для Конвертации данных

Чтобы Конвертация данных 2.1 понимала структуру вашей обновленной УНФ, нужно предоставить ей описание метаданных. Рассмотрим, как это сделать:

Используем внешнюю обработку MD82Exp.epf (она идет в комплекте с дистрибутивом КД 2.1). Запустим ее в режиме «1С:Предприятие» в вашей базе УНФ. В обработке выберем необходимые объекты (обязательно включив созданный ПланОбмена.УНФ_ВнешняяСистема) и выгрузим их в файл XML. После этого в самой Конвертации данных обновим описание конфигурации источника, загрузив этот файл.

Шаг 3. Подготовка правил в КД 2.1

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

После настройки всех ПКО (Правил конвертации объектов) и ПВД (Правил выгрузки данных), сохраним готовые правила в XML-файл на диск.

Шаг 4. Загрузка правил в информационную базу (Режим БСП)

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

Проанализируем путь настройки:

  1. Зайдем в интерфейс УНФ под правами администратора.
  2. Перейдем в раздел Администрирование — Синхронизация данных.
  3. Откроем Настройки синхронизации данных.
  4. Создадим новую настройку на базе нашего плана обмена или выберем существующую.
  5. В меню (обычно под кнопкой «Параметры синхронизации» или «Еще») выберем пункт «Загрузить правила обмена».
  6. Укажем путь к нашему XML-файлу, полученному из КД 2.1.

Результат: Система сохранит содержимое XML-файла в регистр ПравилаОбменаДанными. Теперь, когда регламентное задание запустится на сервере или на любом другом компьютере, программа возьмет правила прямо из базы данных. Файл на диске больше не нужен.

Шаг 5. Использование макетов в Конфигураторе (Альтернативный способ)

Если вы разрабатываете тиражируемое решение и хотите, чтобы правила «уезжали» к клиенту вместе с обновлением конфигурации, их можно «вшить» в макет плана обмена.

Разберем этот процесс:

  1. В Конфигураторе у объекта ПланОбмена создаем новый Макет.
  2. Тип макета выбираем Двоичные данные.
  3. Называем макет, например, ПравилаОбмена. Загружаем в него наш XML-файл.

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


Процедура ПриЗаполненииПараметровОпределенияТипаОбъекта(Параметры) Экспорт
    // Указываем системе, что данный план обмена использует правила из макета
КонецПроцедуры

Функция ПолучитьПравилаОбмена() Экспорт
    Возврат УстановитьПравилаИзМакета("ПравилаОбмена");
КонецФункции

Использование макетов позволяет избежать ручной загрузки правил в пользовательском режиме, но требует строгого соблюдения стандартов разработки БСП.

Шаг 6. Настройка регламентных заданий

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

Резюме

Мы выяснили, что для успешного добавления правил обмена в УНФ необходимо сначала создать ПланОбмена в Конфигураторе, а затем загрузить XML-файл правил через стандартный интерфейс синхронизации данных. Это гарантирует, что логика обмена будет храниться внутри информационной базы и будет доступна для всех участников процесса синхронизации независимо от их физического расположения.

← На главную