Как вести учет по уникальным штрихкодам для каждой коробки в 1С:Розница 2

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

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

Критический разбор идеи «Характеристика = Штрихкод» (Почему так делать нельзя)

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

Справочник ХарактеристикиНоменклатуры в системе 1С проектировался для ведения группового учета свойств. Например, у вас есть модель обуви «Ботинки мужские кожаные», и у нее есть характеристики: «Размер 42, Цвет Черный», «Размер 43, Цвет Коричневый». Количество таких комбинаций конечно и относительно невелико.

Если же вы попытаетесь под каждую физическую коробку создавать уникальную характеристику (например, «Штрихкод 1234567890123»), то столкнетесь со следующими проблемами:

  1. База данных мгновенно раздуется. При обороте всего в 10 000 пар обуви в год вы получите 10 000 уникальных характеристик в справочнике. Спустя несколько лет база превратится в неуправляемого «монстра».
  2. Критически упадет производительность. Все регистры накопления, хранящие остатки товаров (такие как ТоварыНаСкладах и ТоварыОрганизаций), хранят остатки в разрезе характеристик. Чем больше уникальных записей в этих таблицах, тем медленнее будут проводиться документы поступления, перемещения, чеки ККМ и тем дольше будут формироваться отчеты. Расчет себестоимости и проведение документов закрытия месяца начнут зависать.
  3. Будет разрушена аналитика продаж. Вы потеряете возможность стандартными средствами быстро посмотреть отчет о том, сколько всего синих кроссовок 42-го размера было продано за сезон, так как система будет воспринимать каждую проданную коробку как абсолютно уникальный товар с уникальной одноразовой характеристикой.

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

Штатное решение №1: Использование механизма серий номенклатуры

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

Рассмотрим по шагам, как правильно настроить учет по сериям в 1С:Розница 2:

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

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

Как устроен регистр сведений «Штрихкоды номенклатуры» при поштучном учете

Выясним, как именно 1С сопоставляет считанные штрихкоды с товарами. В системе за это отвечает независимый регистр сведений ШтрихкодыНоменклатуры. Его записи связывают текстовую строку (код со сканера) с объектами метаданных.

Когда вы используете механизм серий, запись в регистре выглядит следующим образом:

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

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


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

Штатное решение №2: Государственная маркировка (Честный Знак и Электронный Знак)

Современные реалии розничной торговли диктуют свои правила. Начиная с последних нескольких лет, в Российской Федерации (система «Честный Знак») и в Республике Беларусь (система «Электронный знак») введена обязательная государственная маркировка обуви и множества других групп товаров.

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

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

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

Автоматизация процессов склада и торгового зала при помощи ТСД

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

Рекомендуется использовать Терминалы сбора данных (ТСД) со специализированным программным обеспечением, которые легко интегрируются с базой данных 1С:

Резюме и рекомендации

Подведем итог нашему анализу. Если перед вами стоит задача организовать учет по уникальным штрихкодам каждой единицы товара в 1С:Розница 2, придерживайтесь следующих правил:

  1. Забудьте про характеристики для хранения индивидуальных кодов коробок. Это путь к полной потере работоспособности базы данных в краткосрочной перспективе.
  2. Если ваш товар подлежит обязательной государственной маркировке (обувь, одежда, парфюмерия, шины и т.д.), используйте штатный встроенный функционал интеграции с ГИС («Честный Знак» / «Электронный знак»). Это полностью решит вашу задачу без лишних настроек конфигурации.
  3. Если товар не маркируется государством, но вам жизненно необходим поштучный учет экземпляров — используйте встроенный механизм Серий номенклатуры с идентификацией экземпляров товаров. Начните со справочного указания серий, и только при наличии отлаженных процессов и дисциплинированного персонала переходите на жесткий учет остатков по сериям.
← На главную