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