Переход с устаревшей конфигурации «1С:Управление торговлей 10.3» на современную платформу «1С:Управление торговлей 11» — это технически сложный процесс, который редко проходит без ошибок. Одной из наиболее распространенных проблем при использовании типового помощника перехода является сбой при загрузке соглашений с клиентами, сопровождающийся ошибкой отсутствия реквизита НалогообложениеНДС. В этой статье мы подробно разберем, почему возникает эта ошибка, как ее оперативно исправить, а также детально изучим методологию и логику переноса заказов, начальных остатков и видов номенклатуры.
Для начала проанализируем техническую суть возникшей проблемы. Ошибка заявляет о себе при загрузке XML-файла в базу-приемник (УТ 11) на этапе выполнения обработчика события ПослеЗагрузкиОбъекта для правила конвертации объектов (ПКО) ДоговорСПокупателемСоглашениеСКлиентом. Текст ошибки указывает на то, что программа пытается обратиться к реквизиту НалогообложениеНДС у объекта типа «Соглашение об условиях продаж» (справочник СоглашенияСКлиентами), но не находит его.
Выясним причину этого несоответствия. Фирма «1С» в релизе УТ 11.4.5 провела масштабный рефакторинг механизмов налогообложения. В рамках этих изменений реквизит НалогообложениеНДС был удален из справочников СоглашенияСКлиентами и СоглашенияСПоставщиками (логика определения НДС сместилась в сторону настроек договоров и налогообложения самих контрагентов). Однако типовые правила обмена, поставляемые со старыми релизами УТ 10.3, по-прежнему содержат жесткий код, обращающийся к этому удаленному реквизиту. В результате при попытке загрузить данные в современную базу УТ 11.4 (или УТ 11.5) мы получаем критический сбой, прерывающий транзакцию загрузки.
Самый надежный и правильный способ решить эту проблему без отката конфигураций на старые релизы — это отредактировать правила обмена в специализированной конфигурации «1С:Конвертация данных 2.1». Разберем этот процесс по шагам.
Шаг 1. Нам необходимо найти и извлечь актуальный файл правил обмена. Многие разработчики пытаются искать их в базах источника или приемника, однако проще всего найти их в шаблоне установленной конфигурации УТ 11 на вашем компьютере. Перейдем по пути установки шаблонов обновлений:
...\1c\trade\[Номер_Вашего_Релиза_УТ11]\AddFiles\Переходы с других конфигураций\УТ103\
В этой папке находятся внешняя обработка выгрузки и правила обмена в формате XML. Также эти правила можно выгрузить из макета обработки ПомощникПереходаСДругихКонфигураций непосредственно в конфигураторе УТ 11.
Шаг 2. Загрузим правила обмена в информационную базу «Конвертация данных 2.1». Найдем ПКО с именем ДоговорСПокупателемСоглашениеСКлиентом.
Шаг 3. Перейдем на вкладку «Обработчики событий» и откроем код события ПослеЗагрузки. Мы увидим строку, которая пытается напрямую присвоить значение удаленному реквизиту:
Объект.НалогообложениеНДС = ...; // Попытка записи в несуществующий реквизит
Шаг 4. Чтобы сделать правила универсальными и защитить их от подобных ошибок, мы можем закомментировать данную строку либо обернуть ее в безопасную проверку на существование реквизита в метаданных конфигурации-приемника. Напишем следующий код:
Если ОбщегоНазначения.ЕстьРеквизитОбъекта("НалогообложениеНДС", Метаданные.Справочники.СоглашенияСКлиентами) Тогда
Объект.НалогообложениеНДС = ПараметрыОбъекта["НалогообложениеНДС"];
КонецЕсли;
Данный код проверяет наличие реквизита НалогообложениеНДС в справочнике СоглашенияСКлиентами текущей базы. Если база обновлена и реквизита уже нет, строка просто проигнорируется, и загрузка завершится успешно.
Шаг 5. Сохраним измененные правила в XML-файл и укажем его в обработке выгрузки на стороне УТ 10.3 перед запуском процесса выгрузки данных.
Если у вас нет под рукой «Конвертации данных 2.1» или вы не хотите заниматься редактированием программного кода правил, можно использовать обходной путь с промежуточным релизом приемника. Разберем эту последовательность действий:
НалогообложениеНДС еще физически присутствует в структуре метаданных).Этот способ требует больше времени на рутинные операции обновления, но гарантирует полную работоспособность без написания кода.
В процессе перехода у многих пользователей возникает методологический вопрос: почему при переносе остатков на определенную дату программа создает документы Ввод начальных остатков, но при этом также переносит документы Заказ клиента и Заказ поставщику? Не приведет ли это к задвоению данных?
Проанализируем архитектуру учета в конфигурации УТ 11. Здесь заложено жесткое разделение на финансовый учет и оперативное планирование. Рассмотрим, за что отвечает каждый из этих документов:
Реализация товаров и услуг) уже в новой базе.Таким образом, задвоения не происходит: финансовый долг и складской остаток фиксируются «Вводом остатков», а оперативные резервы и аналитика для последующих отгрузок — «Заказами».
Еще одной важной деталью при переходе является справочник Виды номенклатуры. В УТ 10.3 такого справочника в его современном понимании не существовало — тип номенклатуры определялся простым перечислением (Товар, Услуга, Набор-пакет). В УТ 11 вид номенклатуры является ключевым разрезом классификации, определяющим политики учета, использование серий, характеристик и шаблоны наименований.
Посмотрим, по какому принципу алгоритмы переноса создают виды номенклатуры в новой базе УТ 11:
Рекомендуем после завершения переноса зайти в справочник Виды номенклатуры в УТ 11 и вручную навести там порядок: объединить дублирующиеся виды, настроить общие характеристики вместо индивидуальных (если это применимо) и задать корректные группы доступа и шаблоны ценников.