Онлайн режим обработчиков Simple через шину c веб-сокетами на 1С 8.3.27. И пара полноценных конфигураций-примеров для 1С БП 3 и 1С УТ 11

07.02.25

Разработка - Мобильная разработка

В Simple появился еще один онлайн-режим, не через REST-API, а через веб-сокеты. Показываю, что это дает, ради чего было сделано. А также два чисто онлайновых примера с такими обработчиками еще и с использованием новой ActiveCV 2.0. Дополнение к основной статье https://infostart.ru/1c/tools/1153616/

Скачать файл

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

Наименование По подписке [?] Купить один файл
Расширение для БП3: Инвентаризация ОС онлайн с OCR
.zip 438,69Kb
3
3 Скачать (1 SM) Купить за 1 850 руб.
Расширение для УТ11: Приемка онлайн
.zip 438,34Kb
4
4 Скачать (1 SM) Купить за 1 850 руб.

Для чего нужно?


Задачи, которые ставятся перед такой архитектурой:

  1.     Возможность не публиковать 1С HTTP-сервис во внешний интернет. Вместо этого публикуется маленький скрипт, по желанию - либо на собственном сервере/компьютере, либо на VPS. Это позволяет работать даже тем клиентам, у кого нет ни серверной 1С, ни как такового сервера, при этом не нужно выносить данные в облако. Безопасность остается на уровне.
  2.     Повышение производительности за счет архитектуры и технологии. Отзывчивость таких запросов значительно выше, чем у HTTP-запроса, за счет того, что не нужно устанавливать соединение. Также архитектура выполнения обработчиков не синхронная, как в случае обычного online, а всегда асинхронная, что позволяет разгрузить приложение.Можно разгрузить бек систему за счет распределения нагрузки на шину
  3.     Приложение может работать с бесконечным количеством серверов, либо распределенных серверов


Как это работает?

 


1.    Публикуется скрипт «шина». Для целей именно обработчиков полноценная шина SimpleBus не нужна, поэтому я сделал упрощенный скрипт из полутора сотен строчек. Оттуда убраны очереди, кеширование данных, http-интерфейс и все что не нужно, осталось только необходимое. GitHub тут https://github.com/dvdocumentation/simplebuslite

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

По умолчанию авторизация отключена, но можно завести пользователей (в СУБД на шине) и включить авторизацию.

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

2.    В 1С устанавливается расширение, которое работает как клиент для этого скрипта-шины. Там нужно прописать настройки – URL шины, токен (об этом далее)

 


3.    Вся адресация работает на «токенах». Например, у вас есть конфигурация 1С: ERP , вы публикуете от нее токен SimpleConnect_erp_692f4a8d_2c68_40be_82df_4f4b9224ee1e (имя сгенерировано автоматически) и шина теперь «знает», что владелец токена – это вот этот клиент SimpleConnect_erp_692f4a8d_2c68_40be_82df_4f4b9224ee1e. Но клиенты, подключенные к шине (Simple), не знают такой длинный токен, у них в конфигурации прописано просто “erp” – это псевдоним токена. На клиенте хранится БД соответствия токенов и их псевдонимов. Клиент, например, через QR считывает настройки вашей ERP и теперь его Simple запомнил, что erp это  SimpleConnect_erp_692f4a8d_2c68_40be_82df_4f4b9224ee1e. Теперь, когда он передает запрос, он в назначении указывает именно это токен. Звучит сложновато? На самом деле это все делается автоматически. А нужно это для того, чтобы: 1) клиент мог работать с несколькими базами одновременно в рамках одной конфигурации 2) чтобы можно было работать в облаке с одной конфой, но разными серверами (например, эти примеры к статье – у всех прописано bp, шина допустим одна (моя на VPS) но токены у всех разные, за счет такой архитектуры каждый работает в рамках своего токена)

4.    В Simple один раз сканируются настройки (их также можно установить из кода) и он начинает отправлять синхронные и асинхронные запросы. Работает это так. Возникает событие, запускается обработчик onlinews. Он может быть синхронным, асинхронным или «с прогресс-баром». Для каждого вызова приваривается уникальный номер execute_id, который уходит в запросе на шину, а потом в бек-систему, а потом возвращается в виде «ответа». Ответ в кавычках, потому что в архитектуре веб-сервисов нет ответов, это просто сообщения. Все это время Simple терпеливо ждет сообщения от шины с таким execute_id. В случае синхронного запуска он блокирует UI и «подвешивает» систему. В случае runprogress показывает крутилку. В случае асинхронного обработчика ничего не блокируется, но когда будет получен ответ, может быть выполнен обработчик postExecute

Вместе с запросом туда-сюда ходит стек переменных/команд. Ожидание ограничено временем ожидания (по умолчанию 10сек, задается в настройках) 

Таким образом вся обработка выполняется на стороне 1С. Отладка, естественно, тоже доступна на стороне 1С.

Вот пример обработчика события new_barcodes_detected. Тут он берет из массива найденных штрихкодов кадре штрихкод, ищет по базе, подкрашивает надпись в предпросмотре камеры и открывает диалог для ввода количества.

 

По сути дела, в Simple изначально всегда был онлайн-режим. Симпл с этого начинался много лет назад. Всегда можно было выполнять обработчики в 1С или в любой другой бек-системе онлайн. В плане функционала нового не появилось. Новый онлайн режим делает то же самое но по другому. У разработчика есть выбор каким режимом пользоваться. Но, в некотрых случаях асинхронная архитектура прям сильно напрашивается

 

Конфигурации-примеры для 1С: Бухгалтерия предприятия 3 и 1С:Управление торговлей 11.4


Данные конфигурации демонстрируют новый подход к онлайн обработчикам (я его называю «онлайн 2.0») и также демонстрируют и новый подход к работе с штрихкодами и OCR, т.н. "ActiveCV 2.0" описанный в этой статье https://habr.com/ru/articles/874560/

Вопрос: можно ли было это сделать на обычном онлайне через HTTP (тип обработчика online)? Конечно. Но у каждого инструмента свое назначение. Где то хватает обычного онлайна, где то нет. 
Обе конфигурации рассчитаны на телефоны (работа с камерой), а не на ТСД. В ТСД обычно плохие камеры и нет gpu, зато есть сканер. Поэтому для работы со штрихкодами на ТСД лучше использовать сканер, а не камеру. С OCR (распознавание инвентарных номеров) лучше работать на телефоне с хорошей камерой (я для всех примеров использую Samsung Note 10). Так как обе на ActiveCV, то оба примера ориентированы на потоковое сканирование а не на сканирование "по одному объекту за раз".

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

Для работы потребуется самая последняя версия Simple 14.05.00 и 1С разумеется не ниже 8.3.7.
Расширения написаны под старые версии конфигураций Бухгалтерия предприятия, редакция 3.0 (3.0.83.33) и Управление торговлей, редакция 11 (11.4.13.123). Если не ставится из-за версии совместимости (выше) то можно поставить через сравнение и объединение.  


Заполнение приходных ордеров онлайн для УТ11

 


Задача конфигурации – взять готовый Приходный ордер и проставить в нем количество факт онлайн, т.е. прямо в 1С. Идентификация – по штрихкоду. Кол-во вводится в диалоге. Все это можно сделать на симпле и в других вариантах (например, кол-во вводить на экране, редактировать таблицу, не использовать ActiveCV а использовать обычный Штрихкод), но сделано так, чтобы показать возможности последних двух релизов. Раскраской помечаются расхождения.

 

 

 

Инвентаризация ОС для БП3 с идентификацией OCR

 


Вот это пример где ActiveCV работает на все 100%, т.к. процесс не прерывается как в предыдущем примере на ввод кол-ва, а просто непрерывно сканируются инвентарные номера. Собственно, также хорошо это работает с штрихкодами, например DataMatrix, скорость сканирования OCR почти не отличается от штрихкодов, все нюансы отработаны. Т.е. хорошо ActiveCV использовать когда есть непрерывное сканирование уникальных объектов. 

Инвентарные номера предварительно загружаются в датасет (Важно! Только латинские буквы и цифры). Затем задача простая : OCR читает номер и отмечает в документе что ОС найден, также помечает цветом найденные. Если в документе нет, то добавляет.

К сожалению, до живого примера с инвентарными номерами ехать далеко, поэтому написал рандомные номера на доске. По особенностям сканирования номеров лучше посмотреть в моей статье на Хабре, приведенной выше, ну и периодически я показываю в статьях заковыристые случаи. 

 

Работа с несколькими базами одновременно, сохранение настроек и использование токенов


Simple коннектится к шине,  но также он должен присоединиться к токенам баз, с которыми он работает (это речь про приложение). Т.е. одновременно может выполнять обработчики в нескольких серверах. А вот конфигурация ничего не знает ни про шину ни про токены, но она работает с псевдонимами токенов.

Выглядит это так. Есть список токенов через запятую, которые нужны конфе.

 

 

И есть токен по умолчанию (это чтобы не указывать во всех обработчиках в явном виде токен)

 


Таким образом к токену по умолчанию обращение как к просто обработчику

А к конкретному токену вот так

 

 

Ну и собственно остается на устройстве привязать токены. Либо с помощью меню Онлайн-Отладка QR либо программным способом.


Сохранение настроек.


Есть настройки шины и есть настройки токенов. Настройки шины хранятся в меню настроек. Их можно задать вручную, передать через QR описанный ранее и также передать обычным способом через файл/QR/команду общим способом https://uitxt.readthedocs.io/ru/latest/settings.html#qr

Разница в QR-ах заключается только в том, что в общем случае установки настроек, они просто запишутся, а веб сервис не будет сразу пытаться соединиться (только после перезапуска). В тех QR-ах которые в промерах-конфигурациях сокет сразу соединяется.

Для записи токенов программным способом есть команда SetTokens с JSON-массивом в качестве параметра: [{"alias":<alias>,"token":<token>}]

Также есть команда SetSimpleBusSettings для того, чтобы установить настройки шины, не записывая их в настройки (т.е. они будут действовать до перезапуска) с JSON-параметром с ключами token,url,id,password,enable  и команда ConnectSimpleBus для немедленного соединения с шиной. 

Посмотреть примеры (ui-файлы) можно на https://seditor.ru:1555/ или развернув редактор локально (https://github.com/dvdocumentation/web_simple_editor). 

Скачать apk 12.05 можно тут: https://simpleui.ru/

Конечно же, Телеграмм-канал проекта, в котором масса всего полезного:  https://t.me/devsimpleui

Проверено на следующих конфигурациях и релизах:

  • Бухгалтерия предприятия, редакция 3.0, релизы 3.0.74.69
  • Управление торговлей, редакция 11, релизы 11.4.13.46

Simple Android CV ActiveCV WebSocket

См. также

Мобильная разработка Сканер штрих-кода Терминал сбора данных Управляемые формы Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Сбор заказов, инвентаризация, проверка ценников, просмотр полной информации об остатках и ценах со смартфона Онлайн - все это содержит в себе решение 1С "Штрихкод-информер" (штрих-код чекер). Отправка данных со смартфона выполняется либо напрямую в открытую форму документа, отсканировав QR-код, либо в общую корзину учетной системы, не подходя к компьютеру. Кассир или оператор сможет просмотреть список присланных данных и загрузить в любую форму, поддерживающую работу с ТСД. Для работы с мобильным приложением требуется опубликовать HTTP-сервис из поставляемого расширения.

3000 руб.

03.12.2018    60767    203    103    

176

Мобильная разработка Мессенджеры и боты Платформа 1С v8.3 Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С, есть сертификат 1С:Совместимо. Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13200 руб.

27.12.2021    39992    113    163    

206

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Программист Пользователь Платформа 1С v8.3 Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Простой мобильный ТСД (терминал сбора данных) сканер для 1С для смартфонов на iOS и Android, не требующий сложных настроек и установки дополнительных программ. Обмен между Вашей 1С и мобильным приложением осуществляется через облачный сервис и расширение конфигурации. Работает с конфигурациями УТ 11, ERP, КА2, Розница 2, Розница 3, УНФ 1.6, УНФ 3.0. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически.

2000 руб.

22.04.2019    99882    608    189    

327

Логистика, склад и ТМЦ Сканер штрих-кода Терминал сбора данных Мобильная разработка Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

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

21000 руб.

28.04.2023    10343    17    3    

10

Мобильная разработка WEB-интеграция Программист Мобильная платформа Абонемент ($m)

Экспериментальный релиз и простенький скрипт к нему закрывает потребности в любых видах синхронизации между устройствами Simple и между Simple и бек-системами (например 1С). По сути – это очень простой python-скрипт, который можно запустить на доступной машине, сервере или VPS и он будет связывать клиентские устройства между собой и с 1С или другими бек-системами. В самой платформе появилось для этого множество доработок для поддержки стабильного постоянного соединения, докачки больших файлов и работе в фоне. Дополнение к основной статье https://infostart.ru/1c/tools/1153616/

1 стартмани

23.08.2024    1589    6    informa1555    1    

13

Мобильная разработка Мобильная платформа Абонемент ($m)

В этом релизе собрано много нового из области интерфейса, связи, хранения и важные новые способы управления. Дополнение к основной статье https://infostart.ru/1c/tools/1153616/

1 стартмани

25.06.2024    3078    29    informa1555    0    

33
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. aximo 2148 09.02.25 06:24 Сейчас в теме
Весьма интересно с моментальным распознованием, штатный механизм фотокамеры не позволит этого или он уже встроен в новейших релизах?
2. orgplan 11.02.25 11:06 Сейчас в теме
Спасибо за Ваш труд! Ждал этот пост. :)
А где взять Simple 14.05.00?
Оставьте свое сообщение