В процессе автоматизации розничной торговли часто возникает ситуация, когда физические дисконтные карты уже напечатаны и выданы клиентам, но при сканировании в программе 1С они не распознаются автоматически. Наша задача — сделать так, чтобы при «пропикивании» карты в документе Чек ККМ программа мгновенно находила соответствующую Информационную карту, подставляла владельца и рассчитывала скидку. Разберем пошагово, как настроить эту связку в конфигурации Управление торговлей 10.3.
Первым делом проанализируем работу самого сканера. Часто бывает так, что в «Тесте устройства» код считывается, но в документе ничего не происходит. Причина кроется в отсутствии суффикса. Суффикс — это специальный символ, который сканер отправляет в систему сразу после штрихкода, сообщая программе, что ввод данных завершен.
Для корректной работы 1С:Предприятие 8 стандартным суффиксом является символ #13 (возврат каретки, CR). Проверим настройки:
13 или #13.Если суффикс настроен неверно, 1С не получит сигнал об окончании ввода и не инициирует процедуру поиска карты в базе данных.
Выясним причину, по которой система может путать дисконтную карту с обычным товаром. В 1С:УТ 10.3 существует механизм разделения штрихкодов по префиксам. Рассмотрим, где это настраивается:
Обычно для дисконтных карт используют префикс, начинающийся на цифру 2 (например, 22). Если штрихкод на вашей физической карте начинается с этих цифр, система автоматически поймет, что перед ней карта, а не товарный штрихкод (EAN-13). Важно: этот префикс не должен совпадать с префиксом весового товара, иначе возникнет конфликт при подборе позиций в чек.
Теперь перейдем непосредственно к справочнику ИнформационныеКарты. Проанализируем правильность заполнения карточки:
Для привязки физического кода к этой карточке, установим курсор в поле Код карты и просто считаем штрихкод сканером. Если сканер настроен правильно (см. Шаг 1), поле заполнится автоматически цифрами штрихкода. После этого нажмем ОК для записи.
В некоторых случаях или доработках конфигурации штрихкоды могут храниться в отдельном регистре. Проверим этот вариант, если стандартная привязка в карточке не срабатывает. Рассмотрим, как добавить запись вручную:
Перейдем в Операции — Регистры сведений — Штрихкоды. Создадим новую запись, где:
Информационную карту.Это гарантирует, что при поиске по всей базе система однозначно свяжет считанный код с конкретным объектом справочника.
Проанализируем ситуацию непосредственно на рабочем месте кассира. При открытом документе Чек ККМ сканирование карты должно приводить к заполнению поля Дисконтная карта в нижней части формы или на закладке «Продажа».
Если автоматическое подтягивание не происходит, попробуем выполнить следующие действия:
Если через F7 карта находится, а при простом сканировании — нет, значит, проблема в Внешнем событии сканера. Это подтверждает необходимость перевода сканера в режим Virtual COM. В режиме эмуляции клавиатуры сканер просто «печатает» цифры в то поле, где стоит фокус, а 1С ожидает специального события от драйвера для автоматической обработки кода карты.
Если вы хотите программно проверить, как система ищет карту, можно посмотреть в модуль формы документа ЧекККМ, процедура ВнешнееСобытие. Логика поиска обычно выглядит следующим образом:
Процедура ОбработкаШтрихкодов(ДанныеШтрихкода)
// Поиск в справочнике ИнформационныеКарты по коду
Карта = Справочники.ИнформационныеКарты.НайтиПоРеквизиту("КодКарты", ДанныеШтрихкода);
Если Не Карта.Пустая() Тогда
// Подстановка карты в документ
ДисконтнаяКарта = Карта;
ПриИзмененииДисконтнойКарты();
КонецЕсли;
КонецПроцедуры
Подводя итог, отметим: для того чтобы дисконтная карта «подтягивалась» автоматически, необходимо обеспечить три условия: правильный суффикс сканера, наличие префикса карты в настройках учета и корректно заполненный справочник Информационные карты с типом «Штрихкодовая».