Как автоматически заполнить серии в складских ордерах при списании и оприходовании товаров на неордерном складе в 1С:УТ 11.5 / ERP?

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

При внедрении и администрировании систем 1С:Управление торговлей (ред. 11.5), 1С:Комплексная автоматизация (ред. 2) или 1С:ERP Управление предприятием пользователи часто сталкиваются с неочевидным поведением программы при оформлении инвентаризации. Склад настроен как «обычный» (неордерный), но на нем ведется полноценный серийный учет. При попытке списать недостачу или оприходовать излишки система внезапно требует создать складские ордера на отражение излишков и недостач. Хуже того, эти ордера не заполняются автоматически, и пользователям приходится вручную переносить огромные объемы данных, включая сложные серийные номера.

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

---

Почему на «обычном» складе вообще требуются ордера при списании и оприходовании?

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

Даже если в карточке склада полностью отключена ордерная схема для стандартных операций поступления и отгрузки, программа потребует установить флаг «при отражении излишков, недостач и порчи» на вкладке «Ордерная схема и структура». Без этой настройки система просто не позволит назначить для склада политику учета серий с типом «Управление остатками серий» или «Авторасчет по FEFO».

Связано это с тем, что финансовый и складской учет в ERP-решениях 1С разделен на уровне регистров накопления:

  1. Регистр Товары на складах отвечает за физическое наличие товаров на конкретных складских ячейках и полках (именно здесь контролируются остатки серий).
  2. Регистр Товары организаций отвечает за финансовый и налоговый учет товаров, принадлежащих конкретному юридическому лицу.

Когда мы списываем или приходуем серийный товар, система должна сделать движения по обоим регистрам. На обычном складе без серий это происходит одним финансовым документом (актом). Но при жестком серийном учете программа разделяет эти операции, превращая склад в «частично ордерный» исключительно под нужды инвентаризации.

---

Логика движения документов: почему нет автозаполнения в обратную сторону?

Разберем ситуацию, когда пользователь сначала создает финансовый документ Списание недостач товаров или Оприходование излишков товаров, а затем пытается создать на их основании складские ордера. В этот момент он обнаруживает, что ордера создаются пустыми, а серии приходится заполнять вручную.

Разработчики 1С заложили в систему строгую последовательность документооборота «от факта к учету»:

  1. Физическое выявление отклонений на складе. Предполагается, что кладовщик на месте фиксирует фактическое наличие товара и вводит первичный складской документ: Ордер на отражение излишков товаров или Ордер на отражение недостач товаров. На этом этапе в ордер вносятся конкретные серии, обнаруженные «глазами» или ТСД. Эти документы выравнивают физические остатки в регистре Товары на складах.
  2. Оформление финансового учета. После проведения ордеров бухгалтер или менеджер открывает «Помощник оформления складских актов». На основании накопленных в регистре Товары к оформлению излишков и недостач данных система автоматически генерирует финансовые акты списания и оприходования, наследуя из ордеров все данные, включая серии.

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

Рассмотрим, как решить эту проблему без программирования и с помощью доработок.

---

Решение №1. Использование типового сценария через «Пересчет товаров»

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

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

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

При таком сценарии серии из Пересчета товаров автоматически и без потерь перенесутся как в складские ордера, так и в финансовые акты. Ручной ввод полностью исключается.

---

Решение №2. Создание внешней обработки заполнения табличной части (для разработчиков)

Бывают ситуации, когда бизнес-процесс компании не позволяет использовать документы пересчета товаров, а акты списания/оприходования приходят из внешних систем (например, из WMS или через интеграцию с личными кабинетами маркетплейсов). В этом случае финансовые акты уже созданы, а ордера нужно оперативно заполнить по ним.

Для автоматизации этой задачи можно написать небольшую внешнюю обработку заполнения табличной части для документов ОрдерНаОтражениеИзлишковТоваров и ОрдерНаОтражениеНедостачТоваров.

Проанализируем логику работы такой обработки. Программа должна прочитать данные из регистра накопления Товары к оформлению излишков и недостач (куда попали товары после проведения финансового акта) или напрямую из связанного документа-основания, а затем заполнить табличную часть ордера.

Ниже приведем пример упрощенного алгоритма на языке 1С для интеграции в модуль внешней обработки заполнения табличной части:


// Процедура заполняет табличную часть "Товары" складского ордера на отражение недостач
Процедура ЗаполнитьОрдерПоФинансовымДокументам(ДокументОбъект) Экспорт
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ТоварыКОформлению.Номенклатура КАК Номенклатура,
        |   ТоварыКОформлению.Характеристика КАК Характеристика,
        |   ТоварыКОформлению.Назначение КАК Назначение,
        |   ТоварыКОформлению.Количество КАК Количество,
        |   ТоварыКОформлению.Серия КАК Серия
        |ИЗ
        |   РегистрНакопления.ТоварыКОформлениюИзлишковНедостач КАК ТоварыКОформлению
        |ГДЕ
        |   ТоварыКОформлению.Склад = &Склад
        |   И ТоварыКОформлению.ДокументОформления = &ДокументОснование";
        
    Запрос.УстановитьПараметр("Склад", ДокументОбъект.Склад);
    // Предполагается, что документ-основание передан в реквизит ордера
    Запрос.УстановитьПараметр("ДокументОснование", ДокументОбъект.ДокументОснование);
    
    РезультатЗапроса = Запрос.Выполнить();
    Если Не РезультатЗапроса.Пустой() Тогда
        ДокументОбъект.Товары.Очистить();
        Выборка = РезультатЗапроса.Выбрать();
        Пока Выборка.Следующий() Цикл
            НоваяСтрока = ДокументОбъект.Товары.Добавить();
            ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
            
            // Если серия в регистре не заполнена, но на остатках склада по этой номенклатуре 
            // числится ровно одна серия, мы можем автоматически подставить ее для удобства пользователя
            Если Не ЗначениеЗаполнено(Выборка.Серия) Тогда
                НоваяСтрока.Серия = ПолучитьЕдинственнуюСериюНаОстатках(Выборка.Номенклатура, ДокументОбъект.Склад);
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;

КонецПроцедуры

Использование подобной заполнялки решает проблему ручного труда на 95-100%, особенно в тех случаях, когда у списываемого товара на остатках числится всего одна уникальная серия и система может однозначно ее идентифицировать.

---

Решение №3. Отключение жесткого контроля серий

Рассмотрим еще один альтернативный вариант. Если для вашей компании учет серий при инвентаризации не является критически важным, и вы не хотите использовать ордера, можно изменить политику учета серий.

Для этого выполните следующие действия:

  1. Перейдите в настройки склада и снимите флаг «при отражении излишков, недостач и порчи» в настройках ордерной схемы.
  2. В политике учета серий для данного склада укажите тип политики «Справочное указание серий» (или полностью отключите серии для складских актов).

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

---

Выводы и рекомендации

Подводя итоги нашего анализа, дадим несколько практических рекомендаций:

← На главную