Правка правил обмена в 1С: где лежат, чем открыть, как внедрить

· 9 мин

Содержание

Правила обмена не редактируются внутри рабочей базы — там, в разделе Администрирование → Синхронизация данных, доступны только отборы и фильтры. Саму логику сопоставления объектов и полей правят в отдельной конфигурации «Конвертация данных », выгружают оттуда и загружают в базу.

Поэтому первый вопрос — какой у вас механизм: старые правила в XML-файле (это «Конвертация данных 2.0») или синхронизация через универсальный формат EnterpriseData («Конвертация данных 3.0»). Способ правки, место хранения правил и порядок загрузки у них разные.

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

С чего начать: отличаем КД 2.0 от КД 3.0

Версию конвертации определяют не по платформе, а по тому, как настроен обмен в базе.

Признаки Конвертации данных 2.0:

  • 📄 обмен настроен через обработку Универсальный обмен данными в формате XML (файл ВыгрузкаЗагрузкаДанныхXML.epf);
  • 🗂 правила лежат в отдельном XML-файле, который загружается в узел обмена;
  • 🔀 формат выгрузки произвольный, своя структура под конкретную пару конфигураций.

Признаки Конвертации данных 3.0:

  • 🔁 в базе есть раздел Администрирование → Синхронизация данных, обмен идёт через «универсальный формат»;
  • 📐 формат обмена — EnterpriseData (стандартизированный, общий для типовых конфигураций);
  • 🧩 правила хранятся в самой конфигурации — в модуле менеджера плана обмена, а не во внешнем файле.
Какой механизм обмена настроен в вашей базе?

Быстрая проверка: откройте в Конфигураторе дерево метаданных, ветку Планы обмена. Если узел работает через универсальный формат и ссылается на модуль менеджера — перед вами КД 3.0.

Правка правил в Конвертации данных 3.0 (формат EnterpriseData)

КД 3.0 — это отдельная конфигурация, которую запускают как самостоятельную базу. В ней правят правила, а не в рабочей базе.

Порядок работы:

  1. Выгрузите из обеих конфигураций описание формата EnterpriseData (версии формата) — это делается типовой обработкой выгрузки версии формата в каждой базе.
  2. Загрузите эти версии формата и текущие правила в «Конвертацию данных 3.0».
  3. Отредактируйте нужное: правила конвертации объектов, правила конвертации свойств, обработчики событий на встроенном языке.
  4. Выгрузите результат — получится модуль правил обмена.
  5. Поместите модуль обратно в конфигурацию рабочей базы.

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

  • Через расширение конфигурации — самый аккуратный путь. Модуль с правилами подключается расширением, типовая конфигурация остаётся на поддержке, обновления не затирают правку. Расширения доступны с платформы 8.3.6.
  • Правкой основной конфигурации — модуль правил меняется прямо в менеджере обмена. Конфигурацию придётся частично снять с поддержки, а после загрузки выполнить Обновить конфигурацию базы данных (F7).

Загрузка .cfe (файла расширения) и команда Обновить конфигурацию базы данных — это два отдельных действия. Пока не выполните обновление конфигурации БД, новые правила в работу не пойдут.

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

Сопоставление полей в правилах КД 3.0

Основная работа при правке — связать свойства объекта-источника с полями формата и целевого объекта. Типичные сопоставления выглядят так:

Сопоставление полей
Реквизит «Артикул»→Поле формата «Код»
Ставка НДС (источник)→Справочник ставок НДС (приёмник)
Контрагент по ИНН+КПП→Поиск существующего контрагента
Склад отгрузки→Склад получателя по правилу поиска
Единица измерения→Классификатор ОКЕИ

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

Правка правил в Конвертации данных 2.0 (XML-файл)

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

Структура правил в КД 2.0:

Элемент правилЗа что отвечает
ПВД — правила выгрузки данныхкакие объекты и по какому отбору выгружать
ПКО — правила конвертации объектовсоответствие объекта-источника объекту-приёмнику
ПКС — правила конвертации свойствсоответствие реквизитов и табличных частей

Как отредактировать:

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

Поскольку правила КД 2.0 внешние, их легко держать в системе контроля версий и откатывать: сравнить два XML-файла нагляднее, чем два состояния модуля конфигурации.

Если нужно поправить разовую мелочь (убрать одно свойство из выгрузки, добавить условие), можно открыть XML -файл правил текстовым редактором и найти нужный узел. Но правьте XML руками только если понимаете структуру — ошибка в теге ломает загрузку всего файла целиком.

Настройка отборов, фильтров и состава выгрузки

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

Что здесь доступно:

  • 🏢 отбор по организации — выгружать данные только выбранных организаций;
  • 📅 дата начала выгрузки — не поднимать историю за все годы;
  • 🚚 отбор по складам, договорам, видам операций — в зависимости от конфигурации;
  • ⛔ дата запрета загрузки — защита закрытого периода от правок из другой базы.

Отборы делятся на два направления: настройки отправки (что уходит из этой базы) и настройки получения (что принимается из базы-корреспондента). Их настраивают по отдельности — частая путаница в том, что ограничивают только отправку, а встречный поток идёт полностью.

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

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

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

Протокол обмена и разбор ошибок синхронизации

Когда правила отредактированы, первый обмен почти всегда даёт замечания. Читать их нужно в протоколе, а не гадать.

Где смотреть результат:

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

Типовые причины, по которым объект не проходит после правки правил:

  1. 🔍 Не найден объект поиска. В правиле задан поиск по реквизиту (например, по коду), а в базе-приёмнике такого значения нет — объект не с чем сопоставить.
  2. 🧮 Ошибка в обработчике. Код в ПКС обращается к реквизиту, которого нет в этой версии конфигурации.
  3. 📐 Расхождение версий формата. Правила собраны под одну версию EnterpriseData, а база-корреспондент работает на другой.

При расхождении версий формата не придумывайте «какая старше»: сравните номера версий формата в обеих базах напрямую. Правила должны быть собраны под версию не ниже той, что поддерживает принимающая сторона.

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

Для разбора замечаний по симптому удобно идти от текста ошибки к причине, а не перебирать всё подряд.

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

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

Безопасный порядок внедрения:

Внедрение отредактированных правил обмена
Выполнено: 0 / 9

Несколько приёмов, которые экономят разбор потом:

  • Тестируйте на узком отборе — один-два документа и несколько элементов справочников. По маленькой партии ошибку сопоставления видно сразу, а не среди тысяч строк протокола.
  • Проверяйте обмен в обе стороны. Правило может корректно выгружать и некорректно загружать встречный поток.
  • Держите предыдущую версию правил под рукой. Для КД 2.0 это копия XML-файла, для КД 3.0 — предыдущий модуль или версия расширения. Откат должен занимать минуты.

Если обмен идёт по расписанию (регламентное задание), на время внедрения отключите автоматический обмен, чтобы недоправленные правила не ушли в работу между тестом и переносом.

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

Можно ли отредактировать правила обмена прямо в рабочей базе, без «Конвертации данных»?
Логику сопоставления — нет, она правится в конфигурации «Конвертация данных» и переносится. В рабочей базе доступны только отборы и фильтры в разделе синхронизации данных.
Чем КД 3.0 отличается от КД 2.0 при редактировании?
КД 2.0 даёт внешний XML-файл правил, который загружается в узел без правки конфигурации. КД 3.0 даёт модуль, который встраивается в конфигурацию — через расширение или правку основной конфигурации с последующим обновлением конфигурации БД.
Правила встроены в типовую конфигурацию — как их поменять, не снимая с поддержки?
Подключите изменённый модуль правил расширением конфигурации. Типовая остаётся на поддержке, а при обновлении релиза ваша правка не затирается.
После правки правил часть объектов перестала выгружаться — почему?
Либо сработал отбор или условие в правиле выгрузки, либо объект не прошёл поиск соответствия в приёмнике. Проверьте отчёт о составе отправляемых данных и предупреждения синхронизации — там видно конкретную причину по каждому объекту.
Нужно ли повторно выгрузить данные, которые уже уходили до правки?
Да, если их состав изменился. Автоматически старые объекты повторно не регистрируются — их нужно принудительно зарегистрировать к выгрузке в настройках обмена.