При ведении многофирменного учета в 1С:УТ 11.4 нередко возникают ошибки синхронизации с 1С:Бухгалтерией, связанные с тем, что в состав передаваемых данных попадают объекты (например, договоры), которые не должны принадлежать конкретной организации. В этой статье мы разберем, почему возникает такая ситуация, как найти источник проблемы и какими способами можно ограничить выгрузку «лишних» данных.
Первым делом важно осознать, что в платформе 1С:Предприятие объекты регистрируются в плане обмена не только при прямом изменении справочника. Существует механизм регистрации по ссылке. Когда вы записываете документ (например, Реализация товаров и услуг), система автоматически проверяет все его ссылочные реквизиты. Если в документе выбран договор, платформа регистрирует этот договор к выгрузке, чтобы на стороне приемника документ не оказался «битым».
Если пользователь в документе одной организации ошибочно выбрал договор другой организации, система считает эту связь легитимной и ставит объект в очередь на обмен. Именно так «чужие» договоры попадают в выгрузку.
Чтобы решить проблему, не нужно пытаться лечить симптомы — необходимо найти документы, которые «тянут» за собой некорректные договоры. Для этого проанализируем текущую регистрацию:
Регистрация изменений для обмена данными.Договоры и посмотрите, какие именно документы зарегистрировали эти договоры к обмену.Если ошибка возникает систематически, возможно, в базе накоплены исторические ошибки. Выполните Тестирование и исправление (ТИИ) информационной базы. Обязательно установите флаг Проверка логической целостности. Это поможет выявить документы с некорректными ссылками на объекты, которые не должны быть связаны.
Если вы не можете изменить старые документы или хотите гарантированно защитить обмен от человеческого фактора, можно использовать доработку правил обмена в конфигурации Конвертация данных 2.0 или 3.0.
В правиле конвертации объекта (ПКО) Справочник_Договоры перейдите в событие Перед выгрузкой. Здесь мы можем прописать условие, которое запретит выгрузку договора, если он не принадлежит организации обмена:
// В обработчике Перед выгрузкой ПКО Договоры
Если Источник.Организация <> Параметры.ОрганизацияОбмена Тогда
Отказ = Истина;
КонецЕсли;
Данный код принудительно отменит выгрузку объекта, если его владелец (организация) не совпадает с установленным параметром организации в настройках обмена. Это радикальный, но очень эффективный метод борьбы с попаданием «лишних» данных.
Чтобы оперативно находить подобные ошибки до того, как они попадут в очередь обмена, рекомендуем создать универсальный отчет или использовать Анализ субконто. Настройте отчет так, чтобы в строках выводились организации и договоры. Вы сразу увидите договоры, которые числятся не на той организации, что ожидается.
Важное примечание: Помните, что принудительное снятие регистрации в плане обмена — это временная мера. Если причина (некорректный документ) останется, договор будет зарегистрирован повторно при следующем проведении этого документа. Поэтому основной фокус всегда должен быть направлен на поиск и исправление первичных документов.
Соблюдение этих правил и регулярная проверка документов помогут вам избежать ошибок конвертации XDTO и обеспечить чистоту данных при обмене между конфигурациями 1С.