Как перенести документы из 1С:УТ 10.3 в УТ 11.4 и исправить типичные ошибки (Вариант приемки, Ключи связи, Закрытие заказов)

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

Переход с «Управления торговлей 10.3» (на обычных формах) на «Управление торговлей 11.4» (на управляемых формах) — это не просто обновление версии, а полноценная смена парадигмы учета. Одной из самых сложных задач является перенос документов за прошлые периоды (например, за последние 3 года). В отличие от типового переноса остатков, перенос документов требует глубокого понимания архитектурных различий систем. Проанализируем основные технические проблемы, с которыми сталкиваются разработчики, и разберем способы их решения.

Решение проблемы с полем «Вариант приемки товаров»

При переносе или создании документов ПеремещениеТоваров и ПриобретениеТоваровУслуг (аналог ПТиУ в 10.3) часто возникает ошибка: «Поле вариант приемки товаров не заполнено». В 11-й версии архитектура складов стала более гибкой, и это поле определяет, как фактически будет происходить оприходование ТМЦ: одной накладной или раздельно (финансовый документ + складской ордер).

Если в системе настроена ордерная схема или используются определенные типы складов, это поле становится обязательным. Проанализируем ситуацию: в правилах конвертации (КД 2.0 или КД 3.0) необходимо принудительно устанавливать значение этого перечисления. Рассмотрим пример кода, который можно использовать в обработчике «При загрузке» или «Перед записью» для объекта:


// Установка варианта приемки товаров
Объект.ВариантПриемкиТоваров = Перечисления.ВариантыПриемкиТоваров.РазделенаТолькоПоНакладным;
// Если требуется настройка из констант системы
Если НЕ ЗначениеЗаполнено(Объект.ВариантПриемкиТоваров) Тогда
    Объект.ВариантПриемкиТоваров = Константы.ВариантПриемкиТоваров.Получить();
КонецЕсли;

Важно помнить: если склад помечен как ордерный, значение РазделенаТолькоПоНакладным позволит провести документ без мгновенного создания складских движений по остаткам, ожидая складской ордер.

Работа с ключами связи и кодами строк (КлючСвязи)

Разберем одно из самых критичных отличий: в УТ 10.3 связь между табличными частями (например, Товары и Скидки) часто отсутствовала или была реализована через индекс строки. В УТ 11.4 введена система КлючСвязи. Это числовое поле, которое уникально идентифицирует логическую строку во всех связанных табличных частях документа.

Если вы переносите документ со скидками, этапами оплаты или специфическими видами запасов, и не заполняете КлючСвязи, система «потеряет» связь между товаром и его свойствами. Проанализируем алгоритм правильного заполнения:

  1. Для каждой строки табличной части Товары генерируется уникальное число (обычно по порядку 1, 2, 3...).
  2. Это же число записывается в поле КлючСвязи в табличных частях СкидкиНаценки, ВидыЗапасов и ЭтапыГрафикаОплаты для соответствующих строк.
  3. При программном формировании документа обязательно вызывайте типовую процедуру инициализации ключей связи, если она предусмотрена в модуле менеджера или объекта.

Без корректных ключей связи документ может записаться, но при проведении выдаст ошибки распределения сумм или налогов.

Особенности переноса заказов и механизма закрытия

Выясним причину проблем с ЗаказамиКлиентов. В УТ 10.3 существовал отдельный документ ЗакрытиеЗаказаПокупателя, который делал движения по регистрам, обнуляя остатки по заказам. В УТ 11.4 такого документа нет. Статус «Закрыт» для заказа является производным от состояния его строк.

Рассмотрим, как правильно сконвертировать данные при частичном выполнении заказа:

Если вы переносите историю за 3 года, вам придется программно «дробить» строки в заказах УТ 11.4, если по одной позиции в 10.3 была частичная отгрузка и частичное закрытие остатка. Рассмотрим пример логики:


// Логика разделения строки при частичной отмене
НоваяСтрока = Объект.Товары.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ИсходнаяСтрока);
НоваяСтрока.Количество = ОстатокПоЗаказуИз103;
НоваяСтрока.Отменено = Истина;
НоваяСтрока.ПричинаОтмены = Справочники.ПричиныОтменыЗаказовКлиентов.НайтиПоНаименованию("Перенос остатков");

Виды запасов и учет Интеркампани

В УТ 11.4 реализован механизм «теневого» учета партий через регистр ВидыЗапасов. Это позволяет системе понимать, чей именно товар продается (если организаций несколько) и по какому ГТД. При переносе документов за длительный период это становится главной «головной болью».

Посмотрим на ситуацию с ГТД: в УТ 10.3 номера ГТД часто хранились просто в сериях или справочнике, не имея жесткой связи с организацией. В УТ 11.4 при проведении реализации система пытается сама подобрать ВидыЗапасов. Если вы загружаете документы в хаотичном порядке, остатки по ГТД «разъедутся» с данными старой базы.

Практический совет: При массовой загрузке документов за 3 года рекомендуется:

  1. Отключить контроль остатков в настройках системы (НСИ и администрирование -> Настройка разделов -> Склад и доставка).
  2. Отключить контроль организаций (Интеркампани), чтобы документы реализации от одной организации могли списывать остатки другой без немедленного формирования передач.
  3. Загружать документы строго в хронологическом порядке (секунда в секунду), используя режим ОбменДанными.Загрузка = Истина.
  4. После загрузки запустить регламентную операцию «Исправление ошибок в видах запасов».

Выбор инструмента: КД 2.0 против КД 3.0 (EnterpriseData)

Проанализируем инструменты для миграции. Типовой «Универсальный формат обмена» (КД 3.0) отлично подходит для синхронизации текущих данных (справочники, текущие остатки). Однако для переноса «тяжелой» истории с документами за несколько лет он может быть избыточно сложным и медленным из-за жестких схем XSD.

Большинство экспертов рекомендуют использовать Конвертацию данных 2.0. Она позволяет:

Таким образом, для успешного перехода необходимо не просто «перекачать» данные, а фактически пересобрать логику каждого документа, имитируя действия пользователя в новой конфигурации 1С:УТ 11.4.

← На главную