Синхронизация данных между конфигурациями «Управление торговлей» (редакция 10.3) и «Бухгалтерия предприятия» (редакция 3.0) — это классический сценарий автоматизации, который активно используется тысячами организаций. Однако в конце 2019 — начале 2020 года многие технические специалисты и бухгалтеры столкнулись с неприятной ситуацией: после очередного обновления конфигурации БП 3.0 (начиная с релизов 3.0.73.х и 3.0.74.х) документы поступления и реализации перестали проводиться после загрузки. В логах синхронизации регистрировалась ошибка: "Поле 'Счёт учёта расчётов с контрагентом' не заполнено".
В этой статье мы подробно разберем, почему возникает данная проблема, как устроен механизм заполнения счетов учета при программной записи документов, а также рассмотрим три практических способа решения этой проблемы (включая ручную корректировку правил обмена XML).
Многие пользователи обращают внимание на странную деталь: если открыть тот же самый документ ПоступлениеТоваровУслуг непосредственно в базе «1С:Бухгалтерия» и перевыбрать в нем контрагента или договор, то счета расчетов (например, 60.01 и 60.02) мгновенно заполняются автоматически. Почему же этого не происходит при обмене?
Дело в разнице между интерактивным и программным созданием объектов в платформе «1С:Предприятие»:
ПриИзменении для реквизитов «Контрагент» или «Договор»). Именно эти обработчики вызывают встроенные механизмы конфигурации, которые обращаются к регистрам сведений СчетаУчетаРасчетовСКонтрагентами и заполняют нужные поля на форме.Чтобы счета учета заполнялись при программной загрузке, разработчики правил обмена должны явно передать документу команду на заполнение. Для этого используется механизм передачи специальных флагов через коллекцию ДополнительныеСвойства объекта.
В релизах БП 3.0.73.х и 3.0.74.х разработчики фирмы «1С» допустили критическую ошибку (зарегистрирована под кодом 00-00259266). В XML-правилах обмена внутри обработчика загрузки были закомментированы условия проверки типов документов. Программа перестала распознавать документ ПоступлениеТоваровУслуг (и ряд других) как объекты, требующие автоматического заполнения счетов при записи. В результате документы переносились с пустыми счетами учета и оставались в статусе «Не проведен».
---
Поскольку проблема носит массовый характер и связана с зарегистрированной ошибкой 1С, наиболее правильным и безопасным методом решения является обновление системы.
Проанализируем шаги для исправления ситуации штатным путем:
---
Если по каким-то причинам оперативно обновить конфигурацию «1С:Бухгалтерия предприятия» невозможно (например, база находится на доработке или требует сложного нетипового обновления), вы можете самостоятельно исправить правила обмена. Этот способ требует базовых навыков работы с XML-файлами и XML-редакторами (подойдет даже обычный Блокнот или Notepad++). В качестве альтернативы ручной правке можно использовать готовые обновленные правила обмена из УТ 10.3 в БП 3.0.
Рассмотрим алгоритм внесения изменений по шагам:
ПоступлениеТоваровУслуг или ПоступлениеНаРасчетныйСчет.// строки, подобные этой:
//ТипОбъекта = Тип("ДокументСсылка.ПоступлениеТоваровУслуг") ИЛИ
Из-за этого комментария всё условие проверки типа документа переставало работать корректно.//) либо добавьте явное заполнение свойств объекта. Нам необходимо добиться того, чтобы для загружаемого документа выполнялся следующий код инициализации:
ДокументОбъект.ДополнительныеСвойства.Вставить("ЗаполнитьСчетаУчетаПередЗаписью", Истина);
СчетаУчетаВДокументах.ЗаполнитьПередЗаписью(ДокументОбъект, РежимЗаписи);
---
Что делать, если документы уже перенесены в БП 3.0, их очень много, они не проведены, а исправлять правила обмена прямо сейчас нет возможности? В этом случае мы можем воспользоваться встроенным инструментом платформы для массового программного перезаполнения реквизитов.
Разберем, как восстановить проведение документов с помощью стандартной обработки:
Документ: Поступление (акты, накладные, УПД).Используя предложенные методики, вы сможете быстро локализовать проблему незаполнения счетов учета при синхронизации УТ 10.3 и БП 3.0, исправить правила конвертации данных и восстановить корректный документооборот между базами. Для проверки корректности перенесенных данных можно использовать инструмент для сверки документов между УТ 10.3 и БП 3.0.