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