Почему не переносятся серии при вводе остатков из КА 1.1 в ERP 2.4 и как это исправить?

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

Переход с устаревших систем, таких как 1С:Комплексная автоматизация 1.1, на современные решения вроде 1С:ERP Управление предприятием 2.4/2.5 — это сложный процесс, требующий особого внимания к деталям учета. Одной из наиболее острых проблем является перенос остатков номенклатуры, по которой ведется серийный учет. Часто специалисты сталкиваются с ситуацией: данные выгружены стандартной обработкой ВыгрузкаДанных.epf, загружены через помощник перехода, документы Ввод остатков созданы, но серии в них имеют статус «Требуется указать». Это означает, что система «видит» необходимость серии, но сами данные (номер, срок годности) в табличную часть не попали.

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

Причина 1: Несоответствие политики учета серий в исходной и целевой базах

Разберем ситуацию, которая часто встречается при миграции. В КА 1.1 учет серий реализован достаточно просто, в то время как в ERP за это отвечает сложный механизм Политика учета серий. Проанализируем настройки: если в ERP для вида номенклатуры установлена политика «Учет остатков по сериям», система ожидает, что каждая единица товара будет жестко привязана к конкретному объекту справочника Серии номенклатуры уже в момент проведения документа ввода остатков.

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

Причина 2: Особенности обработки ВыгрузкаДанных.epf и правил XML

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

Рассмотрим порядок действий для проверки правил:

  1. Извлечем XML-правила из обработки ВыгрузкаДанных.epf (обычно они хранятся в макетах).
  2. Проанализируем ПВД (Правила выгрузки данных) для регистра накопления Товары на складах или Партии товаров (в зависимости от метода учета в КА 1.1).
  3. Убедимся, что при выгрузке остатков передается информация о сериях. Если в коде обработчика ПередВыгрузкой отсутствует заполнение структуры серии, данные просто не попадут в файл.

Решение 1: Подготовка конфигурации ERP перед загрузкой

Чтобы избежать «затирания» настроек, выполним следующие шаги:

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

Это позволит сохранить ваши настройки политики серий в целостности при загрузке самих товаров и их остатков.

Решение 2: Использование альтернативного способа через Excel

Если стандартный помощник перехода продолжает выдавать пустые серии, а объем данных велик (более 100 строк в документе), наиболее эффективным методом будет использование механизма «Заполнить из внешнего файла». Это позволит нам полностью контролировать процесс сопоставления.

Разберем этот метод по шагам:

  1. В исходной базе КА 1.1 сформируем отчёт Ведомость по товарам на складах в разрезе Номенклатуры, Склада и Серии.
  2. Выгрузим этот отчет в формат Excel.
  3. В ERP создадим документ Ввод остатков номенклатуры.
  4. Нажмем кнопку «Заполнить из внешнего файла» (в табличной части Товары).
  5. Скопируем данные из нашего Excel-файла в открывшееся окно. Система автоматически попытается сопоставить колонки: Номенклатура, Количество, Серия, Номер серии, Срок годности.

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

Решение 3: Нюансы с ордерными складами

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

Выясним причину: при использовании ордерной схемы остатки на склад (в количественном выражении) фактически приходуются документом Приходный ордер на товары. Однако при вводе начальных остатков система обычно использует упрощенный режим. Убедитесь, что в настройках склада для вида номенклатуры использование серий включено именно для операции «Ввод остатков». Если флаг стоит только на отгрузку или приемку, при вводе остатков поле серии может блокироваться.

Техническая справка: Программное заполнение серий

Если серии в базе ERP уже созданы (как объекты справочника), но не привязаны к строкам документа Ввод остатков, программист может воспользоваться небольшой обработкой. Рассмотрим пример логики на встроенном языке 1С для заполнения табличной части:


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

Этот код — лишь схематичный пример. В реальности необходимо учитывать, что в ERP 2.4/2.5 работа с сериями в табличных частях часто вынесена в отдельные коллекции (например, если используется разбиение по сериям через команду «Указать серии»), и прямое редактирование колонки Серия в основной табличной части может быть недостаточно — потребуется работа с формой или использование серверных процедур модуля менеджера для пересчета статусов серий.

Итоговые рекомендации

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

Соблюдение этих шагов позволит корректно перенести остатки и сохранить преемственность серийного учета при переходе на новую систему.

← На главную