Почему в 1С:Розница 2.3.18.13 не пробивается весовой товар по штрихкоду и как это исправить?

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

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

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

Решение 1: Установка официального исправительного патча (Рекомендуемый способ)

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

Название патча: EF_00_00616704_2

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

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

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

Решение 2: Переход на новое Рабочее Место Кассира (РМК)

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

Новое РМК обладает более современным интерфейсом и оптимизированными механизмами работы, включая обработку штрихкодов, что и позволило избежать проявления данной ошибки.

Для переключения на новое РМК выполните следующие действия:

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

Этот способ позволяет быстро восстановить работоспособность кассового узла без вмешательства в конфигурацию. При возникновении сопутствующих проблем с валидацией маркированной продукции на кассе может помочь обработка для оформления чеков ККМ без кода маркировки.

Решение 3: Временное программное исправление (для разработчиков)

Если нет возможности немедленно установить патч или перейти на новое РМК, а проблему нужно решить здесь и сейчас, можно применить временное исправление на уровне кода. Этот способ требует доступа к конфигуратору и навыков программирования.

Суть исправления: необходимо перехватить вызов стандартной функции обработки штрихкода в форме документа ЧекККМ и для весовых товаров принудительно изменить параметры сканирования, чтобы задействовать старый, работающий механизм.

Для этого необходимо создать расширение конфигурации и добавить в него заимствованную форму документа ЧекККМ. В модуле этой формы следует разместить следующий код:

Модуль формы документа ЧекККМ, обработка РМКУправляемыйРежим:


&Вместо("ОбработатьВводШтрихкода")
Функция ПрИС_Штрихкод_ОбработатьВводШтрихкода(ДанныеШтрихкода, КэшированныеЗначения, ПараметрыСканирования, ДополнительныеПараметры)

    // - если это весовой товар, то вызываем старый поиск по ШК
    Если ТипЗнч(ДанныеШтрихкода) = Тип("Структура") Тогда
        ШтрихКод = "";
        Если ДанныеШтрихкода.Свойство("ФорматBase64") И ДанныеШтрихкода.ФорматBase64 Тогда
            ШтрихКод = ШтрихкодированиеОбщегоНазначенияИСКлиентСервер.Base64ВШтрихкод(ДанныеШтрихкода.ШтрихКод);
        ИначеЕсли ДанныеШтрихкода.Свойство("ШтрихКод") Тогда
            ШтрихКод = ДанныеШтрихкода.ШтрихКод;
        КонецЕсли;

        // Проверяем префиксы весового товара ("21" или "22")
        Если Лев(ШтрихКод, 2) = "21" ИЛИ Лев(ШтрихКод, 2) = "22" И ТипЗнч(ПараметрыСканирования) = Тип("Структура") И ПараметрыСканирования.Свойство("РасширеннаяВерсияГосИС") Тогда
            // Отключаем параметр, который вызывает ошибку в данном релизе
            ПараметрыСканирования.РасширеннаяВерсияГосИС = Ложь;
        КонецЕсли;
    КонецЕсли;

    // Вызываем исходный обработчик с измененными (при необходимости) параметрами
    Результат = ПродолжитьВызов(ДанныеШтрихкода, КэшированныеЗначения, ПараметрыСканирования, ДополнительныеПараметры);
    
    Возврат Результат;

КонецФункции

Разберем логику кода:

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

← На главную