В процессе интеграции «1С:Управление торговлей 10.3» и «1С:Бухгалтерия предприятия 3.0» часто возникает задача изменить стандартную логику переноса документов. Типовые правила обычно переносят «Возврат товаров от покупателя» как одноименный документ. Однако для розничного учета часто требуется, чтобы эти операции попадали в специализированную табличную часть Возвраты документа Отчет о розничных продажах. Рассмотрим подробно, как реализовать такую настройку в конфигурации «Конвертация данных 2.1» и избежать типичных ошибок при загрузке.
Первоочередная задача — убедиться, что в информационной базе КД 2.1 загружены актуальные описания метаданных для обеих систем. Если в базе-приемнике (БП 3.0) вы не видите табличную часть Возвраты в объекте ОтчетОРозничныхПродажах, это означает, что описание структуры устарело.
Проанализируем алгоритм обновления метаданных:
ВыгрузкаОписанияСтруктурыКонфигурации.epf (она входит в комплект поставки КД 2.1).Важный нюанс: Иногда даже после обновления ТЧ не появляется в списке выбора ПКС (правил конвертации свойств). В этом случае попробуйте полностью перезагрузить правила обмена из файла в настройку конвертации, как это помогло автору темы. Это принудительно обновляет связи между объектами в интерфейсе настройки.
Теперь разберем создание самого правила конвертации объектов (ПКО). Нам необходимо, чтобы документ одного типа в источнике превращался в документ другого типа в приемнике. Рассмотрим, как это настроить по шагам:
ВозвратТоваровОтПокупателя, а в качестве Приемника — ОтчетОРозничныхПродажах.Товары (из документа возврата) должен быть сопоставлен с Приемником Возвраты (в отчете о розничных продажах).Выясним причину, по которой некоторые разработчики предлагают использовать отрицательные значения в ТЧ Товары. В старых редакциях БП это практиковалось, но в БП 3.0 методологически верно использовать именно ТЧ Возвраты. Это критично для корректного формирования проводок по счету 90.02 (Себестоимость) и сторнирования выручки по счету 90.01.
Проанализируем ситуацию с точки зрения бухгалтерского учета. Прежде чем внедрять техническое решение, важно понимать последствия:
ОтчетОРозничныхПродажах (ТЧ Возвраты) является абсолютно корректным.Возврат товаров от покупателя.Если поставлена жесткая задача выгружать всё в отчет, убедитесь, что бухгалтерия осознает риски формирования налоговой отчетности и Книги учета доходов и расходов (для УСН), так как алгоритмы закрытия месяца для этих документов различаются.
Часто при загрузке данных возникает ошибка выполнения кода в обработчике ПослеЗагрузкиОбъекта. Посмотрим на типичный пример ошибки, с которой столкнулся автор:
ДоговорОбъект = Объект.ДоговорКонтрагента.ПолучитьОбъект();
Эта строка вызывает исключение, если реквизит ДоговорКонтрагента не заполнен или ссылка является «битой» (объект не найден). В 1С нельзя вызывать метод ПолучитьОбъект() от пустой ссылки. Выясним, как правильно модифицировать этот код, чтобы избежать падения системы:
Если ЗначениеЗаполнено(Объект.ДоговорКонтрагента) Тогда
ДоговорОбъект = Объект.ДоговорКонтрагента.ПолучитьОбъект();
Если ДоговорОбъект <> Неопределено Тогда
Если Не ЗначениеЗаполнено(ДоговорОбъект.ВидДоговора) Тогда
Если СокрЛП(ДоговорОбъект.Наименование) = "С поставщиком" Тогда
ДоговорОбъект.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком;
Иначе
ДоговорОбъект.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем;
КонецЕсли;
КонецЕсли;
Если Не ЗначениеЗаполнено(ДоговорОбъект.ВалютаВзаиморасчетов) Тогда
ДоговорОбъект.ВалютаВзаиморасчетов = Объект.ВалютаДокумента;
КонецЕсли;
ДоговорОбъект.Записать();
КонецЕсли;
КонецЕсли;
Этот код проверяет наличие ссылки перед попыткой получить объект. Также важно добавить заполнение обязательных реквизитов для УСН, если ваша организация работает по этой системе:
Для Каждого СтрокаТЧ Из Объект.Товары Цикл
СтрокаТЧ.ОтражениеВУСН = Перечисления.ОтражениеВУСН.Принимаются;
КонецЦикла;
Если в интерфейсе КД 2.1 вы не видите проблемный код в обработчиках документа, выполним следующие действия для поиска «собаки», которая «порылась» глубоко в правилах:
ПолучитьОбъект или по имени реквизита ДоговорКонтрагента.Важно: Часто такой код зашит в типовых правилах внутри глобальных обработчиков или в ПКО, которое вызывается по ссылке (например, если ВозвратТоваровОтПокупателя все еще присутствует в правилах как самостоятельный объект, его обработчики могут срабатывать косвенно).
Для успешной реализации задачи мы должны выполнить три ключевых условия: актуализировать метаданные в КД 2.1, настроить сопоставление ТЧ Товары источника с ТЧ Возвраты приемника и обеспечить отказоустойчивость кода в обработчиках, добавив проверки на ЗначениеЗаполнено(). Такой подход гарантирует стабильный обмен данными между УТ 10.3 и БП 3.0 без прерывания процесса загрузки.