При настройке синхронизации данных между конфигурациями 1С:Управление нашей фирмой (УНФ) и 1С:Бухгалтерия предприятия (БП) через «Универсальный формат» (EnterpriseData) специалисты часто сталкиваются с неприятной ситуацией. Несмотря на установленные фильтры «Выгружать только по выбранным организациям» и «Выгружать НСИ, используемую в документах», система все равно регистрирует и пытается отправить в целевую базу справочные данные по организациям, которые не должны участвовать в обмене. В этой статье мы подробно разберем, почему так происходит, и как очистить «лишнюю» регистрацию.
Прежде всего, давайте разберемся, как Библиотека стандартных подсистем (БСП) принимает решение о регистрации объекта. В типовых обменах за это отвечают не только настройки в интерфейсе, но и скрытые механизмы анализа ссылочной целостности. Рассмотрим ситуацию: мы указали в настройках конкретную организацию «Альфа», но в базу БП все равно улетает организация «Бета».
Проанализируем программный код. В процессе отладки можно обнаружить, что регистрация происходит в процедуре УзлыДляРегистрацииПоУсловиюВыгружатьПриНеобходимости. Основная причина кроется в работе запроса, который обращается к вспомогательному регистру сведений. Посмотрим на этот запрос:
ВЫБРАТЬ РАЗЛИЧНЫЕ
ШапкаПланаОбмена.Ссылка КАК Узел
ИЗ
ПланОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат КАК ШапкаПланаОбмена
ЛЕВОЕ СОЕДИНЕНИЕ
РегистрСведений.ДанныеОбъектовДляРегистрацииВОбменах КАК ДанныеОбъектовДляРегистрацииВОбменах
ПО
ШапкаПланаОбмена.Ссылка = ДанныеОбъектовДляРегистрацииВОбменах.УзелИнформационнойБазы
И ДанныеОбъектовДляРегистрацииВОбменах.Ссылка = &Объект
ГДЕ
НЕ ШапкаПланаОбмена.ЭтотУзел
И ШапкаПланаОбмена.РежимВыгрузкиСправочников = ЗНАЧЕНИЕ(Перечисление.РежимыВыгрузкиОбъектовОбмена.ВыгружатьПриНеобходимости)
И НЕ ШапкаПланаОбмена.ПометкаУдаления
И ДанныеОбъектовДляРегистрацииВОбменах.Ссылка = &Объект
Этот запрос наглядно показывает, что система ориентируется на содержимое регистра ДанныеОбъектовДляРегистрацииВОбменах. Если запись об организации попала в этот регистр, она будет зарегистрирована на узле обмена, даже если она не проходит по основным фильтрам документов.
Выясним причину появления «лишних» записей в этом регистре. Рассмотрим основные факторы:
Сотрудники и настройки пользователей. Если у пользователя или сотрудника в качестве основной организации указана та, которую мы хотим исключить, она может подтянуться по ссылке при выгрузке данных о физических лицах.ВыгружатьПриНеобходимости зарегистрирует владельца склада.Разберем самый быстрый и действенный способ, который помогает в большинстве случаев. Если мы уверены, что настройки фильтров выставлены верно, но организации все равно регистрируются, нам необходимо «сбросить» накопленную информацию о связях объектов.
Порядок действий:
ДанныеОбъектовДляРегистрацииВОбменах.Организация.Организация с узла обмена.Как показывает практика, после ручной очистки этого регистра система перестает автоматически подтягивать лишние данные, если на них нет прямых ссылок в выгружаемых в данный момент документах.
Проанализируем ситуацию, когда организации продолжают появляться снова. Возможно, они уже были когда-то сопоставлены между базами. Рассмотрим регистр сведений СоответствиеОбъектовИнформационныхБаз. Если в нем есть запись, связывающая организацию в УНФ с объектом в БП, система будет считать этот объект «участвующим в обмене» и пытаться актуализировать его при любом изменении.
В этом случае необходимо удалить записи о сопоставлении для ненужных организаций в обеих базах.
Если вышеуказанные меры не помогают и записи в регистре ДанныеОбъектовДляРегистрацииВОбменах появляются вновь при записи любого документа, рассмотрим более радикальный метод — редактирование Правил регистрации объектов (ПРО).
Для этого нам понадобится конфигурация «Конвертация данных 2.0» или «3.0» (в зависимости от версии обмена). Мы можем добавить условие в обработчик ПередРегистрациейОбъекта для справочника Организации:
// Пример логики в правилах регистрации
Если Ссылка.Наименование = "Лишняя Организация" Тогда
Отказ = Истина;
КонецЕсли;
Этот метод гарантирует, что объект никогда не попадет в план обмена, какие бы ссылки на него ни существовали в других данных. Однако использование этого метода требует осторожности, так как может привести к ошибкам «Объект не найден» в базе-приемнике, если на эту организацию все же будет ссылаться какой-то выгруженный документ.
Мы выяснили, что основная причина избыточного переноса организаций — это работа механизма БСП по анализу связей, результаты которого кэшируются в регистре ДанныеОбъектовДляРегистрацииВОбменах.
Рассмотрим краткий чек-лист для исправления проблемы:
Организации установлено значение «Отправлять только выбранные».ДанныеОбъектовДляРегистрацииВОбменах от записей с ненужными организациями.Используя эти шаги, мы добьемся чистоты данных в бухгалтерской базе и исключим появление в ней ненужных юридических лиц из управленческого учета.