Ситуация, когда после выполнения обмена данными между конфигурациями «Управление торговлей» (УТ) и «Бухгалтерия предприятия» (БП) документы переносятся с пустыми реквизитами, является довольно распространенной. Особенно это касается классических связок на обычных формах, таких как УТ 2.2 (популярная в украинских локализациях и старых редакциях) и БП 2.0. Давайте вместе разберем основные причины этой проблемы и пошагово проанализируем способы ее решения.
Большинство типовых обменов в экосистеме 1С 8.x построено на базе механизма «Конвертации данных». Даже если обмен кажется «типовым» и встроенным в программу, внутри него работают XML-правила. Рассмотрим, как проверить соответствие реквизитов в правилах:
Часто бывает так, что реквизит в источнике называется СкладОтправитель, а в приемнике — Склад. Если автоматическое сопоставление не сработало, поле в БП останется незаполненным. В таком случае нам необходимо вручную указать соответствие реквизитов в ПКС.
Одной из самых частых причин является обновление одной из баз без обновления правил обмена. Разберем ситуацию: вы обновили «Бухгалтерию предприятия 2.0», в которой разработчики изменили структуру метаданных (например, удалили реквизит или изменили его тип). Если при этом в «Управлении торговлей» остались старые правила обмена, система будет пытаться записать данные в несуществующее поле или поле с другим типом, что приведет к пустому результату.
Рекомендация: Всегда проверяйте, чтобы версия правил обмена соответствовала актуальным релизам обеих конфигураций. Обычно свежие правила поставляются вместе с обновлением конфигурации в составе дистрибутива (папка ExtFiles\ExchangeRules).
Многие начинающие специалисты ищут проблему в обмене, когда видят пустые счета учета в документах БП (например, СчетУчета, СчетДоходов, СчетРасчетов). Однако в типовых обменах эти данные часто не передаются из УТ напрямую. Рассмотрим подробнее алгоритм работы программы:
В «Бухгалтерии предприятия 2.0» реализован механизм автоматической подстановки счетов при загрузке или при проведении документа. Если в БП не заполнены соответствующие регистры сведений, реквизиты останутся пустыми, даже если обмен прошел успешно. Проанализируем состояние следующих регистров в базе-приемнике:
Для решения проблемы необходимо настроить эти регистры в «Бухгалтерии», и при следующей перезагрузке (или перепроведении) документов реквизиты заполнятся.
Выясним причину появления пустых значений в ссылочных реквизитах (Контрагенты, Номенклатура). Если в правилах обмена настроен поиск объектов исключительно по Уникальному Идентификатору (GUID), а объекты в базах создавались параллельно вручную, система их не сопоставит.
В результате при загрузке документа 1С может создать новый объект (если разрешено создание) или оставить поле пустым, если объект не найден. Проанализируем настройки «Полей поиска» в правилах конвертации объектов (ПКО). Для стабильного обмена рекомендуется использовать комбинацию поиска по ИНН + КПП для контрагентов и по Артикулу или Наименованию для номенклатуры.
Иногда реквизиты очищаются намеренно кодом внутри самих правил. Рассмотрим пример обработчика ПриЗагрузке:
// Пример логики в правилах обмена
Если ПараметрыОбъекта.ВидОперации = "Возврат" Тогда
Объект.Склад = Справочники.Склады.ПустаяСсылка();
КонецЕсли;
Если в правилах прописана жесткая логика очистки или условия, при которых данные не переносятся, нам придется модифицировать XML-файл правил. Также обратим внимание на флаг «Не замещать значение существующего объекта». Если этот флаг установлен в ПКС, то при повторном обмене, даже если вы заполнили поле в УТ, в БП оно останется пустым, если ранее там уже было пустое значение.
Не стоит исключать и технические факторы. После внесения изменений в правила обмена или структуру метаданных, программа может использовать старый кэш. Выясним, как это исправить:
Таким образом, решение проблемы пустых реквизитов требует комплексного подхода: от проверки настройки счетов учета в «Бухгалтерии» до детального анализа XML-правил в «Конвертации данных».