При работе с современными конфигурациями на платформе 1С:Предприятие 8.3, такими как Управление торговлей 11, Бухгалтерия предприятия 3.0 или Зарплата и управление персоналом 3.1, специалисты часто сталкиваются с ситуацией, когда привычные кнопки выгрузки правил конвертации в интерфейсе отсутствуют или ведут к выгрузке только правил регистрации. Разберем подробно, почему так происходит, где искать логику обмена и как правильно подойти к доработке типовой синхронизации данных.
Первым делом проанализируем ситуацию: почему в форме «Правила для синхронизации данных» вместо ожидаемого пункта «Сохранить правила в файл» мы видим только «Сохранить правила регистрации»? Причина кроется в смене технологического стека обмена данными. Рассмотрим основные отличия:
Выясним причину отсутствия кнопки: так как правила конвертации теперь являются частью программного кода общего модуля, их невозможно просто «выгрузить в XML» одной кнопкой. В XML-файлах по-прежнему могут храниться только правила регистрации (условия, при которых объект помечается к выгрузке), поэтому программа предлагает сохранить именно их.
Проанализируем структуру конфигурации. Если ваша синхронизация работает через универсальный формат, то вся основная логика сосредоточена в общем модуле МенеджерОбменаЧерезУниверсальныйФормат. Рассмотрим подробнее, как устроена работа в этом модуле:
Для каждого типа объекта (документа или справочника) в модуле существуют специализированные процедуры. Например:
EnterpriseData.EnterpriseData в объекты текущей базы.Если нам необходимо изучить, как заполняется конкретное поле, мы открываем конфигуратор и выполняем поиск по имени объекта или реквизита в этом модуле. Посмотрим на пример типичной структуры кода внутри менеджера обмена:
Процедура Пр_Отправка_Справочник_Номенклатура(ДанныеИБ, ДанныеXDTO, КомпонентыОбмена)
// Здесь описывается логика заполнения полей XDTO на основании данных из базы
ДанныеXDTO.Наименование = ДанныеИБ.Наименование;
ДанныеXDTO.Артикул = ДанныеИБ.Артикул;
КонецПроцедуры
Несмотря на то, что правила живут в коде, разработчикам иногда требуется визуализировать их в интерфейсе конфигурации «Конвертация данных 3.0». Разберем этот процесс по шагам:
\SyncFiles или \ExchangeRules в каталоге установки шаблонов конфигурации. Эти файлы — не сами правила для работы обмена, а «проекты» для КД 3.0, из которых потом генерируется код.Рассмотрим ситуацию, когда нам нужно внести изменения в типовой обмен. Править общий модуль МенеджерОбменаЧерезУниверсальныйФормат напрямую — плохая практика, так как это создаст огромные сложности при обновлении. Проанализируем более современные способы:
Способ 1: Использование расширений. Это самый правильный метод. Мы создаем расширение конфигурации и перехватываем события модуля менеджера обмена. Используем аннотации &Вместо, &Перед или &После для корректировки логики.
Способ 2: Внешний модуль менеджера обмена. В настройках синхронизации (раздел «Параметры подключения») в некоторых версиях БСП предусмотрена возможность подключить «Внешний модуль менеджера обмена». Это обычная внешняя обработка (файл .epf), внутри которой содержится весь код модуля. Рассмотрим алгоритм работы с ним:
МенеджерОбменаЧерезУниверсальныйФормат в модуль объекта новой внешней обработки.Если ваша конфигурация использует старый механизм обмена (не Универсальный формат), то правила действительно могут храниться в макетах. Выясним, как их найти:
Откроем конфигуратор и через глобальный поиск (Ctrl+Shift+F) попробуем найти строку "ПравилаОбмена>". Скорее всего, поиск приведет нас к макетам Планов Обмена. Если правила находятся там, мы можем сохранить содержимое макета в файл XML и открыть его в «Конвертации данных 2.0».
Также проверим Регистр сведений «Правила для обмена данными». В некоторых конфигурациях (через «Все функции» или «Функции для технического специалиста») можно зайти в этот регистр и найти записи для вашей настройки обмена. Там часто присутствуют кнопки «Сохранить правила конвертации в файл».
Поскольку в КД 3.0 правила — это обычный код 1С, процесс отладки становится прозрачнее. Разберем, как проанализировать ошибки:
Пр_ПередЗаписьюПолученногоОбъекта или Пр_ПриОтправкеДанных в модуле менеджера обмена.Таким образом, мы выяснили, что отсутствие кнопки выгрузки правил — это не ошибка, а особенность современной архитектуры 1С. Основная работа теперь ведется не в графическом редакторе правил, а непосредственно в программном коде с использованием механизмов XDTO.