Почему объекты не регистрируются в плане обмена после изменения правил в Конвертации данных 2.1?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Разберем фундаментальное различие между ПВД и ПРО

Первое и самое важное, что нам необходимо усвоить: в системе КД 2.1 существуют два разных типа правил, которые часто путают. Рассмотрим их подробнее:

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

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

Проверим состав плана обмена в конфигураторе

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

  1. Откроем Конфигуратор и найдем нужный нам ПланОбмена.
  2. Перейдем на вкладку «Состав».
  3. Найдем в списке справочник Организации. Если напротив него не стоит галочка, то никакая регистрация (ни автоматическая, ни программная) для этого узла работать не будет.
  4. Проверим свойство «Авторегистрация». Если установлено значение Запретить, то регистрация будет возможна только через специализированный код в правилах регистрации (ПРО).

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

Обновление правил в информационной базе

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

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

Почему старые объекты (Валюты) остаются в списке регистрации?

Автор темы столкнулся с тем, что в регистрации по-прежнему висят Валюты. Важно понимать: изменение правил обмена не очищает уже существующие записи в планах обмена. Регистрация — это физическая запись в таблице базы данных. Если объект был зарегистрирован по старым правилам, он будет там находиться до тех пор, пока:

  1. Синхронизация не будет успешно завершена (объект выгрузится и регистрация снимется).
  2. Вы не удалите регистрацию вручную.

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

Анализ программной логики в ПРО

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


// Пример условия в ПРО (Правила регистрации объектов)
Если Объект.ЭтоГруппа Тогда
    Отказ = Истина; // Группы не регистрируем
КонецЕсли;

Если Объект.ПометкаУдаления Тогда
    Отказ = Истина; // Помеченные на удаление тоже игнорируем
КонецЕсли;

Если в ваших правилах прописана подобная логика, и объект Организация под нее попадает (например, вы пытаетесь зарегистрировать группу справочника), то запись в план обмена не появится, несмотря на все остальные настройки. Всегда проверяйте наличие условий в правилах регистрации в КД 2.1 на вкладке «Обработчики событий».

Резюме: пошаговый алгоритм решения

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

  1. Проверьте состав плана обмена в Конфигураторе — объект должен быть там физически разрешен для обмена.
  2. Разделите ПВД и ПРО. Убедитесь, что вы настраиваете именно Правила Регистрации Объектов, а не только Правила Выгрузки.
  3. Загрузите правила в базу через интерфейс «1С:Предприятие». Не забудьте обновить кэш, если это требуется.
  4. Очистите старую регистрацию. Используйте обработку регистрации изменений, чтобы удалить старые типы объектов (как Валюты в примере автора).
  5. Проверьте программные фильтры внутри ПРО на наличие Отказ = Истина.

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

← На главную