Новые подходы к дистрибуции решений Simple UI, GitHub, переопределение меню и другое

02.02.22

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

Множество полезных новшеств для Simple UI, в основном направленных на управление конфигурациями. Но также, например, по многочисленным просьбам решен вопрос с меню. Дополнение к основной статье https://infostart.ru/public/1153616/

Основная статья, где содержатся файлы, тут: //infostart.ru/public/1153616/

 

Разделенный режим конфигурации и обработчиков

 


При разделенном режиме конструктор (то самое, что демо-база), он же сервис-поставщик конфигурации существует отдельно в виде отдельного сервиса (либо сервис, распространяющий конфигурацию, вообще отсутствует, а передача идет через файл), возможно в каком то облаке, а серверная часть для он-лайн обработчиков в учетной системе – отдельно в виде другого сервиса. То есть в реалиях 1С на учетную систему ставится простейшее расширение, состоящее из веб сервиса с одной командой и общего модуля который исполняет команды обработчика. Никакого конструктора, никаких справочников Simple UI и других объектов на учетную систему не ставится. Это может быть как расширение, так и просто изменения в основной конфигурации. Всего лишь 2 добавленных объекта - сервис и общий модуль.

 

 

Все это само собой распространяется на решения, которым требуются он-лайн обработчики. Для офлайн-конфигураций достаточно просто передать файл конфигурации на устройство.

Такой режим имеет следующие плюсы:

  • при обновлении Simple UI не нужно обновлять конструкторы в учетных системах 
  • одна база-конструктор на множество клиентов
  • свой сервис-поставщик конфигурации

Для работы в разделенном режиме он-лайн обработчиков нужно:

 

 

  1.     Опубликовать или передать на устройство конфигурацию одним из доступных способов – из базы-конструктора конфигураций, на каком-либо хостинге, например GitHub, либо просто передать текстовый файл на устройство. Публикация через сервис удобнее на этапе разработки – изменения сразу доставляются в Simple UI. 
  2.     Добавить в базу, в которой будут выполняться обработчики, веб сервис (через расширение или в основной конфигурации) и общий модуль, где будут прописаны вызываемые процедуры обработчиков. Образец находится в комплекте разработчика в расширении SimpleUISplit.cfe
  3.     В «Экранах» и других местах где используется обработчики указывать не текст, а имя вызываемой функции
  4.     Поменять настройки приложения – включить «Разделенный режим» и указать доступ к обоим сервисам

Имена настроек  для QR- или файлов настроек: 


OnlineSplitMode – true/false – включение сплит режима
onlineURLListener – URL сервиса обработчиков
onlineUserListener – пользователь сервиса обработчиков для Basic-авторизации
onlinePassListener – пароль сервиса обработчиков для Basic-авторизации

 

Произвольная авторизация


Настройка сервиса-поставщика конфигурации любым удобным способом. Не обязательно придерживаться формата Simple UI, достаточно иметь любой сервис, который в ответе будет отдавать JSON с конфигурацией Simple UI с любым типом авторизации.
Имена настроек  для QR или файлов настроек: 
RawConfigurationServiceON – true/false включение режима конфигурации
RawConfigurationURL – URL сервиса
RawConfigurationServiceAuth – строка авторизации сервиса (заголовок Authorization запроса). Например для базовой будет Basic <base64 логин:пароль>.


Работа через GitHub

 

 

Можно выкладывать конфигурации в репозиторий GitHub – это удобный способ как дистрибуции, так и управления изменениями, отслеживания изменений и совместной работы. Так как конфигурация Simple UI – это по сути JSON файл, Git полностью поддерживает этот формат – можно работать непосредственно в редакторе Git и смотреть изменения.

Github имеет какую то свою структуру запросов, ответов, поэтому специально для работы с ним реализованы отдельные механизмы и в настройках нужно активировать «Формат Github» . После коммита на github конфигурация сразу становится доступной.
Каждый коммит фиксируется, к нему можно написать комментарий. Комментарии выводятся в разделе Инфо в виде автоматической истории версий конфигурации:

 

 

 

Естественно, коммит сразу же применяется и влияет на текущую конфигурацию мгновенно. При этом со стороны GitHub, естественно, доступен весь функционал – бренчи, коммиты/роллбеки и т.д.

Публиковать можно в публичном доступе и также в закрытом. Причем в ограниченном доступе токены могут быть как бессрочными, так и с ограниченным сроком. Настройки ограниченного доступа указываются в настройках приложения в виде: Bearer <токен>

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

Настройки можно задавать так:
 

 

Имена настроек  для QR или файлов настроек:
GitFormat – true/false включает режим формата GitHub
GitCommitsURL – URL репозитория коммитов
GitStoreURL – URL репозитория для использования в качестве магазина

 

Управление несколькими конфигурациями одновременно. Мультипрограммный интерфейс.

 

 

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

Возможности на текущий момент такие:

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

 

Хранилище и запуск конфигураций. Настройки сервисов.

 


Конфигурация теперь может содержать в себе настройки – специальный раздел в котором указан поставщик, настройки сервисов для обновления и он-лайн обработчиков и т.д.

Если такой раздел присутствует, в меню появляется «кнопка» либо в главном меню появляется раздел «Закрепить», по нажатии которой конфигурация попадает в хранилище вместе со своими настройками. То есть как бы считается, что конфигурация "установлена" в хранилище.

 


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

 

 

 


Также версию и  описание конфигурации желательно заполнять. В карточке указываются теги технологий.

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

Таким образом, конфигурация, запущенная из этого раздела, сразу же готова к работе. Сами настройки приложения не замещаются  - используются автономные настройки конфигурации. Поддерживается и принцип автономности  и фонового обновления – конфигурации в любом случае будут доступны, а в случае если связь позволяет и обновлены.

 

Built-in сервисы конфигураций – запускаемые в хранилище части конфигураций


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

 

Работа с основным меню приложения

 


Главное меню теперь можно переопределить – убрать, настроить стандартные пункты (кроме нескольких), добавить свои пункты. В том числе вынести свои пункты в тулбар главного окна и использовать иконки (Awesome)

 


Делается это в конструкторе на закладке «Главное меню». Стандартные пункты имеют предопределенное имя. Для добавления свое имени нужно указать какой то ключ (на английском), при необходимости поставить галку «В тулбаре», также можно указать название через # в виде кода Awesome чтобы вывести иконку.

Обработка своих добавленных пунктов меню происходит через «Сервис событий» (он должен быть включен) - когда пользователь нажимает пункт главного меню, возникает событие с префиксом menu_ и ключом пункта меню. 

 

Меню экранов

 

На обычных экранах также можно добавить свое меню. Для  этого достаточно добавить вид элемента экрана «Элемент меню» на экран – один или несколько. Если задать Awesome значение то он будет в тулбаре, если нет в обычном меню. Соответственно у пункта меню есть переменная и при нажатии возникает событие экрана с listener, равной этой переменной.

 

Работа с качеством связи

 


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

Если где ни будь при старте задать флаг _listen_internet_quality (просто добавить пустую переменную) то будет постоянно в фоне заполняться переменная _internet_quality – показывает условное качество связи. Их может быть несколько:


•    WIFI_POOR
•    WIFI_MODERATE
•    WIFI_GOOD
•    WIFI_EXCELLENT
•    MOBILE_POOR
•    MOBILE_GOOD
•    MOBILE_EXCELLENT
•    UNKNOWN
 
Значения начинающиеся с WIFI_ - подключения через WIFI, далее идет мощность сигнала wi-fi по шкале от POOR до EXCELLENT. MOBILE – подключение через сотовую связь. Тут условное деление, а зависимости от источника подключения: POOR – это GPRS,EDGE,CDMA,1xRTT,IDEN, EXCELLENT -LTE, GOOD – все остальное (в простонародье - 3G).

 

Также, если задать пингуемый URL с портом (порт обязателен) в _set_ping_url  (например hashMap.put("_set_ping_url","https://www.google.com:443/%22)) то в константу _internet_ping будет помещаться результат в виде строки из двух чисел с точкой запятой, например 5;15 . Сумма этих чисел это и есть пинг , а по отдельности - первое число это время определения dns, а второе время сокета с портом. Это настоящий пинг, как команда ping . Это в миллисекундах.

Важно! Это все действо запускается по событиям при запуске и прочим другим, но асинхронно. Нельзя делать это синхронно потому что пинг может быть очень долгий и повесит приложение. Это значит что при открытии экрана запустится пинг но его результаты будут доступны после того как экран отрисовался, что нас не устраивает. Как быть? Тут несколько способов. На самом деле можно сделать произвольный таймер по расписанию любой с любым обработчиком (когда будет выполняться этот таймер будет вычисление констант)

 

Прочее

 

У SimpleUI появился Telegram-канал  https://t.me/devsimpleui.  С форумом не задалось - его похоронили спамеры. Теперь анонсы и тренды разработки буду выкладывать сюда.

Изменен раздел Инфо и добавлен История версий

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

Добавлен раздел История версий – это лог версий самой платформы - по сути выводится страница https://uitxt.readthedocs.io/ru/latest/versions.html

SimpleUI Simple Android Python

См. также

"Штрихкод-информер" - мобильный ТСД и прайс-чекер в смартфоне

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

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

2880 руб.

03.12.2018    55039    139    102    

162

SALE! 25%

Что нам стоит бота построить? Нарисуем - будет жить! Графический конструктор телеграм-ботов/Telegram

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

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

13200 9900 руб.

27.12.2021    33793    82    159    

177

"Мобильный ТСД" - инвентаризация и сбор штрихкодов для iOS и Android

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

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

2000 руб.

22.04.2019    92356    520    186    

297

Магазин 15 - приемка товара по штрихкодам или инвентаризация в торговом зале

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

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

12950 руб.

30.05.2023    3461    2    0    

4

Работа с графикой в браузере (SimpleWEB). Векторный редактор

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

В SimpleWEB добавились средства для работы с графикой и отслеживание событий мыши, в онлайн редактор https://seditor.ru:1555/ добавился «Векторный редактор» на этом API. Теперь можно нарисовать схемы складов на ПК, сделать карты (*.sug-файлы) для мобильной платформы SimpleUI, выводить данные из 1С в графическом виде. Таким образом, API для работы с векторными файлами теперь есть и в веб- и в мобильной платформе, а также средства для создания и редактирования векторных файлов есть тоже в обеих платформах.

1 стартмани

20.03.2024    1613    0    informa1555    1    

40

Зачем нам 1С:Элемент

Мобильная разработка Языки и среды Бесплатно (free)

Flutter может быть использован с 1С:Предприятием для разработки кроссплатформенных мобильных приложений, обеспечивая единый интерфейс и функциональность на устройствах под управлением iOS и Android. Это позволяет создавать приложения с высокой производительностью благодаря использованию собственного движка рендеринга Flutter. Интеграция Flutter с 1С:Предприятием позволяет создавать мобильные приложения любого уровня сложности, интегрировать их в корпоративные информационные системы, а также реализовывать бизнес-логику

19.03.2024    9316    ROk_dev    67    

41

JavaScript в Simple

Мобильная разработка Бесплатно (free)

В SimpleUI и SimpleWEB, наряду с обработчиками на python и онлайн (1С и т.д.) добавляется интерпретатор JavaScript. В андроид платформе он скорее играет на поле python, т.к. является оффлайновым решением для самостоятельной обработки и расширяет аудиторию разработчиков для разработки самостоятельных решений. Дополнение к основной статье https://infostart.ru/1c/tools/1153616/

12.02.2024    1693    informa1555    0    

25
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Steelvan 302 02.02.22 13:23 Сейчас в теме
... С форумом не задалось - его похоронили ...

да, мусорщики и гнобщики везде все поганят
alex_shkut; +1
2. user806776 10.02.22 00:08 Сейчас в теме
Дмитрий, спасибо за проделанную работу!
informa1555; +1
3. informa1555 2648 10.02.22 10:37 Сейчас в теме
(2) Всегда пожалста))
+
4. MarryJane 31 17.02.22 17:30 Сейчас в теме
Добрый день, подскажите можно ли как то менять главное меню (что бы в главнов меню типа появлялось количество документов требующих обработки). Т.е. есть главное меню Перемещение, Отгрузка, Поступление, так вот хочется что бы каждые 5 минут происходило обновление экрана и получалось Перемещение(2), Отгрузка(1), Поступление. Есть ли вообще отправка сообщений по регламенту от сервера на клиент или есть ли у клиента фоновый опросник сервера.
+
5. informa1555 2648 17.02.22 17:50 Сейчас в теме
(4) Добрый день! Да. Есть плиточный экран (см. Плитки) там можно по регламенту обновлять плитки , а содержимое плитки - контейнер с переменными ну и можно обновлять. Регл задания естественно тоже есть. В примере про плитки как раз что то там обновляется из регл задания. Плюс собственно с какого то релиза можно вообще всю конфу перерисовывать, но вот насчет того, чтобы делать это по таймеру я не пробовал, может и не получится. А плитки можно да.
+
6. user611165_DobrikovMV 17.05.22 13:05 Сейчас в теме
Не до конца понятны фоновые сообщения и сервис.

1.Все классно, но жаль, что все чаты и посты не имеют привязки к клиенту. Получается общая мусорная корзина. Нужно отослать конкретному клиенту (мобильному), а видят все. Это очень не удобно. Тоже самое и с фоном. Например мне нужно из 1с отправить конкретному клиенту (менеджеру, кладовщику не важно), что заказ собран. И зачем это видеть мастеру другого участка и т.д. Может что то не понимаю? Иначе во всем этом хламе разных сообщений скоро им перестанут пользоваться.

2.Я верно понимаю что из 1с в фон сервиса вообще нельзя послать сообщения?
И в обратном виде из фона нельзя мониторить событие в базе?
+
7. informa1555 2648 17.05.22 14:31 Сейчас в теме
(6)
1. так там активность со стороны клиента же идет: клиент в фоне стучится на сервер, говорит свой AndroidID и получает то что именно ему нужно.
2. У конфигурации есть "Фоновый сервис событий" -об этом я делал отдельный пост - это постоянно висящий в памяти сервис даже если закрыть приложение. Оно работает и на 1С и на питоне. А buil-in части только на питоне и их смыс такой: это тоже фоновые части но они работают для "установленных конфигураций" т.е. примерно как в андроиде установленные части приложений. Независимо от того запущена конфигурация или нет, главное чтобы сипл был запущен. Т.е. одноврменнно допустим установлено 3 конфы и все 3 работают.
Из фона и питоновского обработчика конечно можно сделать вообще все что только можно придумать.
+
8. user611165_DobrikovMV 18.05.22 10:48 Сейчас в теме
(7) Я не нашел примера, где я могу послать сообщение в фон на мобильное устройство из 1с. Можешь подсказать...
+
9. informa1555 2648 18.05.22 11:17 Сейчас в теме
(8) Уточните задачу пожалуйста. Что такое "послать в фон" , "сообщение" и "из 1С"? Я имел ввиду код обработчика в фоновом сервисе событий может выполняться на стороне учетной системы (онлайн например) в фоне. Что этот код делает - посылает/принимает - это уже зависит от того что там написано. Например он может отобразить диалог какой то и т.д.
+
10. user611165_DobrikovMV 05.07.22 22:44 Сейчас в теме
Да. Я понял. Ещё 1 вопрос, как не возвращаться в начало процесса при повороте экрана. Это было где то, я пропустил...
+
Оставьте свое сообщение