Как найти и обновить типовые правила обмена между ЗУП 3.1 и БП 3.0?

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

При настройке синхронизации данных между конфигурациями 1С:Зарплата и управление персоналом 3.1 и 1С:Бухгалтерия предприятия 3.0 часто возникает ситуация, когда для части организаций требуются доработанные правила обмена, а для остальных — типовые. При попытке найти файлы типовых правил в каталогах шаблонов обновлений или дистрибутивах поиск не дает результатов. Разберем, почему это происходит и как правильно организовать обмен для типовых и нетиповых организаций.

Где находятся типовые правила обмена в современных конфигурациях

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

Извлечь или применить типовые правила можно несколькими способами:

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

Причина ошибок при обмене типовых и нетиповых организаций

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

Рассмотрим два основных варианта решения этой задачи.

Способ 1. Универсализация алгоритмов в правилах конвертации (рекомендуемый)

Чтобы не создавать множество отдельных настроек и узлов обмена, доработаем текущие правила конвертации в конфигурации «Конвертация данных 2.0». Сделаем алгоритмы выгрузки безопасными для объектов, у которых нет добавленных реквизитов.

Разберем по шагам доработку обработчиков событий (например, Перед выгрузкой или При выгрузке свойства):

  1. Обернем обращение к нетиповым реквизитам в конструкцию безопасного чтения через блок Попытка ... Исключение.
  2. Добавим проверку наличия реквизита в метаданных текущего объекта перед обращением к нему.
  3. Добавим условие по конкретной организации (по коду, ИНН или признаку в дополнительных реквизитах), чтобы специфическая логика выполнялась только для нужных юридических лиц.

Посмотрим на пример безопасного получения значения реквизита в обработчике правила конвертации свойств:


// Безопасное получение значения дополнительного реквизита
Попытка
    Значение = Источник.НетиповойРеквизит;
Исключение
    Значение = Неопределено;
КонецПопытки;

Если Не ЗначениеЗаполнено(Значение) Тогда
    // Если реквизит отсутствует или пуст у типовой организации, подставляем значение по умолчанию
    Выражение = "";
КонецЕсли;

Способ 2. Разделение синхронизации на независимые узлы

Если объединение правил нецелесообразно, разделим потоки синхронизации с помощью механизмов БСП прямо в режиме 1С:Предприятие:

  1. Откроем Настройки синхронизации данных и создадим два отдельных узла обмена с одной и той же базой-корреспондентом.
  2. Для Узла №1 настроим фильтр по составу организаций, включив в него только нетиповые компании, и загрузим в него измененный комплект правил из внешнего файла.
  3. Для Узла №2 настроим фильтр только по типовым организациям и установим режим использования встроенных правил из конфигурации.

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

← На главную