Как настроить считывание и печать этикеток для весового товара в «1С:Розница»?

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

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

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

Как устроен весовой штрихкод в «1С:Розница»

Для кодирования весовых товаров в розничной торговле применяется международный стандарт штрихкодов EAN-13. Давайте проанализируем структуру такого штрихкода, чтобы понять, как программа расшифровывает данные при сканировании:

2 + П + ЧЧЧЧЧ + ВВВВВ + К

Разберем назначение каждого символа в этой структуре:

  1. Цифра «2» — первый символ штрихкода. Согласно международным правилам, цифра 2 на первом месте означает, что штрихкод предназначен для внутреннего использования внутри торговой точки и не зарегистрирован в глобальной базе GS1.
  2. Символ «П» — префикс весового товара. Это цифра от 1 до 9, которая настраивается в программе. Например, если в качестве префикса выбрана цифра «1», то все весовые штрихкоды в вашей базе будут начинаться на «21». Если выбрана цифра «2» — то на «22».
  3. Символы «ЧЧЧЧЧ» (5 знаков) — это код товара в информационной базе 1С (также известный как SKU или код PLU). Именно по этим пяти цифрам программа находит конкретную номенклатурную позицию в вашей базе данных.
  4. Символы «ВВВВВ» (5 знаков) — это фактический вес товара в граммах. В системе 1С вес всегда считывается в тысячных долях (то есть в граммах). Например, если вес порции составляет 1 килограмм 250 грамм, в штрихкоде будет зашифровано значение 01250.
  5. Символ «К» — контрольная цифра штрихкода EAN-13. Она рассчитывается автоматически по специальному математическому алгоритму на основе предыдущих 12 цифр и служит для проверки корректности считывания сканером.

Таким образом, если мы закодируем товар с кодом SKU 00123 и весом 1 кг 450 г с использованием префикса 1, мы получим штрихкод вида: 210012301450К (где К — контрольный символ).

Шаг 1. Настройка распознавания весовых штрихкодов в «1С:Розница»

Для того чтобы кассовый модуль (РМК) при сканировании такого штрихкода не выдавал ошибку «Штрихкод не найден», а корректно распознавал номенклатуру и подставлял нужный вес в чек, выполним предварительную настройку системы. Проанализируем этот процесс по шагам:

  1. Перейдем в раздел Администрирование, выберем пункт Настройки номенклатуры и откроем подраздел Штрихкодирование.
  2. Установим флаг использования весовых штрихкодов и настроим длину и префиксы. По умолчанию для весового товара часто задается префикс 21 или 22.
  3. Настроим диапазоны кодов SKU для весовых товаров. Рекомендуется выделить для весового товара отдельный диапазон кодов (например, от 1 до 9999), чтобы коды штучных и весовых позиций не пересекались в системе.
  4. В карточке номенклатуры (для весовых позиций) обязательно укажем единицу измерения кг (килограммы) и установим признак Весовой.
  5. В карточке товара перейдем по ссылке Коды SKU (или PLU) и сгенерируем уникальный код для весов. Этот код должен попадать в ранее настроенный нами диапазон весовых кодов и состоять максимум из 5 символов.

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

Шаг 2. Решение проблемы печати весовых этикеток непосредственно из 1С

Как справедливо отмечают практикующие специалисты, стандартная обработка печати этикеток и ценников в «1С:Розница» не предназначена «из коробки» для генерации этикеток с динамическим весом. Давайте выясним причину этого ограничения.

В стандартном механизме 1С поле Количество в обработке печати этикеток указывает программе, сколько копий этикеток нужно распечатать на принтере. Оно принципиально не поддерживает дробные значения (нельзя напечатать 1.345 копии этикетки). Кроме того, стандартный генератор штрихкодов ищет штрихкод в регистре сведений ШтрихкодыНоменклатуры, где хранятся только статические (фиксированные) штрихкоды.

Тем не менее, существует три основных способа решить эту задачу в зависимости от ваших бизнес-процессов.

Вариант А. Использование упаковок (для фиксированной фасовки)

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

Вы можете настроить учет по следующему алгоритму:

  1. В карточке весового товара включим использование Упаковок (или дополнительных единиц измерения).
  2. Создадим упаковку «Пакет 200г» с коэффициентом 0.2 относительно базовой единицы (кг).
  3. Создадим упаковку «Пакет 500г» с коэффициентом 0.5.
  4. Для каждой созданной упаковки сгенерируем свой собственный штучный штрихкод (он будет начинаться на стандартный префикс штучного товара, например, на «20»).
  5. При фасовке вы просто выбираете в обработке печати этикеток нужную упаковку (например, «Пакет 200г») и печатаете обычные статические этикетки. На кассе при сканировании программа спишет ровно 200 или 500 грамм товара по его базовой цене.

Вариант Б. Использование внешних печатных форм или расширений (для динамического веса)

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

При таком подходе логика работы выглядит следующим образом:

  1. Фасовщик взвешивает кусок товара на обычных настольных весах.
  2. В специальной внешней обработке в 1С (которую можно заказать у программиста или скачать готовую) фасовщик выбирает нужный товар и вводит вес с экрана весов (или вес передается в форму автоматически, если весы подключены к компьютеру).
  3. Обработка программно генерирует строку весового штрихкода по стандарту EAN-13, вычисляет контрольный символ и отправляет этикетку на принтер.

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


Функция СформироватьВесовойШтрихкод(КодТовара, ВесВГраммах) Экспорт
    
    // Префикс весового товара в нашей базе
    Префикс = "21"; 
    
    // Форматируем код товара до 5 знаков, дополняя нулями слева
    КодСтрокой = Формат(КодТовара, "ЧЦ=5; ЧГ=0");
    КодСтрокой = СтрЗаменить(КодСтрокой, " ", "0");
    
    // Форматируем вес (в граммах) до 5 знаков, дополняя нулями слева
    ВесСтрокой = Формат(ВесВГраммах, "ЧЦ=5; ЧГ=0");
    ВесСтрокой = СтрЗаменить(ВесСтрокой, " ", "0");
    
    // Собираем первые 12 цифр штрихкода
    ШтрихкодБезКонтрольного = Префикс + КодСтрокой + ВесСтрокой;
    
    // Вычисляем контрольный символ EAN-13
    Четные = 0;
    Нечетные = 0;
    Для Инд = 1 По 12 Цикл
        Цифра = Число(Сред(ШтрихкодБезКонтрольного, Инд, 1));
        Если Инд % 2 = 0 Тогда
            Четные = Четные + Цифра;
        Иначе
            Нечетные = Нечетные + Цифра;
        КонецЕсли;
    КонецЦикла;
    
    Сумма = Нечетные + (Четные * 3);
    Остаток = Сумма % 10;
    КонтрольныйРазряд = ?(Остаток = 0, 0, 10 - Остаток);
    
    Возврат ШтрихкодБезКонтрольного + Строка(КонтрольныйРазряд);
    
КонецФункции

Эта функция формирует готовую строку из 13 символов, которую стандартная компонента печати штрихкодов 1С легко преобразует в графическое изображение штрихкода для термопринтера этикеток.

Вариант В. Подключение простых весов к рабочему месту кассира (РМК)

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

Для реализации этого сценария сделайте следующее:

  1. Приобретите простые настольные электронные весы, поддерживающие протокол обмена с компьютером (например, Штрих-М, CAS, Масса-К).
  2. Подключите весы к компьютеру кассира через USB или COM-порт и настройте их в 1С в разделе Подключаемое оборудование с типом «Электронные весы».
  3. На кассе при сканировании обычного штучного штрихкода товара (или при выборе весового товара в РМК вручную) система автоматически откроет окно взвешивания.
  4. Кассиру достаточно положить товар на весы и нажать кнопку «Получить вес» (или настроить автоматическое считывание при стабилизации веса). Вес мгновенно передается в программу, рассчитывается точная стоимость, и позиция добавляется в чек.

Этот способ является наиболее экономичным, так как исключает затраты на расходные материалы (ленты термоэтикеток) и экономит время на предварительную фасовку товара в подсобном помещении.

Резюме

Мы выяснили, что программа «1С:Розница» обладает мощным встроенным функционалом для работы со штрихкодированием весового товара. Главное — правильно настроить префиксы штрихкодов и диапазоны кодов SKU в настройках программы. Если вам требуется маркировать весовой товар заранее без использования специализированных весов с печатью этикеток, наилучшим решением будет использование несложного внешнего расширения для печати динамических этикеток или организация учета через механизм упаковок с фиксированным весом.

← На главную