Процесс подключения весов китайского производства, таких как Rongta RLS 1000, RLS 1100A или RLS 1100B, к программным продуктам на базе 1С (включая вопросы организации рабочего места фасовщика) часто вызывает затруднения. Основная причина заключается в отсутствии этих моделей в стандартном списке сертифицированного оборудования «1С:Совместимо». Тем не менее, решение существует, и оно основано на использовании внешних компонент и специализированного ПО от производителя. Рассмотрим подробно, как наладить связь между весами и 1С.
Прежде чем приступать к настройкам в 1С, нам необходимо убедиться, что сами весы корректно настроены в локальной сети. Разберем этот этап по шагам:
192.168.1.87. Нам нужно изменить его на адрес, соответствующий вашей подсети. Это делается либо через меню самих весов, либо с помощью официальной утилиты RTPLU (или RLS1000 Setup Tool).ping с рабочего места, где установлена 1С, на IP-адрес весов. Если отклик есть, физический уровень связи настроен.Поскольку типового драйвера в составе «Библиотеки подключаемого оборудования» (БПО) нет, проанализируем доступные варианты интеграции:
Вариант 1: Использование специализированного драйвера сторонних разработчиков. Этот метод схож с проверенной схемой по работе с весами CAS через бесплатный драйвер. Существует готовое решение (например, от компании Arkad), которое представляет собой внешнюю компоненту, написанную по стандартам БПО. Это самый простой путь, так как после установки драйвера весы появятся в списке доступного оборудования в 1С:Розница или 1С:УНФ.
Вариант 2: Использование компоненты RTScaleDrv.dll. Подобная программная интеграция реализована и в решении выгрузка в весы DIGI. Это путь для программиста. Производитель предоставляет библиотеку RTScaleDrv.dll, которую можно зарегистрировать в системе и обращаться к ней через 1С. Рассмотрим пример кода для инициализации связи:
// Пример создания объекта для работы с весами
Попытка
ЗагрузитьВнешнююКомпоненту("RTScaleDrv.dll");
ВесыОбъект = Новый("AddIn.RTScaleDrv.Scale");
ВесыОбъект.IpAddress = "192.168.1.100";
ВесыОбъект.Port = 5000;
Исключение
Сообщить("Не удалось загрузить компоненту Rongta!");
КонецПопытки;
Если мы используем современную конфигурацию (например, 1С:Розница 2.3 или 3.0), нам необходимо выполнить следующие действия:
Часто пользователи сталкиваются с ситуацией, когда тест проходит успешно, но при попытке выгрузить товары 1С «зависает». Проанализируем причины этого поведения:
Ошибка синхронизации таймаутов: Программа отправляет данные в весы и ждет подтверждения получения каждого пакета. Если сетевой экран (брандмауэр) блокирует обратные пакеты или таймаут в настройках драйвера слишком мал, 1С входит в состояние бесконечного ожидания. Выясним причину, временно отключив защитное ПО и увеличив параметр Timeout в настройках подключения до 5000–10000 мс.
Проблема с разрядностью платформы: Обратите внимание, что многие старые драйверы Rongta являются 32-битными (x86). Если ваша платформа 1С запущена в 64-битном режиме, компонента может работать нестабильно. Рекомендуем использовать 32-битный клиент 1С для работы с торговым оборудованием такого типа.
Лимиты кодов PLU: Весы имеют ограниченную память. Если в 1С у товара установлен код PLU (код для весов), превышающий значение 9999 или 10000 (в зависимости от модели), контроллер весов может выдать ошибку, которую драйвер не сможет корректно обработать, что приведет к зависанию интерфейса.
Рассмотрим логику формирования данных для весов. Обычно выгрузка происходит через метод ВыгрузитьТовары(). Важно проконтролировать, чтобы передаваемая структура содержала обязательные поля: Код, Наименование, Цена, СрокГодности. Посмотрим на структуру подготовки данных:
// Подготовка таблицы товаров для передачи в драйвер
ТаблицаТоваров = Новый ТаблицаЗначений;
ТаблицаТоваров.Колонки.Добавить("PLU", Новый ОписаниеТипов("Число"));
ТаблицаТоваров.Колонки.Добавить("Name", Новый ОписаниеТипов("Строка"));
ТаблицаТоваров.Колонки.Добавить("Price", Новый ОписаниеТипов("Число"));
Для Каждого СтрокаИзСписка Из ВыбранныеТовары Цикл
НоваяСтрока = ТаблицаТоваров.Добавить();
НоваяСтрока.PLU = СтрокаИзСписка.КодДляВесов;
НоваяСтрока.Name = СтрокаИзСписка.Номенклатура.Наименование;
НоваяСтрока.Price = СтрокаИзСписка.Цена;
КонецЦикла;
// Вызов метода драйвера
Результат = ОбъектДрайвера.ВыгрузитьДанные(ПараметрыПодключения, ТаблицаТоваров);
Если Не Результат Тогда
Сообщить("Ошибка выгрузки: " + ОбъектДрайвера.ОписаниеОшибки);
КонецЕсли;
Подводя итог, можно сказать, что весы Rongta RLS 1000 вполне работоспособны в среде 1С, если соблюсти несколько условий. Во-первых, обязательно используйте внешнюю компоненту, адаптированную под БПО. Во-вторых, тщательно следите за уникальностью и диапазоном кодов PLU в справочнике «Номенклатура» (поможет инструмент контроля реквизитов номенклатуры для весов). И наконец, всегда проверяйте версию прошивки весов через утилиту производителя — иногда обновление микрокода решает проблемы со стабильностью связи по протоколу TCP/IP.