При автоматизации розничной торговли весовым товаром в супермаркетах владельцы бизнеса и товароведы часто сталкиваются с проблемой удобства поиска позиций на электронных весах. Когда ассортимент расширяется, найти нужный товар (например, конкретный сорт яблок или томатов) по списку становится трудно. Возникает логичное желание: упорядочить коды весового товара (PLU-коды) по категориям. Например, выделить диапазон 1–20 для фруктов, 21–40 для овощей и так далее.
Однако при добавлении нового товара возникает дилемма: что делать, если код внутри диапазона уже занят? Можно ли настроить систему так, чтобы принудительно сдвигать последующие коды на +1? В этой статье мы подробно разберем, почему динамический сдвиг кодов в реальном ритейле категорически противопоказан, какие технические проблемы он за собой влечет, и рассмотрим профессиональные методы организации весовых кодов в программе «1С:Управление торговлей 10.3» при работе с весами «Масса-К» и CAS.
---
Давайте проанализируем ситуацию, предложенную автором темы: в системе создан новый весовой товар, которому присваивается код 31. При этом старый товар с кодом 31 (например, помидор) автоматически смещается на код 32, товар с кодом 32 — на 33, и так далее по цепочке. На первый взгляд это кажется удобным решением для поддержания строгого порядка на весах. Но на практике такая схема моментально парализует работу кассовой зоны.
Выясним причину, почему так происходит:
---
Чтобы понять, как правильно связать 1С и весовое оборудование, рассмотрим структуру формируемого весами штрихкода формата EAN-13. Типовой шаблон весового штрихкода выглядит следующим образом:
2X TTTTT WWWWW C
2X (например, 21, 22, 28) — это префикс весового товара. По этим первым цифрам кассовая программа определяет, что перед ней не штучный штрихкод производителя, а локальный весовой код, который нужно декодировать особым образом.TTTTT (обычно 5 символов) — это и есть уникальный PLU-код (код товара в весах), выгруженный из 1С.WWWWW (5 символов) — вес товара в граммах. Например, значение 01450 означает вес 1 кг 450 грамм.C — контрольная контрольная цифра стандарта EAN-13, рассчитываемая автоматически.Если префиксы весового товара в настройках параметров учета 1С и во внутреннем программном обеспечении весов («Масса-К» или CAS) не будут совпадать до единого символа, касса просто не сможет распознать отсканированный штрихкод и выдаст ошибку «Товар не найден».
---
Самый простой и эргономичный способ облегчить работу продавцам или покупателям на электронных весах — это использование клавиш быстрого вызова (горячих клавиш). Современные весы «Масса-К» поддерживают программирование физических или сенсорных кнопок быстрого доступа.
При таком подходе вам абсолютно не важно, какой именно внутренний PLU-код присвоен товару в базе 1С — это может быть и 5, и 347, и 1205. При выгрузке номенклатуры в весы в настройках обмена задается соответствие между товаром и физической клавишей весов. Продавец на фасовке нажимает кнопку «Бананы» (которая жестко привязана к кнопке №1), а весы автоматически находят в своей памяти товар с кодом 347, взвешивают его и печатают корректный штрихкод. Физическая раскладка товаров на весах может гибко меняться без изменения реальных кодов PLU в товароучетной системе.
---
Если специфика вашего магазина требует ввода кодов вручную на клавиатуре весов (без использования горячих клавиш), наилучшим выходом будет внедрение системы блочного резервирования числовых диапазонов с большим запасом.
Давайте разберем этот метод по шагам:
---
Для автоматизации распределения кодов по диапазонам программисты 1С используют алгоритмы генерации кодов на основе кодов номенклатурных групп. Рассмотрим пример реализации такой логики.
Пусть весовой код формируется как число по следующей формуле:
ВесовойКод = (КодГруппы * Коэффициент) + ПорядковыйНомерВГруппе
Где Коэффициент — это максимально возможное количество товаров в одной группе (например, 100).
Проанализируем пример: у нас есть группа «Овощи» с кодом группы 2. Мы добавляем в нее новый товар, который по порядку становится 5-м в этой группе. Расчет кода:
ВесовойКод = (2 * 100) + 5 = 205
Ниже представлен пример кода на языке 1С, который реализует функцию автоматического расчета нового PLU-кода при записи карточки товара:
Функция РассчитатьНовыйВесовойКод(НоменклатурнаяГруппаСсылка, ПорядковыйНомер) Экспорт
КодГруппыЧислом = Число(НоменклатурнаяГруппаСсылка.Код);
МаксТоваровВГруппе = 100; // Наш шаг резервирования
// Рассчитываем уникальный числовой PLU
НовыйPLU = (КодГруппыЧислом * МаксТоваровВГруппе) + ПорядковыйНомер;
Возврат НовыйPLU;
КонецФункции
---
<p.Рассмотрим, как технически реализован механизм весовых кодов в типовой конфигурации 1С:УТ 10.3. За хранение кодов отвечает регистр сведений «Коды товаров подключаемого оборудования offline».
Перейдем в настройки параметров учета системы (меню «Сервис» -> «Настройка учета» -> «Параметры учета», вкладка «Коды товаров»). Здесь доступны два основных режима генерации:
Номенклатура. Это наиболее удобный вариант для настройки диапазонов.Практический лайфхак по настройке диапазонов:
Если вы выбрали вариант генерации «По коду номенклатуры», вы можете создать «граничные» карточки товаров. Например, если вы хотите, чтобы обычные штучные товары автоматически получали коды только начиная с 10 000 (освобождая диапазон 1–9999 исключительно под весовые PLU), создайте в системе технический товар с кодом 10000. 1С зафиксирует этот номер, и все последующие штучные товары будут автоматически создаваться с кодами 10001, 10002 и далее. Диапазон до 10 000 останется в вашем полном распоряжении для ручного распределения весовых кодов.
Для периодической очистки неиспользуемых кодов (возникающих при удалении старых карточек товаров) рекомендуется использовать внешнюю обработку перенумерации кодов весовых товаров, запускать которую следует исключительно в санитарные часы, когда магазин закрыт и все данные на весах могут быть гарантированно перезаписаны с нуля.