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

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

Каждый специалист по автоматизации розничной или оптовой торговли хотя бы раз сталкивался с загадочным поведением программы 1С, когда при сканировании штрихкода штучного товара в табличную часть документа (например, «Реализация товаров и услуг» или «Чек ККМ») подставляется странное дробное количество — например, 7,68 или 0,768 вместо ожидаемой единицы. На первый взгляд это кажется программным сбоем или ошибкой релиза, однако за таким поведением системы скрывается четкая и вполне логичная работа алгоритмов распознавания штрихкодов. В этой статье мы подробно разберем, почему возникает эта проблема, как устроены механизмы работы с весовым товаром в 1С:Управление торговлей 11 (УТ 11) и как по шагам исправить ситуацию.

Выясняем причину: как 1С распознает весовые штрихкоды

Для того чтобы понять суть проблемы, нам необходимо проанализировать стандарты кодирования товаров, используемые в торговле. Международная организация GS1 резервирует определенные диапазоны префиксов для внутреннего использования предприятиями. Штрихкоды стандарта EAN-13, начинающиеся с цифр от 20 до 29, не закреплены за конкретными производителями мирового уровня — их может использовать любая организация для маркировки собственной продукции внутри своего склада или магазина. Именно этот диапазон в 1С зарезервирован под внутренние штучные и весовые штрихкоды.

Давайте подробно рассмотрим структуру стандартного шаблона весового штрихкода в системе 1С:

2 + П + ХХХХХ + ВВВВВ + К

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

Почему проблема обостряется после переноса данных?

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

При этом в новой базе 1С:УТ 11 по умолчанию в настройках префиксов весовых товаров может быть установлена цифра 2 или 3. В результате возникает конфликт: при сканировании штучного товара, имеющего штрихкод типа 2201452076805, система сверяется с настройками префиксов и видит совпадение со структурой весового кода. Программа «думает», что перед ней весовая этикетка, распечатанная на весах с печатью этикеток, находит штучный товар с кодом 01452 и вычленяет из штрихкода вес — 07680, что в пересчете дает ровно 7,68 единиц товара.

Пошаговый алгоритм диагностики проблемы

Если вы столкнулись с ситуацией, когда сканер подставляет неверное количество, выполните следующие диагностические шаги вместе с нами:

  1. Возьмите упаковку проблемного товара и внимательно посмотрите на его штрихкод. Нам критически важны первые две-три цифры кода. Если штрихкод начинается на цифру 2 (например, 22..., 23..., 24...), мы имеем дело с внутренним штрихкодом.
  2. Проверьте карточку номенклатуры этого товара. Убедитесь, что единица хранения указана как «шт» (штуки), а сам товар не отмечен как весовой.
  3. Зайдите в настройки префиксов в вашей информационной базе 1С, чтобы определить, какие именно символы зарезервированы под весовой товар.

Способ решения №1. Если весовой товар на предприятии НЕ используется

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

  1. Перейдите в раздел главного меню НСИ и администрирование.
  2. В блоке Настройка НСИ и разделов выберите пункт Номенклатура.
  3. В открывшемся окне найдите и раскройте группу настроек Настройки создания.
  4. Найдите гиперссылку Настройка префиксов внутренних штрихкодов EAN 13 и нажмите на нее.
  5. Перед вами откроется таблица настройки префиксов. Вам необходимо очистить или изменить префиксы для весового товара. Убедитесь, что префиксы, используемые вашими штучными товарами (например, 22, 23), не указаны в качестве весовых префиксов.

Обратите внимание: в некоторых релизах конфигурации 1С, если к системе подключено оборудование в режиме offline, префиксы весового товара могут настраиваться непосредственно в правилах обмена. Для проверки перейдите в раздел РМК и оборудование (или Продажи), откройте Обмен с подключаемым оборудованием Offline и проверьте настройки используемых правил обмена.

Способ решения №2. Если штучный и весовой товар используются параллельно

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

Рассмотрим два варианта решения этого конфликта:

Вариант А: Перегенерация штрихкодов для штучных товаров

Это наиболее правильный с точки зрения методологии 1С подход. Общепринятым стандартом в 1С считается настройка префикса 20 для штучных внутренних штрихкодов, а префиксов от 21 до 29 — для весовых. Нам нужно настроить систему так, чтобы при генерации новых штрихкодов для штучного товара им присваивался код вида 20xxxxxxxxxxc. Все старые конфликтующие штрихкоды штучных товаров придется перегенерировать и распечатать новые этикетки.

Вариант Б: Корректировка префиксов весовых товаров

Если штрихкоды штучного товара пришли напрямую от производителя (такое случается, когда локальные фабрики маркируют штучный товар кодами из диапазона 22... или 23...) и перемаркировать их невозможно физически, придется пойти на компромисс в настройках программы. Вам потребуется изменить префиксы весовых товаров в 1С и на самих весах на те цифры, которые гарантированно не пересекаются со штрихкодами штучных товаров производителей. Например, если производители штучного товара используют коды на 22 и 23, настройте весовые префиксы на цифры 24, 25 или 28. Для гибкой настройки чтения кодов от поставщиков можно использовать модуль распознавания весовых штрихкодов с произвольными префиксами и масками.

Техническая реализация: программный анализ структуры штрихкода

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


Функция ПолучитьДанныеШтрихкода(Штрихкод, НастройкиПрефиксов) Экспорт
    
    Результат = Новый Структура("ЭтоВесовой, НоменклатураКод, Количество", Ложь, Неопределено, 1);
    
    // Проверяем длину штрихкода EAN-13
    Если СтрДлина(Штрихкод) <> 13 Тогда
        Возврат Результат;
    КонецЕсли;
    
    ПервыйСимвол = Лев(Штрихкод, 1);
    ВторойСимвол = Сред(Штрихкод, 2, 1);
    
    // Если код внутренний (начинается на 2)
    Если ПервыйСимвол = "2" Тогда
        
        // Проверяем, зарегистрирован ли второй символ как префикс весового товара
        Если НастройкиПрефиксов.ВесовыеПрефиксы.Найти(ВторойСимвол) <> Неопределено Тогда
            
            Результат.ЭтоВесовой = Истина;
            // Извлекаем код товара (символы с 3 по 7)
            Результат.НоменклатураКод = Сред(Штрихкод, 3, 5);
            
            // Извлекаем вес в граммах (символы с 8 по 12)
            СтрокаВеса = Сред(Штрихкод, 8, 5);
            ВесЧислом = Число(СтрокаВеса) / 1000; // перевод в килограммы
            
            Результат.Количество = ВесЧислом;
            
        КонецЕсли;
        
    КонецЕсли;
    
    Возврат Результат;
    
КонецФункции

Этот простой алгоритм наглядно показывает, почему штучный товар со штрихкодом 2201452076805 при установленном весовом префиксе 2 превращается в товар с кодом 01452 и количеством 7,68. Система просто берет подстроку 07680, преобразует ее в число и делит на 1000.

Заключение

Мы выяснили причину столь необычного поведения программы 1С:Управление торговлей 11 при сканировании штрихкодов. Проблема кроется исключительно в области пересечения диапазонов внутренних штрихкодов и некорректно настроенных весовых префиксов после переноса данных. Своевременное разделение диапазонов кодирования штучной и весовой номенклатуры позволит вашему предприятию избежать досадных ошибок при оформлении продаж и обеспечит корректный учет товарных остатков.

← На главную