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