Переход с системы «1С:Управление производственным предприятием» (УПП) на «1С:ERP Управление предприятием» — это сложный процесс, который часто преподносит сюрпризы техническим специалистам. Одной из самых обсуждаемых проблем является перенос документов Заказ клиента. Многие пользователи и программисты сталкиваются с тем, что после стандартного обмена заказы в целевой базе ERP оказываются «пустыми», то есть не содержат товарного состава в табличных частях. Разберем подробно, почему так происходит, какова логика разработчиков фирмы 1С и какие стратегии работы с незакрытыми заказами мы можем применить.
Прежде всего, проанализируем ситуацию с точки зрения методологии. Типовые правила перехода, поставляемые в составе дистрибутивов миграции, ориентированы в первую очередь на перенос остатков на определенную дату, а не на перенос всей операционной истории. В системе УПП заказ покупателя мог выполнять две функции одновременно: быть распоряжением на отгрузку и выступать объектом аналитики взаиморасчетов.
В ERP эти функции разделены более жестко. Рассмотрим две причины, по которым Заказ клиента переносится без товаров:
Заказ клиента создается в ERP как пустая оболочка. Его единственная цель — служить ссылкой в регистре РасчетыСКлиентами.Рассмотрим вариант, когда нам необходимо отразить именно потребности (незакрытые хвосты заказов) в ERP. Для этого в системе предусмотрен раздел НСИ и администрирование — Начальное заполнение — Документы ввода остатков.
Посмотрим на алгоритм действий при этом подходе:
Ввод остатков с типом «Остатки по заказам клиентов».Преимущество этого метода: Мы разделяем «старый» долг и «новые» отгрузки, сохраняя при этом связь с исходным заказом для аналитики.
Если объем активных заказов измеряется тысячами, ручной ввод невозможен. В этом случае проанализируем ситуацию с доработкой правил (XML). Нам необходимо изменить ПВД (Правила выгрузки данных) или ПКО (Правила конвертации объектов) для документа ЗаказПокупателя.
Однако просто перенести табличную часть Товары недостаточно. Выясним причину: в ERP документ требует обязательного заполнения таких реквизитов, как ВариантОбеспечения и ДатаОтгрузки в каждой строке. Проанализируем пример кода, который может быть использован в обработчике «При загрузке» или «Поля поиска» для корректной инициализации строк:
// Пример логики заполнения обеспечения при программном создании строк
Для Каждого СтрокаТовары Из Объект.Товары Цикл
// Устанавливаем вариант обеспечения в зависимости от логики перехода
СтрокаТовары.ВариантОбеспечения = Перечисления.ВариантыОбеспечения.КОбеспечению;
// Обязательно заполняем дату отгрузки, иначе документ не проведется
Если Не ЗначениеЗаполнено(СтрокаТовары.ДатаОтгрузки) Тогда
СтрокаТовары.ДатаОтгрузки = ТекущаяДата();
КонецЕсли;
// Заполняем налогообложение из шапки, если оно не заполнено в строке
СтрокаТовары.СтавкаНДС = Объект.НалогообложениеНДС;
КонецЦикла;
Важно помнить: при такой доработке возникнет коллизия во взаиморасчетах. Если мы перенесли и остаток долга по заказу, и товарный состав, то при попытке отгрузить эти товары в ERP система зафиксирует новую задолженность, что может привести к двойному сальдо по одному и тому же объекту расчетов. Поэтому при дозаполнении заказов товарами необходимо тщательно очищать или корректировать начальные остатки в регистрах расчетов.
Рассмотрим наиболее «чистый» с точки зрения методологии 1С вариант. Этот метод не требует программирования, но требует административных усилий:
Закрытие заказов покупателей.Такой подход позволяет избежать конфликтов в РегистрНакопления.ЗаказыКлиентов и РегистрНакопления.РасчетыСКлиентами. Вы сможете начать учет «с чистого листа», используя все преимущества подсистемы обеспечения ERP, такие как автоматическое резервирование и график отгрузок.
Проанализируем особенности последних версий ERP. Начиная с версии 2.5, механизмы распределения расчетов стали онлайн-зависимыми. «Пустой» заказ, пришедший из УПП, часто не содержит заполненной ГФУ (Группы финансового учета) или корректного налогообложения. Без этих данных вы не сможете провести документ после добавления в него товаров.
При работе с перенесенными документами обязательно проверьте:
К выполнению или Закрыт (в зависимости от операции).Таким образом, мы видим, что «пустота» заказов — это не ошибка обмена, а следствие архитектурного различия систем. Выбор метода — дорабатывать правила или перевносить «хвосты» вручную — зависит от объема данных и готовности к корректировке регистров взаиморасчетов.