Как настроить указание и автоматическое заполнение серий в Заказе клиента в 1С:Управление торговлей 11

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

Работа с сериями товаров в конфигурации «1С:Управление торговлей» версии 11.4 и 11.5 нередко вызывает трудности как у начинающих пользователей, так и у опытных логистов. Одной из наиболее распространенных проблем является невозможность указать серию в документе Заказ клиента — система настойчиво выводит предупреждение «Серия не указывается». Вторая, не менее важная проблема — рутинный ручной выбор серий для каждой строки, что парализует работу логистов при больших объемах заказов.

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

Шаг 1. Настройка политики учета серий и складов

Если в табличной части вашего документа Заказ клиента в колонке серии отображается статус <Серия не указывается>, это означает, что система не видит необходимости регистрировать серии на данном этапе движения товара. Давайте исправим это, выполнив пошаговую настройку:

  1. Проверяем политику учета серий. Перейдем в настройки номенклатуры и откроем используемую политику учета серий. Тип политики должен быть отличным от справочного указания. Для полноценного контроля остатков и резервирования выберем, например, тип «Управление остатками серий» или «Учет себестоимости по сериям».
  2. Настраиваем момент указания серий. Это ключевой шаг. В форме настройки политики в блоке «Указывать серии» должен быть установлен флаг «При планировании отгрузки». В частности, должна быть активна опция «В заказах и накладных». Если здесь настроено указание только «При отгрузке со склада», то в самом заказе поле останется заблокированным.
  3. Привязываем политику к складу. Убедимся, что созданная или измененная политика назначена для конкретного склада (или группы складов) в карточке Вид номенклатуры для наших товаров.
  4. Устанавливаем правильный статус обеспечения в заказе. Поле выбора серии в табличной части Товары станет доступным для редактирования только тогда, когда для конкретной строки будет установлено действие «Отгрузить» или «Резервировать на складе». Если позиция находится в статусе «К обеспечению» или «Не обеспечивать», указывать серию в заказе нет физического смысла, так как товара еще нет в наличии, и система заблокирует эту колонку.

Шаг 2. Анализ штатного механизма группового заполнения серий

После того как колонки с сериями стали доступны, логисты сталкиваются со следующей проблемой: при заказах на сотни позиций ручной выбор серии для каждой строки занимает слишком много времени. Рассмотрим, как устроен штатный механизм в «1С:Управление торговлей 11»:

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

Рассмотрим алгоритм работы этой формы. Она осуществляет пошаговый перебор строк документа. Логист видит остатки серий по первой позиции, выбирает нужную, после чего нажимает кнопку перехода к следующему товару («Далее»). Процедура повторяется для каждой строки. Если в заказе содержится более 50 позиций, такой «полуавтоматический» режим работы все равно превращается в монотонный и долгий процесс.

В системе также есть кнопка «Заполнить серии по FEFO» (First Expire, First Out — первым истекает, первым выбывает). Она способна автоматически распределить серии на основе сроков годности. Но обратите внимание: этот алгоритм работает исключительно в том случае, если в политике учета серий настроен и ведется учет по срокам годности. Если вы ведете учет только по номерам партий или серийным номерам без указания дат окончания действия, кнопка автозаполнения по FEFO окажется неактивной или не даст результата.

Шаг 3. Почему указывать серии в Заказе клиента — плохая практика?

Давайте разберем методологическую позицию фирмы «1С». Зачастую жесткое резервирование конкретной серии на этапе создания заказа (особенно когда используется ордерный склад) считается избыточным и вредным для бизнес-процессов по следующим причинам:

  1. Создание «мертвого» резерва. Менеджер в офисе, не видя реального расположения товаров на полках, резервирует конкретную серию. При сборке заказа на складе выясняется, что эта коробка лежит в самом низу паллеты или в дальнем углу стеллажа. Рядом стоит точно такой же товар другой серии, но кладовщик не имеет права его взять, так как система требует отгрузить именно зарезервированную менеджером серию.
  2. Рекомендуемая схема работы. С точки зрения методологии «1С», в политике учета серий для ордерного склада правильнее устанавливать момент указания серий «При планировании отбора» или «По факту отбора». В этом случае в самом Заказе клиента серии вообще не указываются. Менеджер просто резервирует требуемое количество номенклатуры. Распределение и фиксация конкретных серий происходят непосредственно на складе при проведении документа Расходный ордер на товары. Кладовщик просто сканирует штрихкоды фактически отобранных упаковок, и система сама регистрирует движение нужных серий.

Шаг 4. Варианты доработки для автоматического заполнения серий в заказах

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

1. Использование внешних обработок заполнения табличной части

Самый безопасный способ, не требующий изменения конфигурации, — подключение внешней обработки через механизм дополнительных отчетов и обработок. Такая обработка может добавить команду «Заполнить серии автоматически» в меню «Заполнить» табличной части Товары. Программа сама обратится к регистру свободных остатков серий и распределит их по строкам документа по методу FIFO (первый пришел — первый ушел).

2. Использование расширений конфигурации

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


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

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

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

← На главную