Пакет обновлений SimpleUI. Апрель 2023

05.04.23

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

Новые функции мобильной платформы Simple в релизе 11.42. Дополнение к статье https://infostart.ru/public/1153616/

Оборачивание любых обработчиков в прогресс-диалог (runprogress)

 


Любой предположительно-долгий обработчик теперь проще простого обернуть в виде прогресс-диалога, чтобы задержка не выглядела зависанием, а показывала красивое  вращающееся колесико. И для этого не надо ничего писать, просто нужно переключить Действие из run в runprogress. Это для предположительно долгих синхронных обработчиков (runasync напротив, не блокирует экран) в процессах (в ActiveCV и фоновом сервисе – нет). Теперь симпл лучше совместим с неспешными платформами.
В принципе теперь нет нужды запускать это из кода, но на всякий также переработал питон-команду RunPyThreadProgressDef, которая запускает аналогично выполнение функции, переданной в параметре в виде прогресс-бара.

 

Уведомления с прогрессом в шторке уведомлений

 


Из долгих процедур можно отправлять прогресс выполнения в шторку уведомлений, чтобы пользователь понимал, на каком этапе находится выполнение. Доступно только из python-обработчиков. Вызывается методом UpdateProgressNotification из класса SimpleUtilites. В качестве параметра передается json с настройкой, собственно прогресса выполнения, заголовка, тела и id уведомления (по id происходит обновление ранее выведенного уведомления)

 

Проверка биометрии (отпечатки пальцев и распознавание лиц)

 


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

Запуск командой "ShowBiometric" где в параметрах настраивается заголовок текст и обработчики, которые будут выполняться в случае успешной аутентификации, неуспешной и ошибки (ошибка – это когда, например биометрия не поддерживается)

 

Диалог проверки ПИН-кода

 


Если, например, нет возможности использовать биометрию, можно использовать экран ввода ПИН-кода в тех же сценариях – при старте и произвольным запуском из процесса. Это именно диалог, причем вся логика – на разработчике (проверка пина, первоначальное обучение и т.д.) Также как в биометрии генерятся события и передается введенный пользователем пин. Можно отключить кнопку «назад», так чтобы диалог висел и не закрывался, пока не будет введен нужный ПИН.

 

Плавающие кнопки (floating action button)

 


Теперь доступны кастомные плавающие кнопки в том же ряду и в том же оформлении, что и кнопки штрихкода, OCR, голоса и т.д. На них нельзя вывести текст, но можно вывести иконку. Либо одну из дефолтных (поле Иконка) либо Awesome по тому же принципу что и везде. Но с Awesome небольшая неприятность – андроидовские функции измерения размера текста не совсем корректно отрабатывают на Awesome - шрифте, из-за этого иконка не всегда отцентрована идеально, поэтому дополнительно можно указать коррекцию по горизонтали и вертикали (показано в примере)

 

Упрощённая поддержка автозаполнения в «Выпадающий список» и «Поле ввода с автозаполнением»

 

Если база – SQL и есть таблицы, которые могут быть источником для автозаполнения, то достаточно написать SELECT-запрос в значении элемента и он автоматически подключится к таблице

 

Поле объекта

 


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

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

Предполагается совместное использование с ShowScreen/BackScreen и ShowProcessResult/FinishProcessResult

 

Новые управляющие команды и переменные

 

Переключение внутри процесса

 

BackScreen, без параметра – команда, использующаяся только совместно с ShowScreen, переключает на экран, с которого был запущен ShowScreen.

 

Запуск процессов/экранов с возвратом результата


ShowProcessResult , <имя процесса|имя экрана> запускает процесс и выбранный экран, ожидая что в нем произойдет вызов FinishProcessResult. Стек переменных при этом на запускаемый и запускающий процесс – общий. Для того чтобы обработать именно нужное событие а не просто событие (по умолчанию listener=<имя вызываемого процесса>) совместно с этой командой можно установить имя события, которое будет сгенерировано после вызова FinishProcessResult , командой SetResultListener , <имя события>
 

FinishProcessResult, без параметров – завершает процесс с генерацией события в вызывающем процессе
SetResultListener , <имя события> - устанавливает имя события при завершении процесса

 

Новые стандартные переменные

parent_screen – экран, из которого запущен текущий экран (если он был запущен ShowScreen)
current_process_name – имя текущего процесса
current_screen_name – имя текущего экрана

 

Новые возможности управления полями ввода

 

Подсветка полей ввода

 

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

SetRed, <список переменных полей ввода через “;”> - выделяет список полей красным

SetGreen, <список переменных полей ввода через “;”> - выделяет список полей зеленым

 

Отключение событий

 

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

 

Подключение событий и «Современное поле ввода»


Иногда нужно чтобы введенные данные в поля ввода например сразу писались в БД. Для этого в параметр «Современное поле ввода» добавлен флаг "events" , установка которого в true означает что события будут генерироваться при люом изменении текста, поле при этом будет оставаться в фокусе (перерисовки экрана не происходит)

 

Переопределение поиска в тулбаре

 

 

В кастомные списки карточек (customcards) и кастомные таблицы (customtable) добавлен признак "override_search" суть которого сводится к тому, что поиск не будет производиться по таблице-источнику как при обычном поиске, а будет генерироваться событие Search при каждом вводе текста в поле поиска, чтобы разработчик сам мог выполнить поисковый запрос и заменить значение списка. Поиск автоматический удобен, но какие бы большие списки не поддерживались (а они могут быть и на сотни тысяч записей), всегда есть предел. И если в БД миллионы записей то логичнее искать средствами сервера, выдавая результат поиска. Кроме того пользовательских интерфейс не стоит перегружать слишком большими списками – их неудобно листать.

 

Открытие векторного редактора в режиме редактирования заданного файла

 


Иногда нужно предоставить пользователю самому например нарисовать карту склада, но чтобы он не заморачивался с файлами. Например у вас если справочник зон или складов и к каждому привязана своя карта (ведь карты складов – это очень нарядно и к тому же позволяет на лету решать задачу коммивояжера, что несет в себе положительный экономический эффект) и вы хотите чтобы пользователь открыл, заполнил и закрыл карту. 
Для этого достаточно запустить команду RunVectorEditor, она откроет нужный файл, если его нет – создаст. И из кнопок доступно только сохранение без диалога выбора
 

RunVectorEditor, <путь к файлу карты *.sug> - открывает векторный редактор в режиме редактирования файла, без возможности смены. В случае успешного сохранения будет сгенерировано событие “vector_editor

 

Поддержка функций с произвольным числом аргументов (*args)


Иногда удобно передавать переменные не через стек переменных а через определение функции, но при этом удобно указывать произвольное число аргументов. Для этого добавлен новый тип обработчика – pythonargs и метод можно писать как имя_функции(аргумент1, аргумент2… аргумент N) при этом определние функции 1м параметром все равно должно включать hashMap. 
Функция в конструкторе может выглядеть так
В коде:

def foo(hashMap,*args):
    param1 =  args[0] 
    param2 =  args[1] 
    param3 =  args[2]  

    return hashMap


Поддержка pymongo


О интеграции с NoSQL MongoDB я еще потом подробно напишу и выпущу пару интересных релизов с ее участием. Пока только сообщаю, что библиотека поддерживается. И вот пример подключения и несколько примеров работы. Отмечу что MongoDB с ее JSON-ориентированной работой с документами отлично ложится на симпл- разработку и работать с ней очень и очень просто. Также как и CouchDB, но Mongo более распространённая.

from pymongo import MongoClient

i = 0
mongo_global.py:

def get_database():
 
   # Provide the mongodb atlas url to connect python to mongodb using pymongo
   CONNECTION_STRING ="mongodb://user:password@192.168.1.1:27017/simple_db"
 
   # Create a connection using MongoClient. You can import MongoClient or use pymongo.MongoClient
   client = MongoClient(CONNECTION_STRING)
 
   # Create the database for our example (we will use the same database throughout the tutorial
   return client['simple_db']

mongodb = get_database()

 

test.py:
 

import mongo_global

def mongo_input(hashMap,_files=None,_data=None):
 
  
  
  dbname = mongo_global.mongodb
  collection_name = dbname["user_1_items"]
   item_1 = {
 
  "item_name" : "Oven",
   "price" : 55,
  "category" : "kitchen appliance"
}

  
  collection_name.insert_many([item_1])   
  
  hashMap.put("vibrate","")

  return hashMap

 

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

Android Simple

См. также

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

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

13200 руб.

27.12.2021    38452    109    163    

203

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Программист Пользователь Платформа 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    97598    591    189    

323

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

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

3000 руб.

03.12.2018    59480    193    103    

173

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

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

3450 руб.

28.04.2023    9580    15    0    

9

Мобильная разработка Платформа 1С v8.3 Конфигурации 1cv8 Финансовые услуги, инвестиции Управленческий учет Платные (руб)

Мобильное приложение и конфигурация 1С для автоматической торговли на бирже через API Тинькофф банка. Достаточно задать настройки, нажать «Пуск», и робот сам торгует ежедневно.

7000 руб.

25.05.2022    4734    1    0    

6

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

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

1 стартмани

23.08.2024    1268    6    informa1555    1    

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