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