Почему не выгружается «Возврат займа контрагентом» при синхронизации БП 3.0 и УТ 11 и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При настройке обмена данными между конфигурациями 1С:Бухгалтерия предприятия 3.0 и 1С:Управление торговлей 11 через Универсальный формат (Enterprise Data) специалисты часто сталкиваются с ситуацией, когда определенные типы документов упорно игнорируются системой. Одной из наиболее специфических проблем является отсутствие выгрузки документа Поступление безналичных денежных средств с видом операции Возврат займа контрагентом.

В этой статье мы подробно разберем, почему объекты могут регистрироваться к обмену, но не попадать в файл выгрузки, проанализируем внутреннюю логику менеджера обмена и найдем способ решения этой задачи.

Анализ проблемы: регистрация есть, а данных нет

Рассмотрим ситуацию: бухгалтер или администратор видит, что изменения в документе успешно фиксируются в Плане обмена. При попытке синхронизации система сообщает об успешном завершении процесса, однако в базе-приемнике документ не появляется. Если мы откроем файл выгрузки (XML), то обнаружим, что узла с данным документом там просто не существует.

Выясним причину такого поведения. В механизме Enterprise Data процесс выгрузки разделен на два этапа:

  1. Регистрация изменений: объект помечается в плане обмена как измененный. Это происходит автоматически при записи документа или вручную через монитор синхронизации.
  2. Сериализация (выгрузка): при запуске обмена менеджер обмена анализирует каждый зарегистрированный объект. На этом этапе срабатывают Правила обработки данных (ПОД). Если объект не проходит фильтрацию в коде модуля, он просто исключается из потока выгрузки, хотя флаг регистрации с него снимается.

В случае с операцией Возврат займа контрагентом проблема чаще всего кроется в жесткой фильтрации внутри программного кода конфигурации БП 3.0.

Технический разбор: Менеджер обмена через универсальный формат

Проанализируем программный код, отвечающий за выгрузку денежных документов. Основная логика сосредоточена в общем модуле МенеджерОбменаЧерезУниверсальныйФормат. Именно здесь описываются правила, по которым данные из таблиц информационной базы преобразуются в структуру XDTO.

Ключевым моментом является процедура ПОД_Документ_ПРС_Отправка_ПриОбработке (ПРС — Поступление Расчетный Счет). Посмотрим на типичный фрагмент кода, который вызывает затруднения в релизах линейки 3.0.60 и смежных:


Процедура ПОД_Документ_ПРС_Отправка_ПриОбработке(ДанныеИБ, ИспользованиеПКО, КомпонентыОбмена)
    
    // Проверка вида операции документа
    Если ДанныеИБ.ВидОперации = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ОплатаПокупателя 
        Или ДанныеИБ.ВидОперации = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ВозвратОтПоставщика 
        Или ДанныеИБ.ВидОперации = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.РасчетыПоКредитамИЗаймам 
        Или ДанныеИБ.ВидОперации = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ПрочиеРасчетыСКонтрагентами 
        ИЛИ ДанныеИБ.ВидОперации = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ПолучениеКредита 
        ИЛИ ДанныеИБ.ВидОперации = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ПолучениеЗайма 
        ИЛИ ДанныеИБ.ВидОперации = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ОплатаОтФакторинговойКомпании Тогда 
        
        // Если операция входит в список, разрешаем использование ПКО
        ИспользованиеПКО.Документ_ПРСРасчетыСКонтрагентами_Отправка = Истина;
        
    КонецЕсли;

КонецПроцедуры

Как мы видим из кода, вид операции ВозвратЗаймаКонтрагентом в данном списке отсутствует. Разработчики типовой конфигурации в некоторых версиях полагали, что операции по возврату выданных займов (счет 58.03) относятся исключительно к регламентированному учету и не должны транслироваться в торговый контур УТ 11. Однако на практике управленческий учет в УТ 11 часто требует полной картины движения денежных средств.

Решение проблемы через расширение конфигурации

Чтобы заставить систему выгружать эти документы, нам необходимо добавить недостающий вид операции в условие фильтрации. Рассмотрим наиболее правильный метод — использование расширения конфигурации, чтобы не снимать основную базу с поддержки.

Разберем по шагам, как это реализовать:

  1. Создадим новое расширение в базе 1С:Бухгалтерия.
  2. Добавим в расширение общий модуль МенеджерОбменаЧерезУниверсальныйФормат.
  3. Создадим в расширении процедуру-перехватчик с аннотацией &После для процедуры ПОД_Документ_ПРС_Отправка_ПриОбработке.
  4. Пропишем логику включения ПКО для нашего вида операции.

Пример кода в расширении:


&После("ПОД_Документ_ПРС_Отправка_ПриОбработке")
Процедура Расш_ПОД_Документ_ПРС_Отправка_ПриОбработке(ДанныеИБ, ИспользованиеПКО, КомпонентыОбмена)
    
    Если ДанныеИБ.ВидОперации = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ВозвратЗаймаКонтрагентом Тогда
        // Принудительно включаем правило конвертации объектов
        ИспользованиеПКО.Документ_ПРСРасчетыСКонтрагентами_Отправка = Истина;
    КонецЕсли;
    
КонецПроцедуры

Важный нюанс: Одного разрешения на выгрузку может быть недостаточно, если в самой схеме обмена (XDTO) нет сопоставления для этого вида операции. В этом случае документ выгрузится как ПрочиеРасчетыСКонтрагентами, что в целом приемлемо для УТ 11, где такие операции обычно закрываются по договорам с типом "Прочее".

Альтернативные способы решения

Если правка кода по каким-то причинам невозможна (например, закрытая облачная база или отсутствие программиста), можно рассмотреть обходные пути:

1. Изменение вида операции в документе

Попробуем изменить вид операции в Поступлении безналичных ДС на Прочее поступление. При этом счет расчетов (например, 58.03) и контрагента оставляем прежними. Операция ПрочиеРасчетыСКонтрагентами по умолчанию включена во все правила обмена. После выполнения синхронизации документ попадет в УТ 11, где его можно будет корректно разнести. Однако этот метод требует ручного вмешательства в учет и может быть неудобен при больших объемах данных.

2. Обновление версии формата Enterprise Data

Выясним, какая версия формата используется в текущей настройке обмена. В разделе Администрирование — Синхронизация данных проверим параметры подключения. Если используется версия 1.5 или ниже, рекомендуется обновить конфигурации (и БП, и УТ) до актуальных и пересоздать настройку обмена, выбрав версию формата 1.8 или 1.10. В новых версиях формата разработчики 1С расширили состав выгружаемых операций, и проблема может исчезнуть сама собой.

3. Проверка вида договора

Проанализируем данные самого документа. Часто менеджер обмена блокирует выгрузку, если Вид договора не соответствует виду операции. Для возврата займа в 1С:Бухгалтерии договор должен иметь вид Прочее. Если по ошибке выбран договор с видом С покупателем, внутренние механизмы контроля EnterpriseData могут посчитать такой объект некорректным и не включить его в файл выгрузки.

Резюме

Ситуация, когда документы «не выгружаются никак», почти всегда связана с программными фильтрами в модуле МенеджерОбменаЧерезУниверсальныйФормат. Для решения проблемы мы рекомендуем:

← На главную