Проблема подключения торгового оборудования к 1С:Розница 2.2 часто упирается в отсутствие бесплатных или качественных драйверов. Особенно остро этот вопрос стоит для популярных весов серии CAS ER-JR. Официальные представители часто предлагают платные компоненты или демо-версии с ограниченным функционалом. В этой статье мы подробно разберем, как можно подключить весы CAS бесплатно, используя штатные возможности 1С, стандартные протоколы и альтернативные методы настройки.
Рассмотрим наиболее современный и «чистый» способ интеграции. Многие администраторы забывают, что компания CAS выпускает бесплатные драйверы стандарта OPOS. В современных конфигурациях 1С (начиная с Розницы 2.2) встроена поддержка универсального драйвера 1С:Электронные весы (OPOS).
Разберем этот процесс по шагам:
OPOS Scale Setup).CAS_Scale.CAS_Scale.Этот метод позволяет работать с весами без покупки лицензий у сторонних разработчиков драйверов.
Проанализируем технические особенности весов CAS ER-JR. Данная модель поддерживает несколько протоколов передачи данных, которые можно переключить в сервисном меню весов (параметр Set). Самый распространенный — протокол AD.
В этом режиме весы постоянно транслируют текущий вес в COM-порт. Для работы с этим потоком данных можно использовать старые бесплатные версии драйверов от Штрих-М или АТОЛ (версии 6.x), которые поддерживали протоколы конкурентов. Однако стоит помнить, что найти такие дистрибутивы сейчас становится все сложнее.
Если нам нужно просто получать вес в РМК (рабочее место кассира) и мы не хотим использовать специализированные драйверы весов, воспользуемся нестандартным, но эффективным методом. Суть заключается в том, что весы в режиме Stream Mode отправляют текстовую строку.
Посмотрим, как реализовать этот алгоритм:
Теперь 1С будет воспринимать входящие данные от весов как «штрихкод». Чтобы превратить этот штрихкод в значение веса, нам потребуется небольшая доработка в модуле формы или в модуле менеджера оборудования. Проанализируем пример кода для обработки такого события:
// В процедуре обработки внешнего события от сканера
Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
Если Источник = "ИмяНашегоКомПортаВесов" Тогда
// Очищаем полученную строку от лишних символов (единиц измерения, префиксов)
// Обычно строка выглядит как " 0.500 kg"
ЧистыйВесСтрокой = СтрЗаменить(Данные, "kg", "");
ЧистыйВесСтрокой = СокрЛП(ЧистыйВесСтрокой);
Попытка
ТекВес = Число(ЧистыйВесСтрокой);
// Устанавливаем вес в текущую строку чека
Элементы.ТабличнаяЧастьТовары.ТекущиеДанные.Количество = ТекВес;
Исключение
Сообщить("Ошибка распознавания данных с весов!");
КонецПопытки;
КонецЕсли;
КонецПроцедуры
Этот метод полностью бесплатен и не зависит от внешних DLL, требующих лицензирования.
Выясним причину, по которой даже бесплатные утилиты (например, APTest) могут не видеть весы. Часто проблема кроется в кабеле RS-232. Для весов CAS ER-JR требуется специальная распиновка. Стандартный «компьютерный» кабель может не подойти.
Распиновка кабеля CAS (DB9F - DB9F):
Без правильной распайки (Cross-link) передача данных не начнется, какой бы драйвер вы ни использовали.
Если вы обладаете навыками программирования, можно рассмотреть вариант написания простейшего COM-объекта или использования готовых скриптов на Python/C#. Скрипт опрашивает порт и сохраняет значение веса в текстовый файл или отдает по HTTP-запросу. 1С в свою очередь считывает этот файл или обращается к локальному адресу. Это позволяет избежать проблем с привязкой лицензий к «железу» компьютера, о чем упоминалось на форумах.
Для подключения весов CAS к 1С:Розница 2.2 без лишних затрат рекомендуем сначала попробовать OPOS-драйвер от производителя. Если это кажется сложным, метод с эмуляцией сканера штрихкода является самым надежным и «бессмертным» решением, так как он использует только встроенные механизмы платформы 1С.