Что делать, если в 1С:УТ 10.3 штрихкод не может быть обработан при сканировании?

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

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

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

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

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

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

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

  1. Откроем Конфигуратор и перейдем в меню «Отладка» — «Замер производительности».
  2. Переключимся в режим «Предприятие» (не закрывая окно замера в конфигураторе).
  3. Выполним действие, приводящее к ошибке: считаем проблемный штрихкод сканером.
  4. Как только появилось окно с ошибкой, вернемся в конфигуратор и снова выберем «Отладка» — «Замер производительности» (чтобы остановить запись).
  5. Перед нами откроется список всех процедур и функций, которые были выполнены за этот период.

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

Проблема «двойного сканирования» и настройка суффиксов

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

Разберем ситуацию: сканер после считывания ШК автоматически посылает символ возврата каретки (Enter, код 13). Если в настройках 1С (Сервис — Торговое оборудование — Настройка параметров) также указан суффикс #13, драйвер считает данные и передаст их в программу как событие «Внешнее событие», а затем система «поймает» нажатие клавиши Enter и попытается обработать те же самые цифры еще раз, как если бы они были введены пользователем вручную. В результате первый вызов находит товар, а второй (поскольку он идет мгновенно следом) вызывает ошибку, так как поле ввода уже очищено или занято.

Для решения этой проблемы попробуем выполнить следующие действия:

  1. Проверить настройки сканера в 1С и временно убрать суффикс.
  2. Сбросить настройки самого сканера к заводским с помощью управляющих штрихкодов из инструкции (обычно они называются «Reset to Factory Defaults»).
  3. Настроить сканер так, чтобы он не добавлял символ перевода строки (суффикс) самостоятельно, либо наоборот — настроить 1С только на перехват суффикса.

Влияние таймаута и драйвера ScanOPOS

Посмотрим на проблему с точки зрения скорости передачи данных. В настройках драйвера 1С (ScanOPOS) есть параметр «Чувствительность» или «Таймаут». Если сканер передает символы штрихкода с небольшой задержкой, драйвер может решить, что передача закончена раньше времени, и «разрезать» штрихкод на две части. Первая часть кода не будет найдена в базе, что приведет к ошибке.

Попробуем увеличить таймаут в настройках торгового оборудования до 50–100 мс. Это позволит драйверу дождаться всех символов штрихкода перед тем, как передать их в 1С.

Также не стоит забывать о версии драйвера. Старые конфигурации УТ 10.3 наиболее стабильно работают с версиями драйвера 8.0.8.4. Если вы недавно обновляли систему или устанавливали новые компоненты, возможно, стоит выполнить перерегистрацию библиотеки scanopos.dll через командную строку:


regsvr32 "C:\PathToFolder\scanopos.dll"

Раскладка клавиатуры и невидимые символы

Еще один важный момент, который мы должны рассмотреть — это раскладка клавиатуры Windows. Если сканер работает в режиме эмуляции клавиатуры, текущий язык ввода (RU/EN) критически важен. Даже если штрихкод состоит только из цифр, некоторые драйверы некорректно обрабатывают префиксы в русской раскладке.

Проанализируем чистоту передаваемых данных. Попробуем открыть обычный «Блокнот» и считать штрихкод туда. Если перед кодом появляется пробел, невидимый символ или курсор сразу перепрыгивает на две строки вниз — значит, в самом сканере запрограммированы лишние префиксы или суффиксы, которые мешают поиску в 1С. Программа ищет строку "2000000012345", а получает " 2000000012345" (с пробелом в начале), что предсказуемо заканчивается ошибкой поиска.

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

← На главную