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

21.03.24

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

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

Скачать исходный код

Наименование Файл Версия Размер
Чтение данных из сервиса работы с весами
.zip 10,33Kb
2
.zip 10,33Kb 2 Скачать

Задача

На одном из проектов понадобилась интеграция 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.

См. также

Обработка обслуживания весов с печатью этикеток ШТРИХ-М серии PC-200 для УТ 10.х

Весы Платформа 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    21008    71    35    

67

Драйвер для подключения электронных весов CAS и АТОЛ MARTA к 1Сv8.3

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

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

2400 руб.

19.12.2017    67664    376    124    

133

Подключение старых весов ШТРИХ-ПРИНТ 4.5 к 1С: Розница 2.3+

Весы Платформа 1С v8.3 1С:Розница 2 Россия Бесплатно (free)

Подключение старых весов ШТРИХ-ПРИНТ 4.5 к 1С: Розница 2.3+ без внешних обработок и доработок.

17.04.2024    306    Archidemon    1    

2

Драйвер электронных весов Физтех Т11. Внешняя компонента Native API 1С (x86-64)

Весы Платформа 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    477    0    0    

0

Работа с весами CAS через бесплатный драйвер

Весы Управляемые формы 1С:Розница 2 Розничная и сетевая торговля (FMCG) Абонемент ($m)

Расширение для работы с весами CAS (AD, AP, CS, ER, ER jr) через бесплатный драйвер.

1 стартмани

28.02.2024    458    12    vet25    0    

5

Выгрузка товаров в весы Масса-К (УНФ 3.0)

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

Альтернативная выгрузка товаров в весы Масса-К для конфигураций Розница 3.0 и УНФ 3.0.

3 стартмани

05.02.2024    303    1    a_kudaev    1    

2

Решение проблемы с оборудованием Штрих-М:Весы с печатью этикеток ШТРИХ-ПРИНТ в конфигурации Розница

Весы Платформа 1С v8.3 1С:Розница 2 Бесплатно (free)

В конфигурации Розница 2.3 (2.3.17.15 и ранее), перестали работать драйверы весов Штрих-М:Весы с печатью этикеток ШТРИХ-ПРИНТ. Решаем проблему!

08.12.2023    778    44    gubar    1    

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