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