Введение
Уже несколько лет я развиваю платформу Simple UI которая предназначена для быстрой разработки мобильных рабочих мест для мобильных устройств и ТСД на Андроид. Упор делается на снижение стоимости внедрения и владения за счет двух аспектов:
- Снижение стоимости внедрения за счет технологии быстрой разработки (конструктора), тиражирования масштабирования конфигураций клиентов
- Низкие требования к ПО и железу, только бесплатное и OpenSource ПО, т.е. бесплатные лицензии и дешевое железо
Т.е. никаких лишний телодвижений и затрат при разработке/внедрении/поддержке - отжато все лишнее, а как известно в нашем бизнесе “сэкономил”=”заработал”. Все хорошо, но до сей поры не закрыта была одна ниша – рабочие станции в цехах, складах и других участках где от компьютера требуется по большому счету только USB-порт для подключения сканера штрихкодов, монитор для вывода одного и того же экрана и сетевуха для связи с 1С… Т.е. для того чтобы сканировать например приход полуфабриката на участок производства или выход ГП на линии или других однотипных задач покупается:
- компьютер (причем чаще на Win) с монитором, либо «тонкий клиент» (но тогда нужно закладывать ресурсы сервера терминалов пропорционально количеству рабочих мест, что также не бесплатно)
- используется лицензия 1С
- В дальнейшем обслуживается весь этот зоопарк (как минимум пылесосить)
Многовато, для примитивной функции? Когда речь идет об одном рабочем месте – это еще не так драматично, а представьте что их допустим 70…
А что если можно обеспечить АРМ целиком (железо и лицензии) дешевле чем 1 лицензия 1С? Это можно с помощью одноплатных ARM-компьютеров на Linux. Самым известным является Raspberry PI ,и ее цена стартует от 1200 рублей (версия Zero). Также есть множество других более дешевых девайсов с тем же функционалом – от 8$ (я не беру в расчет Rasberry Pico за 4$ на которой все таки это не запустится)! Но как мне кажется, найти на них нужный обвес (корпуса, радиаторы, вентиляторы, БП) сложнее, я их в живую не видел. Хотя Orange Pi в принципе продается у нас.
Решение
Собственно, решение очень простое – написаны клиенты для Debian/Raspbian и заодно скомпилированы на Windows 64 (не знаю для чего на винде, но как минимум можно запустить и посмотреть как это будет выглядеть если нет малинки под рукой), которые умеют читать конфигурации Simple UI в режиме «он-лайн». Если Вы уже пользовались Simple UI для Андроида то ничему новому учиться не придется – тот же конструктор, та же демо-база. В демо базе есть 2 тестовые конфигурации для маленькой Raspberry и для Windows
Вот так это выглядит на самом маленьком экране Raspberry Pi:
главное меню
настройки клиента
пример экрана
еще пример экрана
и еще пример экрана
Вот так это выглядит на Windows (примерно та же архитектура что и в мобильном клиенте):
На фотографиях Raspberry Pi 4 с встроенным сенсорным экранчиком. Это плохой вариант для продакшена по нескольким причинам. Такой «мощный» девайс для задач клиента не нужен потому что: 1) она дорогая (около 4000 рублей + экран 1500 рублей) 2) она греется (4я сильно греется за счет более мощного процессора), соотвественно если ставишь экран то нужно вентилятор. Лучше не ставить экран (работать через HDMI) а на плату ставить радиатор на всю площадь. Но еще раз подчеркну, что такой мощный проц лично мне нужен для задач связанных с компьютерным зрением и видеопотоком и он совершенно не нужен для задачки тонкого клиента. Отлично подойдет Zero или старые Pi 3, Pi 2 которые стоят не 4000 рублей а гораздо дешевле. 3) Экранчик котрый на фото - тоже вариант не очень - слишком мелкий, нужен либо обычный монитор через HDMI либо большой дисплей, например 7’ через шлейф (тогда вместо корпуса плата накрывается радиатором и вешается куда ни будь на стену)
Сканер работает в режиме HID (в «разрыв клавиатуры»), драйвера не требуется и на Linux и на Win. Соответственно подойдут любые сканера которые умеют посылать в клавиатуру + Энтер.
Т.е. теперь разрабатывая на одной платформе мы получаем такую экосистему устройств:
Примерные цены на готовое решение:
- Raspberry Pi Zero (без Wi-Fi) - 1000 рублей, Raspberry Pi Zero W (c Wi-Fi) - от 1200 рублей, различные варианты Rapberry Pi 3 - от 2700 рублей, Rapsberry Pi 4 - от 4200 рублей
- Корпус, радиатор (или набор радиаторов), SD карта - в комплекте дешевле, обычно добавляет от 700 рублей за все 3 пункта
- Если нужен тач-дисплей то от 1000 рублей за 3,5" , от 1900 за 4" , 3000 за 7" либо монитор/телевизор
- Simple UI - 0 рублей
Для тех кто разрабатывает на Simple UI
Есть некоторые отличия и ограничения в конфигурациях для стационарных рабочих мест. В конструкторе я сделал переключалку “Стационарное решение|Мобильное решение ” чтобы конфа сама проверяла что можно а что нет.
Вот список этих отличий:
- Только контейнеры. Экраны размечаются только через контейнеры, причем уровень вложенности – 2. Т.е. вертикальный контейнер с любым количеством строк, в каждой стоке либо один горизонтальный контейнер с любым количеством элементов либо просто элемент. Т.е. получается эдакая 2D таблица.
- Размеры если указывать их числами – в «символах», т.е. высота = 2- это 2 строки
- Только "произвольный запуск экранов" – все переключения через ShowScreen
- Высота в таблице -это количество строк, ширина – высота строки
- В настоящее время не все элементы контейнера доступны, перечень элементов органичен в конструкторе
- Прокрутка корневого контейнера/без прокрутки – работает немного не так как в Андроиде (появляется скролл-бар для мыши), лучше посмотреть в демке
- Пока только «он-лайн» режим через 1С, офлайн не нужен, так как это стационарное рабочее место, позже появится поддержка скриптов Python как в мобильной платформе и на них уже можно делать requests и т.д. и т.п. куда надо, парсить и отображать на экранах - хоть в PostgREST, хоть в свой бэкенд
Что планируется дальше? Клиент и демоны.
Во-первых эта платформа имеет много возможностей кроме безотказного тонкого клиента и дешевизны. Raspberry Pi стойко ассоциируется с AI-проектами, с обработкой видеопотока, управлением оборудованием через GPIO шину. Я не буду это все встраивать в клиент – нет смысла. Вместо этого я сделаю открытую сервисную архитектуру с подключаемыми скриптами и внешними независимыми сервисам(демонами). Т.е. будет:
- Клиент с открытым API с доступом к UI-потоку (извне можно запускать экраны и управлять логикой приложения) и «демоны» (daemons) каждый для своих целей. Например есть уже голосовой ассистент //infostart.ru/public/1342124/ который вполне может взаимодействовать с UI-интерфейсом. Также например такие вещи как «распознавание лиц» - например вместо логина- распознавание лица, вместо регистрации операций путем сканирования бейджа – опять же распознавание лица. Подобные вещи несложны на пайтоне, но требуют доработки напильником, поэтому планируется только исходный код
- Связь с Postgre как в мобильном клиенте (//infostart.ru/1c/articles/1217831/ )
- Интерпретатор скриптов Python как в мобильном клиенте (начиная с версии 4.20.00)
- Добавление других элементов экрана, например диаграмм
Установка
Клиентская часть:
Просто скачать архив под соответствующую платформу, распаковать и запустить simple. exe (только под Win 64) или simple под Raspbian (если через командную строку то .\simple). При первом запуске платформа спросит настройки до сервера 1С - надо заполнить как на картинке в этой статье. Коды мобильных клиентов под Raspberry и под винду - 20 и 21 соответственно
Серверная часть (1С):
Ничем не отличается от обычной публикации Simple UI для мобильных клиентов, соотвественно все описано в основной статье и документации. Нужна свежая конфигурация из демо базы из последнего комплекта разработчика (3.50.00), соотвественно опубликованный веб сервис (тот же самый что и для мобильных устройств)
UPD 11.03.22. Выложил исходник и добавил новые функции:
-Исходник https://github.com/dvdocumentation/simpleui_desktop
-Чтение любого количества контейнеров и вложенности
-поддержка актуального JSON-формата