Вариант интеграции с весами по com-порту через http-сервис

21.03.24

Интеграция - Весы

Демонстрируется вариант интеграции 1С с весами по com-порту через реализацию отдельного http-сервиса.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Чтение данных из сервиса работы с весами
.zip 10,33Kb
4
4 Скачать (1 SM) Купить за 1 850 руб.

Задача

На одном из проектов понадобилась интеграция 1С с напольными весами МИДЛ, работающими по com-порту, которые переведены в режим постоянной передачи данных, подключенной к Windows-системе. Решение, которое первое приходит в голову реализовать/найти соответствующую нативную компоненту под 1С. Однако, решил реализовать отдельный веб-сервис, в сторону этого подхода склоняло еще и то, что по сути работа с весами связана на 99% процентов со считыванием данных с порта, то есть тут взаимодействие с портом минимально. Таким образом, по факту нужен сервис, который просто будет считывать данные с порта и дальше выставлять их по http. Соответственно интеграция будет строиться через http-сервис.

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

Вариант решения

Необходимо реализовать службу, которая по http будет управлять com-портом и отдавать результат взвешивания. Служба реализовывалась на С#, беглый анализ примеров кода показал, что процесс считывания реализуется достаточно ясно, причем через встроенный в .Net класс SerialPort. Http-сервис так же реализуется через встроенный класс HttpListener, на текущий момент реализация простого http-сервиса практически на любом языке задача достаточно легко реализуемая. Примеров того и другого очень много, получивший вариант реализации можно увидеть на github, ниже описаны основные моменты:

Сервис будет принимать всего четыре команды, три Post - start, stop, reset и одна Get -  get.

  1. start - принимает в теле запроса строку вида "4;9600", где 4 - номер com-порта, 9600 - скорость работы с портом. Устанавливается соединение с портов на выходе в теле в виде строки результат;
  2. stop - не принимает параметры на входе, разъединяется соединение с портом;
  3. reset - не принимает параметры на входе, сбрасывает считанное значение в 0;
  4. get - возвращает в теле ответа последнее считанное значение из порта в виде строки.

Весы по умолчанию из сборки работают на 8119 порту.

Ключевые моменты реализации достаточно ясно и понятно воспринимаются, всю сложность скрывают внутренние библиотеки:

 
 чтение с порта
 
 http-сервис

 

Взаимодействие с 1С

Взаимодействие описывается через http-запросы, примеры ниже.

 
 Примеры

Если необходимо опрашивать с определенным интервалом весы, то необходимо подключать обработчик ожидания и использовать для получения значения асинхронные методы.

 
 Пример поллинга

 

Тестирование

Так как в момент реализации под рукой не было весов, разработка велась удаленно, то оказалось тестировать вполне можно тестировать функционал на сканере штрихкодов, которой работает через виртуальный com-порт, по факту принцип его работы такой же - считанное значение выставляет в порт, откуда его можно считывать. После, в тестовой эксплуатации, уже непосредственно на самих весах шло тестирование, решение отлично себя показало далее и в промышленной эксплуатации в связке с 1С: Комплексная автоматизация 2.5, конечно не обошлось без сюрпризов, весы иногда передавали значение, которое к числу невозможно преобразовать, но это уже решается на стороне 1С. Саму службу можно устанавливать через стандартную команду sc create.

 
 Установка службы

 

К публикации приложена обработка-пример и сборка, которая реализует взаимодействие с весами. Сам проект на github.

См. также

Весы Оптовая торговля Розничная торговля Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Драйвер электронных весов предназначен для подключения торговых весов фирмы CAS всех моделей, а также весов АТОЛ MARTA к различным конфигурациям 32-разрядной или 64-разрядной платформы 1С v.8.3. Драйвер разработан по стандарту "1С: Совместимо". Уникальность драйвера заключается в том, что он прост в подключении, надежен в работе и оптимален по цене.

2400 руб.

19.12.2017    69260    401    131    

145

Весы Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием Платные (руб)

Данная обработка позволяет настроить обмен с весами с печатью этикеток ШТРИХ-М серии PC-200 и 1С:Управление торговлей редакция 10. Может быть использована в 1С: Управление производственным предприятием 1.3 ,1С: Комплексная автоматизация 1.1, 1С: Розница 1.х. Универсальная обработка выгрузки номенклатуры для 1С:Розница редакция 2.3 использует типовой функционал "Правила обмена с подключаемым оборудованием offline" Обработка обслуживания весов с печатью этикеток ШТРИХ-М серии PC-200  для ДАЛИОН: Управление магазином 1.2.х Обработка выгрузки данных в весы с печатью этикеток ШТРИХ-М серии PC-200  для Штрих-М: Торговое предприятие 5.2.х Универсальная обработка выгрузки номенклатуры для 1С:Управление торговлей редакция 11 использует типовой функционал "Правила обмена с подключаемым оборудованием offline" Обработка обслуживания весов с печатью этикеток ШТРИХ-М серии PC-200  для ДАЛИОН: ТРЕНД, редакция 3.0

7800 руб.

04.12.2019    21804    74    36    

71

Весы Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Драйвер электронных весов Физтех Т11 (x86-64). Внешняя компонента Native API 1С. 1С Совместимо. Версия требований к разработке драйверов 3.9 Компонента предназначена для подключения к конфигурациям с БПО. Тестировалась на конфигурациях ERP, Управление нашей фирмой с БПО 3.2.2.25

3600 руб.

07.03.2024    828    1    0    

2

Весы Пользователь Платформа 1С v8.3 1С:Розница 2 Россия Абонемент ($m)

Обработка для работы с весами в программе Далион, которая использует бесплатный драйвер МАССА-К Driver-R.

3 стартмани

31.10.2024    137    0    Lichi001    0    

3

Весы Платформа 1С v8.3 1С:Управление торговлей 11 Россия Платные (руб)

Исправление ошибки нового драйвера весов Штрих-Принт (ШТРИХ-М:Весы с печатью этикеток ШТРИХ-ПРИНТ NG), когда пре выгрузки весового товара на весы он его выгружает как штучный. А так же исправление ошибки весов при выгрузки "Нет связи".

3600 руб.

15.10.2024    404    0    0    

1

Весы Программист Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 3.0 Абонемент ($m)

Предлагается пример создания рабочего файла, который понимает загрузчик loader для весов с печатью этикеток "Штрих-Принт".

3 стартмани

16.09.2024    548    1    aximo    1    

3
Оставьте свое сообщение