Работа с сериями товаров в конфигурации «1С:Управление торговлей» версии 11.4 и 11.5 нередко вызывает трудности как у начинающих пользователей, так и у опытных логистов. Одной из наиболее распространенных проблем является невозможность указать серию в документе Заказ клиента — система настойчиво выводит предупреждение «Серия не указывается». Вторая, не менее важная проблема — рутинный ручной выбор серий для каждой строки, что парализует работу логистов при больших объемах заказов.
В этой статье мы подробно разберем, какие настройки необходимо выполнить, чтобы активировать выбор серий в заказах, проанализируем штатные механизмы группового подбора и рассмотрим архитектурные особенности системы, влияющие на этот процесс.
Если в табличной части вашего документа Заказ клиента в колонке серии отображается статус <Серия не указывается>, это означает, что система не видит необходимости регистрировать серии на данном этапе движения товара. Давайте исправим это, выполнив пошаговую настройку:
Вид номенклатуры для наших товаров.Товары станет доступным для редактирования только тогда, когда для конкретной строки будет установлено действие «Отгрузить» или «Резервировать на складе». Если позиция находится в статусе «К обеспечению» или «Не обеспечивать», указывать серию в заказе нет физического смысла, так как товара еще нет в наличии, и система заблокирует эту колонку.После того как колонки с сериями стали доступны, логисты сталкиваются со следующей проблемой: при заказах на сотни позиций ручной выбор серии для каждой строки занимает слишком много времени. Рассмотрим, как устроен штатный механизм в «1С:Управление торговлей 11»:
В системе предусмотрена специализированная форма ПодборСерийПоОстаткамДляВсехСтрокТоваров. Она вызывается по кнопке «Указать серии» над табличной частью документа. На первый взгляд, данная форма должна решать проблему пакетного ввода, однако на практике логисты часто сталкиваются с неудобствами.
Рассмотрим алгоритм работы этой формы. Она осуществляет пошаговый перебор строк документа. Логист видит остатки серий по первой позиции, выбирает нужную, после чего нажимает кнопку перехода к следующему товару («Далее»). Процедура повторяется для каждой строки. Если в заказе содержится более 50 позиций, такой «полуавтоматический» режим работы все равно превращается в монотонный и долгий процесс.
В системе также есть кнопка «Заполнить серии по FEFO» (First Expire, First Out — первым истекает, первым выбывает). Она способна автоматически распределить серии на основе сроков годности. Но обратите внимание: этот алгоритм работает исключительно в том случае, если в политике учета серий настроен и ведется учет по срокам годности. Если вы ведете учет только по номерам партий или серийным номерам без указания дат окончания действия, кнопка автозаполнения по FEFO окажется неактивной или не даст результата.
Давайте разберем методологическую позицию фирмы «1С». Зачастую жесткое резервирование конкретной серии на этапе создания заказа (особенно когда используется ордерный склад) считается избыточным и вредным для бизнес-процессов по следующим причинам:
Заказе клиента серии вообще не указываются. Менеджер просто резервирует требуемое количество номенклатуры. Распределение и фиксация конкретных серий происходят непосредственно на складе при проведении документа Расходный ордер на товары. Кладовщик просто сканирует штрихкоды фактически отобранных упаковок, и система сама регистрирует движение нужных серий.Если специфика вашего бизнеса все же требует, чтобы менеджер жестко определял серии еще на этапе формирования Заказа клиента (например, при торговле кабельной продукцией определенного метража, металлопрокатом или химическим сырьем под требования конкретных покупателей), стандартный функционал придется доработать. Рассмотрим основные пути решения этой задачи:
1. Использование внешних обработок заполнения табличной части
Самый безопасный способ, не требующий изменения конфигурации, — подключение внешней обработки через механизм дополнительных отчетов и обработок. Такая обработка может добавить команду «Заполнить серии автоматически» в меню «Заполнить» табличной части Товары. Программа сама обратится к регистру свободных остатков серий и распределит их по строкам документа по методу FIFO (первый пришел — первый ушел).
2. Использование расширений конфигурации
Для создания бесшовного процесса можно написать расширение, которое будет автоматически переопределять поведение формы подбора серий или автоматически заполнять серии при проведении документа в статусе «К отгрузке». Ниже приведем концептуальный пример кода, который может использоваться разработчиком в расширении для автоматического распределения доступных серий по строкам документа:
Процедура ЗаполнитьСерииПоОстаткамНаСкладе(ДокументОбъект) Экспорт
// Получаем таблицу товаров документа
ТаблицаТоваров = ДокументОбъект.Товары;
СкладДокумента = ДокументОбъект.Склад;
Для Каждого СтрокаТовара Из ТаблицаТоваров Цикл
// Проверяем, требуется ли заполнение серии для данной строки
Если СтрокаТовара.СтатусУказанияСерий > 0 Тогда
// Запрашиваем свободные остатки серий по регистру накопления
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Серия КАК Серия,
| ТоварыНаСкладахОстатки.ВНаличииОстаток КАК Остаток
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(
| &Период,
| Номенклатура = &Номенклатура
| И Склад = &Склад
| ) КАК ТоварыНаСкладахОстатки
|ГДЕ
| ТоварыНаСкладахОстатки.ВНаличииОстаток > 0";
Запрос.УстановитьПараметр("Период", ТекущаяДата());
Запрос.УстановитьПараметр("Номенклатура", СтрокаТовара.Номенклатура);
Запрос.УстановитьПараметр("Склад", СкладДокумента);
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
// Заполняем серию первой попавшейся свободной на складе
СтрокаТовара.Серия = Выборка.Серия;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Этот код демонстрирует упрощенный принцип автоматизации: мы обходим строки, ищем остатки серий на указанном складе и подставляем первую доступную серию. В реальном решении необходимо также учитывать количество товара в серии и списывать остатки во временной таблице по мере их распределения, чтобы не назначить одну и ту же физическую серию на объем, превышающий ее фактический остаток.
Таким образом, мы выяснили причину блокировки серий в заказах клиентов, разобрали методологию складского учета в современных версиях ERP-платформ фирмы «1С» и наметили пути решения проблемы для автоматизации работы логистов.