При настройке обмена данными между конфигурациями 1С:Зарплата и управление персоналом 3.1 часто возникает ситуация, когда правила обмена готовы, объекты успешно зарегистрированы на узле плана обмена, но при запуске выгрузки файл оказывается практически пустым — в нем содержатся только заголовки и правила, но нет самих данных справочников Организации или Подразделения. Рассмотрим подробнее, почему это происходит и как пошагово диагностировать и решить эту проблему.
Разберем ситуацию: для обмена между двумя базами ЗУП автор темы решил использовать существующий в системе план обмена ОбменЗарплата3Бухгалтерия3. Это первый важный момент, на который стоит обратить внимание. Проанализируем, почему выбор "неродного" плана обмена может привести к проблемам.
Во-первых, необходимо проверить состав плана обмена в конфигураторе. Если справочник ПодразделенияОрганизаций или Организации не включен в состав используемого плана обмена, то даже если вы программно или вручную зарегистрируете изменения, механизм обмена БСП (Библиотеки стандартных подсистем) может проигнорировать эти объекты при попытке выгрузки по узлу. Выясним причину: обработка выгрузки проверяет метаданные, и если типа объекта нет в составе узла, выборка данных не произойдет.
Во-вторых, обратим внимание на авторегистрацию. В представленном фрагменте XML правил регистрации мы видим, что для большинства элементов установлено Авторегистрация = false. Это означает, что объекты должны регистрироваться либо программно, либо через специальные правила регистрации (ПР).
Одной из самых частых причин "пустого файла" является некорректная настройка Правил выгрузки данных (ПВД) в КД 2. Посмотрим на алгоритм работы обработки Универсальный обмен данными XML при использовании плана обмена:
Организации не создано ПВД или в нем указан некорректный способ выборки (например, вместо "Стандартной выборки" стоит "Произвольный алгоритм" без соответствующего кода), выгрузка не начнется.Важный момент: Убедитесь, что в ПВД для каждого справочника выбрано правильное ПКО (Правило конвертации объекта). Если ПКО не указано или указано ошибочно, данные не попадут в файл.
Рассмотрим ситуацию, когда правила регистрации (ПР) блокируют выгрузку. Даже если объект физически зарегистрирован в таблице регистрации изменений плана обмена, при самой выгрузке 1С повторно прогоняет объект через фильтры, описанные в ПР (в обработчиках ПередОбработкой или через отборы по свойствам).
Для диагностики выполним следующие действия:
ПриВыгрузке стоит Отказ = Истина;).Проанализируем пример кода ПКО для организации из сообщения автора. Мы видим обработчик:
<ПриВыгрузке>Сообщить(Источник.Ссылка);</ПриВыгрузке>
Если при запуске выгрузки вы не видите сообщений с названиями организаций в окне сообщений, значит, код ПКО вообще не исполняется. Это подтверждает, что выборка данных (ПВД) не срабатывает.
В конфигурации ЗУП 3.1 есть два похожих справочника: Подразделения (структура предприятия) и ПодразделенияОрганизаций (регламентированные подразделения). Посмотрим на правила автора: используется СправочникСсылка.ПодразделенияОрганизаций. В современных версиях ЗУП основным часто является справочник Подразделения. Если вы регистрируете объекты одного типа, а в правилах ПВД/ПКО указан другой тип, обмена не будет. Проверьте точное имя метаданных в вашей базе.
Чтобы успешно выгрузить справочники, выполним совместную работу по следующему алгоритму:
Организации) обязательно установим флаг "Поиск" у ключевых полей (ИНН, КПП или Код), если вы не планируете синхронизировать только по внутреннему идентификатору (UUID).Попробуйте выполнить выгрузку не через стандартный механизм синхронизации, а через обработку Универсальный обмен данными XML. На вкладке "Выгрузка" выберите ваш узел плана обмена и обязательно отметьте галочками нужные ПВД в списке ниже.
Если вы используете фильтрацию по организациям в правилах регистрации, как в примере:
<СвойствоПланаОбмена>ИспользоватьОтборПоОрганизациям</СвойствоПланаОбмена>
<ВидСравнения>Равно</ВидСравнения>
<СвойствоОбъекта>false</СвойствоОбъекта>
Убедитесь, что реквизит ИспользоватьОтборПоОрганизациям на самом узле плана обмена действительно установлен в значение Ложь (false). Если там Истина, а табличная часть с разрешенными организациями пуста, то правила регистрации будут "отфильтровывать" все организации, и они не попадут в выгрузку, даже если они зарегистрированы на узле вручную.
Подведем итог: Чаще всего пустой файл при наличии регистрации связан либо с отсутствием ПВД в правилах, либо с жесткими фильтрами в Правилах Регистрации (ПР), которые срабатывают в момент выгрузки. Начните с упрощения правил (удаления ПР) и проверки выгрузки одного объекта вручную.