Почему при выгрузке справочников через Конвертацию данных 2 в файле нет данных, хотя регистрация в плане обмена есть?

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

При настройке обмена данными между конфигурациями 1С:Зарплата и управление персоналом 3.1 часто возникает ситуация, когда правила обмена готовы, объекты успешно зарегистрированы на узле плана обмена, но при запуске выгрузки файл оказывается практически пустым — в нем содержатся только заголовки и правила, но нет самих данных справочников Организации или Подразделения. Рассмотрим подробнее, почему это происходит и как пошагово диагностировать и решить эту проблему.

Анализ состава и настроек плана обмена

Разберем ситуацию: для обмена между двумя базами ЗУП автор темы решил использовать существующий в системе план обмена ОбменЗарплата3Бухгалтерия3. Это первый важный момент, на который стоит обратить внимание. Проанализируем, почему выбор "неродного" плана обмена может привести к проблемам.

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

Во-вторых, обратим внимание на авторегистрацию. В представленном фрагменте XML правил регистрации мы видим, что для большинства элементов установлено Авторегистрация = false. Это означает, что объекты должны регистрироваться либо программно, либо через специальные правила регистрации (ПР).

Проверка правил выгрузки данных (ПВД)

Одной из самых частых причин "пустого файла" является некорректная настройка Правил выгрузки данных (ПВД) в КД 2. Посмотрим на алгоритм работы обработки Универсальный обмен данными XML при использовании плана обмена:

  1. Программа считывает правила обмена и ПВД.
  2. Если в обработке выбран режим выгрузки "По плану обмена", она ищет соответствие между зарегистрированными объектами на узле и правилами ПВД.
  3. Если для справочника Организации не создано ПВД или в нем указан некорректный способ выборки (например, вместо "Стандартной выборки" стоит "Произвольный алгоритм" без соответствующего кода), выгрузка не начнется.

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

Диагностика через удаление Правил регистрации (ПР)

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

Для диагностики выполним следующие действия:

  1. Загрузим правила обмена в базу без использования файла Правил регистрации.
  2. В обработке выгрузки выберем режим выгрузки "Все объекты" (не по плану обмена) и вручную добавим в отбор одну конкретную организацию.
  3. Если при такой настройке данные выгружаются — значит, проблема именно в механизме регистрации или в отборах ПР.
  4. Если же и в этом случае файл пуст — проблема в ПКО (например, в обработчике ПриВыгрузке стоит Отказ = Истина;).

Проанализируем пример кода ПКО для организации из сообщения автора. Мы видим обработчик:

<ПриВыгрузке>Сообщить(Источник.Ссылка);</ПриВыгрузке>

Если при запуске выгрузки вы не видите сообщений с названиями организаций в окне сообщений, значит, код ПКО вообще не исполняется. Это подтверждает, что выборка данных (ПВД) не срабатывает.

Особенности справочников в ЗУП 3.1

В конфигурации ЗУП 3.1 есть два похожих справочника: Подразделения (структура предприятия) и ПодразделенияОрганизаций (регламентированные подразделения). Посмотрим на правила автора: используется СправочникСсылка.ПодразделенияОрганизаций. В современных версиях ЗУП основным часто является справочник Подразделения. Если вы регистрируете объекты одного типа, а в правилах ПВД/ПКО указан другой тип, обмена не будет. Проверьте точное имя метаданных в вашей базе.

Порядок действий для исправления проблемы

Чтобы успешно выгрузить справочники, выполним совместную работу по следующему алгоритму:

  1. Сброс номеров сообщений: В узле плана обмена обнулим "Номер отправленного сообщения" и "Номер принятого сообщения". Иногда обработка считает данные уже отправленными, если номер сообщения не увеличился.
  2. Проверка ПВД: В конфигурации "Конвертация данных 2.1" проверим, чтобы для каждого справочника было создано ПВД со способом выборки "Стандартная".
  3. Настройка поиска: В ПКО справочников (например, Организации) обязательно установим флаг "Поиск" у ключевых полей (ИНН, КПП или Код), если вы не планируете синхронизировать только по внутреннему идентификатору (UUID).
  4. Тестовая выгрузка:

    Попробуйте выполнить выгрузку не через стандартный механизм синхронизации, а через обработку Универсальный обмен данными XML. На вкладке "Выгрузка" выберите ваш узел плана обмена и обязательно отметьте галочками нужные ПВД в списке ниже.

Если вы используете фильтрацию по организациям в правилах регистрации, как в примере:


<СвойствоПланаОбмена>ИспользоватьОтборПоОрганизациям</СвойствоПланаОбмена>
<ВидСравнения>Равно</ВидСравнения>
<СвойствоОбъекта>false</СвойствоОбъекта>

Убедитесь, что реквизит ИспользоватьОтборПоОрганизациям на самом узле плана обмена действительно установлен в значение Ложь (false). Если там Истина, а табличная часть с разрешенными организациями пуста, то правила регистрации будут "отфильтровывать" все организации, и они не попадут в выгрузку, даже если они зарегистрированы на узле вручную.

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

← На главную