При настройке типовой синхронизации между конфигурациями «1С:Управление торговлей 11» (УТ) и «1С:Бухгалтерия предприятия 3.0» (БП) многие специалисты сталкиваются с ситуацией, когда документ «Поступление безналичных денежных средств» (ПБДС) успешно переносится, но реквизит Подразделение остается пустым. Давайте подробно разберем эту проблему, выясним причины такого поведения системы и рассмотрим эффективные способы ее решения.
В современных версиях конфигураций (например, УТ 11.5 и БП 3.0) применяется синхронизация через универсальный формат EnterpriseData. Это означает, что привычные правила обмена, которые раньше можно было выгрузить в формате XML для «Конвертации данных 2.0» (КД2), больше не используются.
Проанализируем, где теперь находится логика обмена. Все правила конвертации формата EnterpriseData (или КД3) заложены непосредственно в код конфигурации. В конфигурации УТ для этого предусмотрен специальный общий модуль МенеджерОбменаЧерезУниверсальныйФормат (в зависимости от релиза он может содержать суффиксы с номерами версий формата). Модуль логически поделен на области, поэтому найти нужный объект и алгоритм его выгрузки достаточно просто.
Рассмотрим подробнее основные нюансы, из-за которых данные о подразделении могут не попадать в базу-приемник (БП):
МенеджерОбменаЧерезУниверсальныйФормат просто не предусматривает заполнение узла Подразделение, так как для бухгалтерского учета в данном контексте оно может считаться необязательным.ВыгрузитьПодразделениеИзРеквизитаДокумента. Однако этот алгоритм часто привязан к реквизитам шапки документа (таким как Склад или Касса). Если в конкретном документе ПБДС подразделение не соответствует ожидаемому типовым алгоритмом источнику, выгрузка узла пропускается.Разберем по шагам, как можно добиться стабильного переноса подразделения в базу-приемник.
Если мы хотим пойти «официальным» путем и модифицировать правила выгрузки в универсальный формат, нам потребуется «Конвертация данных 3.0» (КД3). Выполним следующие действия:
МенеджерОбменаЧерезУниверсальныйФормат.Подразделение.Посмотрим на пример более гибкого решения, которое часто применяют на практике. Мы можем использовать механизм дополнительных сведений (AdditionalInfo) формата EnterpriseData, чтобы передать значение подразделения, не меняя типовые правила КД3.
Для этого мы создаем два небольших расширения — одно для базы УТ, другое для БП.
На стороне УТ (при выгрузке):
Мы перехватываем процесс выгрузки документа ПБДС (например, с помощью подписки на событие перед выгрузкой в XDTO или модификацией обработчика обмена) и помещаем строковое представление подразделения (или его уникальный идентификатор) в узел AdditionalInfo.
Фрагмент XML в формате EnterpriseData, где присутствуют данные, может выглядеть примерно так (в узле документа):
<AdditionalInfo>
<Name>ПодразделениеИД</Name>
<Value>6f87e821-722c-11df-b336-0011955cba6b</Value>
</AdditionalInfo>
На стороне БП (при загрузке):
Во втором расширении для Бухгалтерии мы используем подписку на событие загрузки документа из XDTO. Алгоритм должен выполнить следующие шаги:
AdditionalInfo входящего объекта.ПодразделенияОрганизаций по переданному идентификатору или наименованию.Подразделение загружаемого документа («Поступление на расчетный счет»).Этот подход гарантирует, что даже если типовые правила изменятся после обновления 1С, наша кастомная передача данных через дополнительные сведения продолжит работать. Обязательно проверьте, что в самой Бухгалтерии предприятия включена функциональность учета по подразделениям, иначе поле в документе будет скрыто и недоступно для записи.