Разработка и Конфигурация · 11 мин
Как изменить правила обмена в 1С
Как изменить правила обмена в 1С через Конвертацию данных 2.1 и 3.0: правки ПКО, ПКС, подключение правил к обмену, проверка результата и типичные ошибки.
Правила обмена определяют, какие объекты и с какими преобразованиями переносятся между базами 1С — например, между «Управлением торговлей» и «Бухгалтерией предприятия». Когда в конфигурации добавляют реквизиты, меняют структуру документов или требуется нестандартное сопоставление справочников, типовые правила перестают подходить, и их приходится дорабатывать. Инструментом для этой задачи служит конфигурация «Конвертация данных» (редакция 2.1 для классических обменов и 3.0 для обменов через EnterpriseData).
Работа с правилами — это изменение логики переноса данных, поэтому ошибка в правилах может привести к дублям справочников, потери проводок или рассинхронизации баз. Любую доработку выполняют на копиях баз, а в рабочую среду переносят только после проверки на тестовых документах. Ниже описан полный цикл: от выгрузки текущих правил до подключения изменённой версии и контроля результата.
Когда требуется менять правила обмена
Типовые правила рассчитаны на стандартные конфигурации без доработок. Как только в одной из баз добавили собственный реквизит, документ или вид расчёта, типовой обмен начинает терять эти данные либо вовсе завершаться с ошибкой. Это первый и самый частый повод для правки правил.
Вторая группа причин — методические: нужно переносить документы не один в один, а с преобразованием (например, «Реализацию товаров» выгружать как «Поступление услуг»), сворачивать несколько справочников в один, заполнять реквизит по формуле или отсекать часть данных по условию. Третья группа — переход на новые релизы конфигураций, после которых типовые правила перестают соответствовать изменённой структуре метаданных.
Как выбрать действие
Какие инструменты используются
Для обменов, построенных на «Конвертации данных 2.1» (это большинство классических пар «УТ — БП», «ЗУП — БП» старых версий), правила хранятся в XML-файле и редактируются в конфигурации «Конвертация данных 2.1». Файл содержит правила конвертации объектов (ПКО), свойств (ПКС), правила выгрузки данных (ПВД), алгоритмы и запросы.
Для современных обменов через формат EnterpriseData используется «Конвертация данных 3.0» (бывшая XDTO-конвертация). Здесь правила также представляют собой XML, но структура другая: правила обработки данных, правила конвертации объектов и свойств привязаны к версии формата обмена. Важно заранее определить, какой механизм использует ваша синхронизация: это видно в настройке обмена — обмен через «универсальный формат» означает КД 3.0, обмен «через файл правил конвертации» — КД 2.1.
Как выгрузить и открыть текущие правила
Перед правкой нужно получить актуальную версию правил. Если обмен типовой, правила обычно встроены в конфигурацию и хранятся в макете. Их можно выгрузить: в настройке синхронизации данных откройте пункт сохранения правил (в разных конфигурациях это «Сохранить правила в файл» либо выгрузка через обработку настройки обмена) и сохраните XML-файл на диск.
Далее правила загружают в «Конвертацию данных»: в режиме 1С:Предприятие откройте справочник «Конвертации», создайте новую конвертацию, укажите конфигурации источника и приёмника (их нужно предварительно загрузить из файлов выгрузки конфигураций через соответствующую обработку) и выполните загрузку правил из XML-файла. После загрузки в дереве появятся ПВД, ПКО, ПКС и алгоритмы, доступные для редактирования.
- 1Сделайте резервные копии обеих баз и настройте тестовый стенд с копиями
- 2Выгрузите текущие правила обмена в XML-файл из настройки синхронизации
- 3Загрузите конфигурации источника и приёмника в Конвертацию данных
- 4Загрузите файл правил в новую конвертацию
- 5Внесите изменения в ПКО, ПКС или алгоритмы
- 6Выгрузите изменённые правила в новый XML-файл
- 7Подключите файл в настройке обмена и выполните тестовую синхронизацию
- 8Сверьте перенесённые данные в базе-приёмнике
Как изменить правила конвертации объектов и свойств
Наиболее частая задача — добавить перенос нового реквизита. Для этого в нужном ПКО создают новое ПКС: указывают свойство источника, свойство приёмника и при необходимости правило конвертации для значения, если типы не совпадают. Если реквизит ссылочный (например, дополнительный справочник), для его типа должно существовать собственное ПКО, иначе значение не перенесётся.
Если простого соответствия реквизитов недостаточно, используют обработчики событий. Например, в событии «Перед выгрузкой» ПКС можно вычислить значение алгоритмом, а в событии «После загрузки» ПКО — выполнить дополнительные действия с уже записанным объектом. Код обработчиков пишется на встроенном языке 1С и выполняется либо в источнике, либо в приёмнике — это задаётся флагом места выполнения.
Изменение правил выгрузки данных
ПВД определяют, какие объекты вообще попадают в выгрузку. Чтобы отфильтровать данные (например, выгружать документы только по одной организации), в ПВД добавляют отбор или код в событии «Перед обработкой»/«При обработке», где можно отказаться от выгрузки конкретного объекта установкой переменной «Отказ».
Работа с алгоритмами
Повторяющуюся логику выносят в алгоритмы — именованные блоки кода, которые вызываются из обработчиков. Это упрощает поддержку: при изменении логики правится один алгоритм, а не десяток ПКС. Учтите, что алгоритмы, выполняемые в приёмнике, должны опираться только на объекты, доступные в конфигурации приёмника.
Как подключить изменённые правила к обмену
После выгрузки изменённых правил из «Конвертации данных» в XML-файл их нужно подключить вместо типовых. В настройке синхронизации данных (раздел «Администрирование» → «Синхронизация данных») откройте настройку нужного обмена и перейдите к параметрам правил. Обычно доступен выбор: использовать типовые правила из конфигурации или загрузить правила из файла. Выберите второй вариант и укажите сохранённый XML.
Для обменов через универсальный формат (КД 3.0) механизм аналогичен: правила конвертации загружаются через настройку синхронизации либо через обработку «Панель администрирования БСП», если она используется. После подключения новых правил рекомендуется выполнить повторное сопоставление объектов, если менялись правила поиска ссылочных данных, — иначе возможны дубли элементов справочников.
Проверка результата после изменения правил
Тестовый обмен выполняют на ограниченном наборе данных: зарегистрируйте к обмену несколько характерных документов и связанных с ними элементов справочников, включая те, ради которых менялись правила. После выгрузки и загрузки откройте объекты в приёмнике и проверьте целевые реквизиты, суммы, табличные части и ссылки.
Обязательно изучите протокол обмена: предупреждения вида «объект не найден», «не удалось записать» указывают на проблемы в правилах, даже если обмен формально завершился успешно. Для документов проверьте, что в приёмнике корректно заполнились проводки или движения по регистрам — если это предусмотрено сценарием обмена.
Как проверить результат
Значение перенесено и соответствует источнику
Реквизит пустой или содержит значение по умолчанию
Ссылки указывают на существующие элементы без дублей
Появились дубли или ссылки вида «<Объект не найден>»
Нет ошибок и критичных предупреждений
Ошибки записи объектов, пропущенные объекты
Данные не задваиваются при повторном обмене
Каждый обмен создаёт новые копии объектов
Типичные ошибки и ограничения
Самая распространённая ошибка — правка правил под несоответствующую версию конфигурации. Вторая — изменение правил поиска (полей поиска в ПКО) без повторного сопоставления объектов: база приёмника начинает считать уже сопоставленные элементы новыми. Третья — использование в обработчиках приёмника методов и объектов, которых нет в его конфигурации: такой код приводит к ошибке загрузки.
Ещё одно ограничение: в типовых обменах при обновлении конфигурации правила, загруженные из файла, не обновляются автоматически. После каждого значимого обновления конфигураций проверяйте совместимость своих правил с новым релизом — при расхождении придётся переносить доработки в обновлённые типовые правила заново.
Что важно запомнить
Правила обмена дорабатывают в Конвертации данных 2.1 или 3.0 в зависимости от механизма синхронизации: выгружают текущие правила, правят ПКО/ПКС и алгоритмы, подключают новый XML-файл в настройке обмена. Все изменения проверяют на копиях баз с контролем протокола и ссылочной целостности.
Частые вопросы
Можно ли изменить правила обмена без конфигурации «Конвертация данных»?
Теоретически XML-файл правил можно править в текстовом редакторе, но на практике это почти неприменимо: структура файла сложна, а проверки соответствия метаданным нет. Для любых осмысленных доработок используют «Конвертацию данных» — она контролирует ссылки между правилами и соответствие реквизитов конфигурациям.
Чем отличается Конвертация данных 2.1 от 3.0?
КД 2.1 работает с классическими правилами выгрузки-загрузки через собственный XML-формат, КД 3.0 — с обменом через универсальный формат EnterpriseData (XDTO-пакеты). Определить нужную редакцию можно по настройке обмена: если указан «универсальный формат обмена данными», используется КД 3.0.
Почему после изменения правил появились дубли контрагентов?
Чаще всего изменились поля поиска в ПКО справочника (например, убрали ИНН из ключевых полей), а уже сопоставленные элементы остались привязаны к старой логике. Решение — очистить или перезаполнить соответствия объектов в настройке синхронизации и выполнить сопоставление заново на тестовой копии.
Что делать, если после обновления конфигурации доработанные правила перестали работать?
Обновление меняет структуру метаданных, и правила, загруженные из файла, не обновляются вместе с конфигурацией. Нужно взять актуальные типовые правила нового релиза, перенести в них свои доработки через Конвертацию данных и заново подключить файл к обмену.
Можно ли отладить обработчики правил пошагово?
Да. Для отладки используют обработку выгрузки/загрузки с включённым режимом отладки: в Конвертации данных формируется внешняя обработка выгрузки с подключаемыми модулями, которую открывают в конфигураторе и выполняют под отладчиком. Это позволяет ставить точки останова в коде обработчиков и смотреть значения переменных.
Нужно ли менять правила в обеих базах?
Зависит от направления обмена. Для одностороннего обмена правила подключаются в базе-источнике (выгрузка) и при необходимости в приёмнике (правила загрузки). Для двусторонней синхронизации каждая сторона использует свой комплект правил, и доработки, влияющие на обратное направление, придётся внести в оба комплекта.