Возможно ли в 1С:Управление торговлей 11 привязать розничную цену к внутреннему штрихкоду?

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

В розничной торговле, особенно в магазинах с широким ассортиментом (хозяйственные товары, аптеки, строительные материалы), часто возникает ситуация, когда одна и та же номенклатура поступает от разных поставщиков по разным ценам. Чтобы не переоценивать остатки старых партий, владельцы бизнеса стремятся продавать товар по той цене, которая была установлена в момент приемки и указана на упаковке. Рассмотрим, как реализовать механизм связки Номенклатура + Внутренний штрихкод + Розничная цена в типовой конфигурации «1С:Управление торговлей 11» (УТ 11).

Почему нельзя просто привязать цену к штрихкоду?

Для начала проанализируем архитектуру хранения данных в 1С. В типовом решении УТ 11 регистр сведений ЦеныНоменклатуры хранит цены в разрезе объектов Номенклатура и ХарактеристикаНоменклатуры. Штрихкоды же хранятся в регистре ШтрихкодыНоменклатуры, где они также привязываются к номенклатуре, характеристике и упаковке. Напрямую связать запись о цене и запись о штрихкоде без привязки к ключевому измерению (товару или его свойству) невозможно.

Разберем основные способы решения этой задачи, начиная от штатных механизмов и заканчивая программными доработками.

Способ 1: Использование механизма характеристик (Штатный метод)

Это единственный полноценный способ реализовать требуемую логику без изменения программного кода конфигурации. Суть метода заключается в том, что каждая новая партия товара (с новой ценой) регистрируется как новая Характеристика.

Рассмотрим по шагам, как это настроить:

  1. Включение характеристик: В настройках номенклатуры (или вида номенклатуры) необходимо активировать использование характеристик. Рекомендуется использовать индивидуальные характеристики для каждого товара, если партии уникальны.
  2. Создание характеристики-партии: При поступлении товара создается новая характеристика, в наименовании которой указывается дата поступления или номер партии (например, «Партия от 01.05.2024»).
  3. Установка цены: С помощью документа Установка цен номенклатуры цена назначается не просто на товар, а на конкретную созданную характеристику.
  4. Регистрация штрихкода: Для этой же связки (Товар + Характеристика) генерируется или сканируется штрихкод. Поскольку характеристика уникальна для этой партии, штрихкод будет указывать именно на нее.

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

Способ 2: Использование серий с учетом себестоимости

Выясним, можно ли использовать Серии. В УТ 11 серии предназначены для складского учета (сроки годности, серийные номера). Если в политике учета серий выбрана настройка Учет себестоимости по сериям, то система будет разделять финансовые показатели разных серий. Однако, важно помнить: типовой механизм ценообразования в УТ 11 не поддерживает установку розничных цен в разрезе серий. Цены устанавливаются только на номенклатуру или характеристики. Поэтому использование серий без характеристик в данном случае не позволит автоматически подставлять розничную цену при сканировании.

Способ 3: Программная доработка через расширение

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

Рассмотрим логику реализации:

  1. Создаем новый регистр сведений ДополнительныеШтрихкодыЦен с измерениями Штрихкод и ресурсом Цена.
  2. В модуле обработки сканирования в РМК перехватываем событие ОбработкаШтрихкода.
  3. Если штрихкод найден в нашем новом регистре, программно подставляем цену в строку документа Чек ККМ.

Пример кода (схематично) для перехвата в расширении:


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

Проблема структуры штрихкода (EAN-13)

Автор в сообщении №8 упоминает формат 20ТТТТТТПППК. Разберем эту структуру: 20 — это префикс внутреннего штрихкода, Т — код товара, П — партия, К — контрольное число. В УТ 11 по умолчанию внутренние штрихкоды штучного товара имеют формат 2000000000000. Чтобы система «понимала» встроенную в штрихкод партию, необходимо:

Важные юридические и организационные моменты

Проанализируем ситуацию с точки зрения законодательства. В Российской Федерации (и ряде других стран СНГ) действуют правила торговли, согласно которым цена на одноименный товар в одном торговом зале должна быть одинаковой. Если покупатель увидит на полке два одинаковых молотка, один из которых стоит 500 рублей, а другой 600, это может стать поводом для жалобы в Роспотребнадзор.

Рекомендации по организации процесса:

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

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

← На главную