Как настроить быстрый поиск документов по штрихкоду в 1С:Управление торговлей 11?

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

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

Принцип работы штрихкодирования в 1С

Прежде всего, проанализируем, что именно печатает 1С на документах. Штрихкод, генерируемый системой, обычно использует стандарт Code128. В нем зашифрован внутренний уникальный идентификатор (GUID) объекта и информация о типе метаданных. Именно поэтому код получается длинным (например, 69139359702909829136424172778088819450). Для того чтобы программа поняла, что считанный набор цифр — это ссылка на документ, необходимо выполнение двух условий: правильно настроенное оборудование и корректно работающий обработчик событий в коде формы.

Различия в режимах работы сканера: HID против COM

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

  1. Режим клавиатуры (USB HID): Сканер работает как обычное устройство ввода. При считывании кода он просто "печатает" цифры в то поле, где стоит курсор. Если у вас открыт список документов, 1С воспримет это как обычный поиск по текущей колонке. Это не всегда удобно, так как требует установки фокуса в нужное поле.
  2. Режим эмуляции COM-порта (или NativeApi): Это предпочтительный вариант. Сканер посылает данные напрямую в драйвер 1С. Программа перехватывает это внешнее событие и запускает процедуру поиска документа по всей базе, независимо от того, где находится курсор.

Если вы используете HID-режим, для имитации работы COM-порта часто требуется программировать сканер на передачу префикса F7. В 1С нажатие F7 традиционно открывает окно поиска, куда сканер затем вставляет штрихкод.

Настройка рабочего места (РМК) и оборудования

Выясним основную причину, по которой поиск может не срабатывать даже при наличии сигнала от сканера. В 1С существует привязка оборудования к Рабочему месту (РМК). Если настройки сканера были созданы на одном компьютере (или под другим сетевым именем), а вы пытаетесь работать на другом, система может некорректно интерпретировать сигналы.

Решение проблемы через пересоздание РМК:

  1. Перейдите в раздел "Администрирование" — "РМК и оборудование".
  2. Проверьте справочник "Рабочие места". Убедитесь, что ваше текущее рабочее место соответствует имени компьютера в сети.
  3. Если возникают ошибки с COM-объектом, попробуйте удалить текущую настройку сканера и создать ее заново именно для того рабочего места, которое активно в данный момент.
  4. Убедитесь, что при старте сеанса 1С автоматически подключает оборудование. Если РМК отсутствует или настроено неверно, обработка оповещения не будет инициирована.

Настройка суффиксов и тестирование связи

Проанализируем технические параметры драйвера. Для того чтобы 1С поняла, что ввод данных завершен, сканер должен передавать специальный символ — суффикс. Чаще всего используется CR (возврат каретки, код 13).

Посмотрим, как проверить настройки:

  1. Зайдите в настройки драйвера сканера в 1С.
  2. Нажмите кнопку "Тест устройства".
  3. Считайте штрихкод. Если в окне теста вы видите данные, но курсор не переходит на новую строку, значит, суффикс не настроен.
  4. Установите суффикс 13 (CR). В некоторых случаях для определенных моделей сканеров (например, BurstScan) может потребоваться специфическая таблица символов.

Программная обработка события сканирования

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


&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
    // Проверка, что событие пришло именно от подключаемого оборудования
    Если Источник = "ПодключаемоеОборудование" И ВводДоступен() Тогда
        Если ИмяСобытия = "ScanData" И МенеджерОборудованияУТКлиент.ЕстьНеобработанноеСобытие Тогда
            // Преобразование данных и вызов поиска
            СтруктураШтрихкода = МенеджерОборудованияУТКлиент.ПреобразоватьДанныеСоСканераВСтруктуру(Параметр);
            ОбработатьШтрихкоды(СтруктураШтрихкода);
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Если вы являетесь разработчиком, рекомендуем поставить точку останова в методе ОбработатьШтрихкоды. Если при сканировании отладчик не останавливается на этой строке, значит, событие ScanData не генерируется драйвером или не доходит до формы.

Особенности работы в терминальном режиме (RDP)

Если ваша база 1С развернута на сервере, а вы подключаетесь через RDP, проанализируем следующие моменты:

Итоговый алгоритм проверки

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

  1. Проверьте в текстовом редакторе (Блокноте): сканируется ли код и переходит ли курсор на новую строку (проверка суффикса).
  2. В 1С проверьте "Тест устройства": убедитесь, что драйвер видит данные.
  3. Проверьте РМК: создайте новую настройку оборудования именно для текущего сеанса.
  4. Используйте NativeApi драйвер: откажитесь от устаревших COM-драйверов, если платформа (8.3.16+) это позволяет.
  5. Убедитесь в наличии суффикса CR (13): без него драйвер не закроет транзакцию ввода данных.

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

← На главную