При внедрении адресного (WMS) хранения в 1С:Управление торговлей 11 пользователи часто сталкиваются с тем, что стандартная логика программы не всегда соответствует бизнес-процессам розничного магазина или совмещенного склада. Рассмотрим классическую ситуацию: необходимо, чтобы при поступлении товар автоматически распределялся между торговым залом (витриной), оперативным запасом у продавца и основным складом. При этом при продаже товар должен в первую очередь списываться из зоны продавца, а не из дальних стеллажей.
Разберем по шагам, как преодолеть ограничения типового функционала и настроить систему под ваши задачи.
Первая проблема, с которой мы сталкиваемся: в документе Отбор (размещение) товаров можно указать только одно Помещение. Если вы создадите «Торговый зал» и «Основной склад» как разные помещения, вам придется создавать два отдельных документа размещения на каждую поставку, что крайне неудобно и убивает автоматизацию. Проанализируем официальную позицию: правила размещения действуют строго в рамках одного помещения.
Решение: откажемся от использования Помещений внутри склада. Вместо этого будем использовать Области хранения. Это позволит нам в рамках одного документа размещения распределить 300 единиц товара следующим образом:
Для этого в настройках склада (карточка склада) необходимо установить флаг Использовать адресное хранение (ячейки), но не разделять склад на помещения физически в справочнике.
Выясним, как заставить систему класть в витрину только одну единицу товара, если сам товар очень мелкий (например, линзы весом 2 грамма). Стандартный контроль по весу и объему здесь работает плохо из-за погрешностей и малых величин.
Рассмотрим алгоритм настройки:
Система при генерации размещения сначала попытается заполнить витрину. Как только объем ячейки будет исчерпан (даже одной единицей, если правильно настроены габариты упаковки и ячейки), программа перейдет к следующему приоритету.
Проанализируем стандартную логику отбора в УТ 11. При размещении система идет от 1-го приоритета к последнему. Но при отборе (продаже) программа часто пытается «очистить» склад и предлагает забрать товар из тех ячеек, которые имеют самый низкий приоритет размещения или специфический порядок обхода. В рознице это недопустимо: кассир должен брать товар из-под руки, а не идти на основной склад.
К сожалению, штатной настройки «Приоритет отбора» в разрезе областей хранения в старых версиях УТ 11 нет. Рассмотрим, как это решить программно. Нам потребуется вмешательство в общий модуль СкладыСервер в процедуру ПодобратьЯчейкиДляОтбора. Нам нужно изменить запрос так, чтобы он учитывал наш кастомный приоритет.
Посмотрим на пример модификации запроса (фрагмент логики):
// В процедуре ПодобратьЯчейкиДляОтбора меняем логику сортировки
// Добавляем выбор поля ПриоритетОтбора (который можно добавить в регистр сведений или область хранения)
Запрос.Текст =
"ВЫБРАТЬ
| ТоварыВЯчейкахОстатки.Ячейка,
| ТоварыВЯчейкахОстатки.Номенклатура,
| ТоварыВЯчейкахОстатки.Ячейка.УровеньДоступности КАК УровеньДоступности,
| ТоварыВЯчейкахОстатки.Ячейка.ПорядокОбхода КАК ПорядокОбхода
|ИЗ
| РегистрНакопления.ТоварыВЯчейках.Остатки КАК ТоварыВЯчейкахОстатки
|УПОРЯДОЧИТЬ ПО
| УровеньДоступности ВОЗРАСТ,
| ПорядокОбхода ВОЗРАСТ";
Важный момент: используйте реквизит УровеньДоступности у ячейки. Для ячеек в зоне продавца установите уровень 1, для склада — уровень 10. Тогда система при отборе (в штатном режиме без доработок кода) будет считать ячейки с уровнем 1 более «доступными» (близкими) и предложит их в первую очередь.
Выясним причину, по которой продажи через Чек ККМ не списывают товар из ячеек. В типовой УТ 11 адресный склад предполагает ордерную схему. Чек ККМ делает движение по регистру Товары на складах, но не по Товары в ячейках.
Рассмотрим варианты решения этой проблемы:
Отчет о розничных продажах, система может автоматически генерировать Расходный ордер и Отбор товаров. Однако это неудобно, так как фактические остатки в ячейках «зависают» до вечера.Чека ККМ программно создавать документ Отбор (размещение) товаров со статусом «Отобрано». Это мгновенно списывает товар из конкретной ячейки.Если вы решите внедрять ручной выбор ячейки в РМК, рассмотрите возможность добавления флага «Выбор ячейки вручную». При его активации должна открываться таблица с остатками в разрезе ячеек (из регистра ТоварыВЯчейках), чтобы кассир мог сам указать, откуда он фактически взял линзу, если автоподбор его не устраивает.
Часто возникает вопрос: почему при сканировании штрихкода ячейки в документе Реализация программа пишет «Номенклатура не найдена»? Проанализируем ситуацию: штрихкод ячейки формата Code 128 — это технический код. Программа ожидает увидеть штрихкод товара (EAN13 и др.).
Помните: сканирование ячейки работает только в специализированных формах (например, в окне проверки количества или в Мобильном рабочем месте кладовщика). Если вам нужно использовать штрихкоды ячеек в обычных документах, необходимо доработать процедуру ОбработкаВнешнегоСобытия, чтобы система сначала искала код в справочнике СкладскиеЯчейки, и только если не нашла — в номенклатуре.
Подведем итог: для успешной автоматизации адресного хранения мелкого товара в УТ 11 откажитесь от помещений, грамотно настройте уровни доступности ячеек и, при необходимости, внесите минимальные изменения в логику отбора в модуле СкладыСервер. Это обеспечит высокую скорость сборки заказов и актуальность остатков в торговом зале.