К статье
Практический материал

Автоматизация · 12 мин

Как изменить правила обмена 1С при синхронизации

Как изменить правила обмена 1С при синхронизации: конвертация данных, формат EnterpriseData, типовые и нестандартные правила, проверка результата и типичные ошибки.

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

Главная ошибка администраторов — править правила «вслепую», не понимая, какой механизм реально задействован в конкретной настройке синхронизации. В современных конфигурациях (УТ 11, ERP, КА, БП 3.0) большинство типовых синхронизаций работают через EnterpriseData, и правила КД там просто не участвуют. Прежде чем что-то менять, нужно точно определить механизм обмена.

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

Как определить, какой механизм обмена используется

Откройте настройку синхронизации: «Администрирование → Синхронизация данных → Настройки синхронизации данных». Обратите внимание на формат обмена, указанный в настройке. Если там стоит «EnterpriseData» или версия формата вида 1.x — это обмен через стандартный формат БСП, и классические правила КД к нему не применяются. Если указано «через правила конвертации» или выгрузка идёт в произвольный XML — скорее всего, используется КД 2.0.

Дополнительный признак: в типовых конфигурациях для обменов «УТ–БП», «ERP–БП» правила конвертации хранятся внутри конфигурации как макеты и загружаются автоматически при создании настройки. Кнопка «Загрузить правила» в форме настройки синхронизации — прямой индикатор того, что работает механизм правил.

В настройке есть «Загрузить правила»Правила конвертации данных

Правила можно выгрузить, отредактировать в КД 2.1 и загрузить обратно

Указан формат EnterpriseDataОбмен через БСП

Изменения возможны через расширение или подписки на события БСП

Обмен через веб-сервис или план обмена без правилТиповой обмен

Логика зашита в коде конфигурации, правится только доработкой

Изменение правил в «Конвертации данных 2.1»

Конфигурация «Конвертация данных, редакция 2.1» — штатный инструмент для редактирования правил. Порядок работы такой: выгрузите текущие правила из настройки синхронизации (кнопка «Сохранить правила в файл» или через обработку выгрузки), откройте их в КД 2.1, внесите изменения, сохраните и загрузите обратно в настройку обеих баз — правила приёмника и источника должны быть согласованы.

Типичные правки: добавить перенос дополнительного реквизита (для этого создаётся правило конвертации свойства с обработчиком «Перед выгрузкой»), отключить выгрузку ненужного вида документов (правило выгрузки данных помечается как неиспользуемое), изменить поиск контрагентов — например, искать по ИНН и КПП вместо наименования, чтобы устранить дубли.

Обработчики пишутся на встроенном языке 1С. Например, чтобы не выгружать документы по определённой организации, в обработчике правила выгрузки данных устанавливают отказ: Отказ = Истина; при выполнении условия. Все изменения тестируйте сначала на выгрузке в файл через обработку «Универсальный обмен данными в формате XML».

Порядок изменения правил КД 2.0
  1. 1
    Сделайте резервные копии обеих баз и сохраните исходные правила в файл
  2. 2
    Откройте правила в «Конвертация данных 2.1» и внесите изменения
  3. 3
    Протестируйте выгрузку в файл на копии базы, проверьте XML
  4. 4
    Загрузите новые правила в настройки синхронизации обеих баз
  5. 5
    Выполните тестовую синхронизацию и сверьте перенесённые объекты

Изменение обмена через формат EnterpriseData

Обмен через EnterpriseData не использует файлы правил — логика преобразования зашита в коде менеджеров обмена и модулей БСП. Изменить поведение можно тремя способами: настройками самой синхронизации (отборы по организациям, датам, видам документов), расширением конфигурации с переопределением процедур формирования данных, либо подписками на события, которые БСП предоставляет для доработки.

Самый безопасный путь — сначала исчерпать штатные настройки. В форме настройки синхронизации доступны отборы: по организациям, подразделениям, дате начала выгрузки, режим выгрузки (по требованию или все). Многие задачи «не выгружать лишнее» решаются именно здесь, без всякой разработки.

Если настроек недостаточно — создаётся расширение. В нём переопределяются процедуры модулей менеджера обмена, например добавляется перенос нестандартного реквизита в XDTO-пакет с обеих сторон. Это требует навыков разработки: нужно корректно дополнить и отправку, и получение, иначе данные будут теряться или обмен упадёт с ошибкой формата.

Типовые задачи и способы их решения

Не переносится нужный реквизит

Если реквизит добавлен в конфигурацию вручную, типовые правила его не знают. Для КД 2.0 добавьте правило конвертации свойства, указав источник, приёмник и при необходимости обработчик преобразования. Для EnterpriseData — расширение с дополнением процедур заполнения XDTO-объекта на отправке и поиска свойства на приёме.

Дублируются контрагенты или номенклатура

Дубли возникают, когда поиск объекта в базе-приёмнике не находит существующий элемент. В правилах КД измените поля поиска в правиле конвертации объекта: например, для контрагентов — ИНН+КПП, для номенклатуры — артикул. В EnterpriseData поиск обычно идёт по ссылке-идентификатору и ключевым полям; здесь помогает первичное сопоставление через обработку «Сопоставление объектов» перед полноценным обменом.

Нужно выгружать не все документы

В КД 2.0 отключите лишние правила выгрузки данных или добавьте условие отказа. В типовой синхронизации используйте отборы в настройке. Учтите ограничение: если отфильтрованный документ участвует в связях (например, является основанием для выгружаемого), в приёмнике могут остаться битые ссылки — проверяйте целостность после загрузки.

Способы изменения обмена

Настройки синхронизации (отборы)

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

Правила КД 2.0

Гибкая настройка переноса любых объектов и свойств. Требует навыка работы в Конвертации данных и аккуратного тестирования

Расширение конфигурации

Единственный способ доработать EnterpriseData без снятия с поддержки. Требует разработчика и симметричных правок на обеих сторонах

Доработка конфигурации

Максимальная свобода, но усложняет обновления. Оправдана только при масштабных нестандартных требованиях

Как проверить результат и не сломать рабочий обмен

Никогда не применяйте изменённые правила сразу в рабочих базах. Минимальный безопасный цикл: копия базы-источника → копия базы-приёмника → тестовая синхронизация → сверка. Проверяйте не только «обмен прошёл без ошибок», но и содержимое: откройте перенесённые документы, сравните суммы, реквизиты, проверьте отсутствие дублей в справочниках.

Полезные инструменты контроля: журнал регистрации (ошибки загрузки и выгрузки), отчёт о сопоставлении объектов в настройке синхронизации, обработка «Универсальный обмен данными в формате XML» с включённым режимом отладки и протоколом. В протоколе видно, какие объекты выгружены и с какими правилами.

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

Контрольные точки

Как проверить результат

Синхронизация завершилась
Норма

Нет ошибок в журнале регистрации и в форме настройки

Тревожный признак

Ошибки формата, «не найдено свойство», обрывы обмена

Перенесённые документы
Норма

Суммы, даты, контрагенты совпадают с источником

Тревожный признак

Пустые реквизиты, битые ссылки, неверные суммы

Справочники в приёмнике
Норма

Нет новых дублей контрагентов и номенклатуры

Тревожный признак

Появились дубли с похожими наименованиями

Повторная синхронизация
Норма

Передаются только изменённые объекты

Тревожный признак

Каждый раз выгружается весь объём заново

Типичные ошибки и ограничения

Самая частая ошибка — изменить правила только в одной базе. Обмен двусторонний: правила выгрузки источника и загрузки приёмника должны соответствовать друг другу. Вторая типичная проблема — правка правил, встроенных в конфигурацию как макет: при следующем обновлении конфигурации они перезапишутся типовыми. Нестандартные правила правильнее хранить как внешние и загружать в настройку, либо фиксировать доработку в расширении.

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

Типичные ошибки
01
Загрузить новые правила только в одну базу — обмен ломается из-за несогласованности правил
02
Править встроенные в конфигурацию правила — при обновлении изменения затираются типовыми
03
Менять правила при незавершённой синхронизации — старые данные обрабатываются по новым правилам с ошибками
04
Не тестировать на копиях — ошибка в правилах портит данные рабочей базы-приёмника
05
Менять поля поиска без анализа существующих данных — массовые дубли справочников после первого обмена

Когда стоит привлечь разработчика

Самостоятельно разумно выполнять: настройку отборов в типовой синхронизации, отключение лишних правил выгрузки, изменение полей поиска в КД 2.0 при понимании структуры данных. Эти операции обратимы и легко проверяются.

К разработчику стоит обращаться, если нужно: переносить нестандартные объекты или реквизиты через EnterpriseData, писать сложные обработчики с запросами и преобразованиями, настраивать обмен между сильно различающимися конфигурациями (например, самописная база и типовая), а также если после правок обмен падает с ошибками формата. Стоимость ошибки в продуктивном обмене обычно выше стоимости квалифицированной настройки.

Маршрут решения

Как выбрать действие

Нужно просто ограничить состав выгружаемых данныхИспользуйте отборы в настройке синхронизации — без правки правил
Нужно изменить перенос реквизитов и используется КД 2.0Отредактируйте правила в «Конвертация данных 2.1» и загрузите в обе базы
Используется EnterpriseData и настроек недостаточноСоздайте расширение с доработкой менеджеров обмена на обеих сторонах
После правок обмен падает или появились дублиОткатитесь на сохранённые правила, восстановите приёмник из копии и проанализируйте протокол обмена

Частые вопросы

Можно ли изменить правила обмена без конфигурации «Конвертация данных»?

Для обменов через EnterpriseData — да, там правила КД не используются, изменения делаются настройками или расширением. Для обменов на правилах КД 2.0 без «Конвертации данных» редактировать правила практически невозможно: это XML-файл сложной структуры, ручная правка чревата ошибками.

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

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

Нужно ли менять правила в обеих базах?

Да, если обмен двусторонний или правила разделены на выгрузку и загрузку. Несогласованные правила приводят к ошибкам формата и потере данных. Загружайте согласованный комплект в обе настройки синхронизации.

Как убрать дубли контрагентов, которые уже появились после обмена?

Сначала исправьте поля поиска в правилах (например, поиск по ИНН и КПП), затем обработайте существующие дубли типовой обработкой «Поиск и удаление дублей» с заменой ссылок. После этого выполните повторную синхронизацию и проверьте сопоставление объектов.

Можно ли отлаживать обработчики правил в отладчике 1С?

Да. Для обмена через файл запустите обработку «Универсальный обмен данными в формате XML» в режиме отладки с указанием внешней обработки для отладки обработчиков. Для фоновой синхронизации подключите отладку к фоновому заданию через настройки конфигуратора.

Что делать, если после изменения правил обмен стал выполняться очень долго?

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

Итог

Что важно запомнить

Определите механизм обмена до начала правок, изменяйте правила согласованно в обеих базах, сохраняйте исходные версии и тестируйте всё на копиях. Для EnterpriseData используйте расширения, для КД 2.0 — «Конвертацию данных 2.1», а сложные доработки доверяйте разработчику.