Почему заказы клиентов при переносе из УПП в ERP приходят пустыми и как с ними работать

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

Переход с системы «1С:Управление производственным предприятием» (УПП) на «1С:ERP Управление предприятием» — это сложный процесс, который часто преподносит сюрпризы техническим специалистам. Одной из самых обсуждаемых проблем является перенос документов Заказ клиента. Многие пользователи и программисты сталкиваются с тем, что после стандартного обмена заказы в целевой базе ERP оказываются «пустыми», то есть не содержат товарного состава в табличных частях. Разберем подробно, почему так происходит, какова логика разработчиков фирмы 1С и какие стратегии работы с незакрытыми заказами мы можем применить.

Анализ методологии типового переноса

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

В ERP эти функции разделены более жестко. Рассмотрим две причины, по которым Заказ клиента переносится без товаров:

  1. Заказ как объект расчетов: Если в УПП в договоре или настройках был выбран порядок расчетов «По заказам», то для корректного переноса дебиторской и кредиторской задолженности системе ERP необходимо «знать», на какой документ «повесить» этот долг. В этом случае документ Заказ клиента создается в ERP как пустая оболочка. Его единственная цель — служить ссылкой в регистре РасчетыСКлиентами.
  2. Различие в механизмах обеспечения: В УПП резервирование и размещение работали по упрощенной схеме. В ERP механизм обеспечения (статусы «К обеспечению», «Резервировать по мере поступления», «Резервировать на складе», «Отгрузить») привязан к каждой строке заказа. Прямой перенос строк без сложной программной обработки этих статусов может привести к тому, что заказы не сделают нужных движений или исказят складские остатки.

Способ 1: Использование специализированных документов ввода остатков

Рассмотрим вариант, когда нам необходимо отразить именно потребности (незакрытые хвосты заказов) в ERP. Для этого в системе предусмотрен раздел НСИ и администрирование — Начальное заполнение — Документы ввода остатков.

Посмотрим на алгоритм действий при этом подходе:

  1. Выясним объем незакрытых заказов в УПП на дату перехода.
  2. В ERP создадим документ Ввод остатков с типом «Остатки по заказам клиентов».
  3. В качестве объекта расчетов выберем тот самый «пустой» заказ, который прилетел из обмена.
  4. Заполним товарный состав вручную или с помощью несложной обработки, которая прочитает данные из УПП через COM-соединение или XML-файл.

Преимущество этого метода: Мы разделяем «старый» долг и «новые» отгрузки, сохраняя при этом связь с исходным заказом для аналитики.

Способ 2: Доработка правил конвертации данных

Если объем активных заказов измеряется тысячами, ручной ввод невозможен. В этом случае проанализируем ситуацию с доработкой правил (XML). Нам необходимо изменить ПВД (Правила выгрузки данных) или ПКО (Правила конвертации объектов) для документа ЗаказПокупателя.

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


// Пример логики заполнения обеспечения при программном создании строк
Для Каждого СтрокаТовары Из Объект.Товары Цикл
    // Устанавливаем вариант обеспечения в зависимости от логики перехода
    СтрокаТовары.ВариантОбеспечения = Перечисления.ВариантыОбеспечения.КОбеспечению;
    
    // Обязательно заполняем дату отгрузки, иначе документ не проведется
    Если Не ЗначениеЗаполнено(СтрокаТовары.ДатаОтгрузки) Тогда
        СтрокаТовары.ДатаОтгрузки = ТекущаяДата();
    КонецЕсли;
    
    // Заполняем налогообложение из шапки, если оно не заполнено в строке
    СтрокаТовары.СтавкаНДС = Объект.НалогообложениеНДС;
КонецЦикла;

Важно помнить: при такой доработке возникнет коллизия во взаиморасчетах. Если мы перенесли и остаток долга по заказу, и товарный состав, то при попытке отгрузить эти товары в ERP система зафиксирует новую задолженность, что может привести к двойному сальдо по одному и тому же объекту расчетов. Поэтому при дозаполнении заказов товарами необходимо тщательно очищать или корректировать начальные остатки в регистрах расчетов.

Способ 3: Методически верный переход (Закрытие хвостов)

Рассмотрим наиболее «чистый» с точки зрения методологии 1С вариант. Этот метод не требует программирования, но требует административных усилий:

  1. В УПП на дату перехода все незакрытые заказы клиентов принудительно закрываются документом Закрытие заказов покупателей.
  2. Взаиморасчеты переносятся в ERP общей суммой на объекты расчетов (договоры или пустые заказы-оболочки).
  3. В ERP создаются новые заказы клиентов текущей датой. Эти заказы отражают только тот товарный состав, который реально остался к отгрузке.

Такой подход позволяет избежать конфликтов в РегистрНакопления.ЗаказыКлиентов и РегистрНакопления.РасчетыСКлиентами. Вы сможете начать учет «с чистого листа», используя все преимущества подсистемы обеспечения ERP, такие как автоматическое резервирование и график отгрузок.

Технические нюансы версии ERP 2.5.7 и выше

Проанализируем особенности последних версий ERP. Начиная с версии 2.5, механизмы распределения расчетов стали онлайн-зависимыми. «Пустой» заказ, пришедший из УПП, часто не содержит заполненной ГФУ (Группы финансового учета) или корректного налогообложения. Без этих данных вы не сможете провести документ после добавления в него товаров.

При работе с перенесенными документами обязательно проверьте:

Таким образом, мы видим, что «пустота» заказов — это не ошибка обмена, а следствие архитектурного различия систем. Выбор метода — дорабатывать правила или перевносить «хвосты» вручную — зависит от объема данных и готовности к корректировке регистров взаиморасчетов.

← На главную