Каталог решений - Пакет обновление Simple UI Август 2021. Новый формат и новые возможности.

Пакет обновление Simple UI Август 2021. Новый формат и новые возможности.

Пакет обновление Simple UI Август 2021. Новый формат и новые возможности.

В наличии

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

Категория:

Описание

Новый формат JSON и “большая уборка”

Запланировано много изменений в дальнейшем, а формат XML неэкономный, учитывая необходимость в маскировании и то что вся остальная логика экранов на JSON. Теперь будет все на JSON. Приложение умеет читать и новый и старый формат, но все новые плюшки – только на JSON. Поэтому нужно обязательно обновить 1С-ную часть. Пока разница не сильно заметна, но это только пока. 
Под это дело было решено также избавиться от всего лишнего хлама, который накопился с момента создания. Потому что те кто изучает платформу с нуля путаются и пугаются большого объема документации. А оно не нужно – многие вещи делаются более универсальными методами. Я основательно подошел к делу и перелопатил всю демо-базу (все примеры), а заодно и онлайн-документацию.

Под нож пошли:

  1.     Упрощенный режим экрана – теперь все на контейнерах. Нужно сделать такое же – можно сделать на контейнерах. В корне экрана теперь только элементы ввода и то что занимает весь экран (корзина, плитки и т.д.), а вся визуалка – через контейнеры
  2.     Упрощенное переключение экрана – все эти циклы и т.д. Теперь только ShowScreen на все случаи жизни
  3.     Старая закладка offline
  4.     Некоторые ненужные вещи – отложенные задачи (легко делаются либо на SQL либо на No SQL) и т.д. 

Готовятся к вылету или преобразованию:

  1.     «Задачи», которые торчат на главном экране. Их можно легко заменить карточками или плитками. Поэтому позже появится возможность настраивать пункты главного меню
  2.     «Документы». Легко заменяются NoSQL. Возможно будут преобразованы или сольются с NoSQL
  3.     Отправка статусов запуска процессов. Биллинг можно реализовать и по другому.

 

Работа с мультимедиа через галерею на экране.

 

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

 

Работа с мультимедиа через файлы (режим mm_local)

Кодирование/раскодирование в base64 – это неизбежно фризы и тормоза. В этом варианте можно работать только если основательно сжимать фотки и по размеру и по компрессии. Ну а с видео – вообще все грустно. Поэтому самый нормальный режим – хранить файлы на устройстве во внутренней папке приложения. Т.е. допустим вы фотографируете, система складывает файл как есть (образуя новое имя= UUID) и на выходе возвращает вам идентификатор , которым вы можете оперировать (вставлять в объекты, сохранять)  а когда надо получить по нему абсолютный путь к файлу и делать с этим файлом что захочется. Это обычно нужно для передачи файла по синхронизации. Но вообще учитывая что в обработчиках Python c файлом можно сделать много интересного.  Это примерно как в гардеробе – сдали пальто, получили номерок, когда надо – отдали номерок, получили пальто. Имеется и таблица «id» — «абсолютный путь к файлу» где хранятся все такие файлы. Включается этот режим на экране через установку переменной mm_local. После чего галерея из предыдущего пункта начинает возвращать не JSON массив base64 а JSON-массив ИДшек
Также можно задать уровень компрессии и уровень сжатия размеров в процентах с помощью переменных mm_compression и mm_size

Интеграция с внешними  NoSQL СУБД  (CouchDB,MongoDB, Couchbase и т.д.)

 

Пару слов для чего это нужно. NoSQL прекрасно подходит для хранения неструктурированной информации и тех же файлов и мультимедиа. Эти системы записывают данные практически мгновенно и могут еще быть масштабированы (размещены на нескольких серверах) таким образом могут обеспечивать поддержку накопления больших данных и больших потоков мультимедиа с устройств. Короче, их можно использовать как прокладку между устройствами и 1С для хранения фоточек. Идея не нова, к ней пришли многие 1Сники столкнувшиеся с необходимостью организации подобного хранилища.

Кроме того, недавно в Simple UI появилась поддержка внутренней NoSQL а раз во внутренней все храниться в JSON (в основном) и в какой ни будь облачной СУБД NoSQL также объекты хранятся в JSON то идея сделать синхронизацию напрашивается сама собой и делается это все в несколько строчек.

Я вообще не стал заморачиваться и встраивать в платформу специальные средства для работы (как я сделал когда то с PostgREST, но это было до Python), а просто взял Питон и написал пример выгрузки/загрузки с Каучем. Причем он сразу с файлами – т.е. можно передавать файлы вместе с объектами или загружать фотки к объектам в синхронизации. Единственное что добавилось это команда addfile для того чтобы добавить пару «ИД-путь к файлу» в общий реестр. Ну потому что если вы добавляете файлы через питон, надо чтобы они как то добавлялись в этот реестр. Ну и все прекрасно работает.

Кстати говоря файлы передаются/принимаются в бинарном виде а не в base64 и поддерживается докачка. Это важно.

 

Изменения по работе с перехватом клавиатуры.

1.    Появилась опция «Перехватывать все клавиши» которая регистрирует и события нажатия и события отпускания всех клавиш на экранах. Т.е. 2 события если устройство это поддерживает. И именно все клавиши. Т.е. если ввод штрихкода через клавиатуру то оно будет мешать, лучше через интент
2.    Появилась возможность обрабатывать клавиатуру на главном экране через сервис. Так можно запускать процессы с клавиатуры например.

Общий модуль Python

 

 

Тут все просто – можно разместить свои процедуры в общем модуле, далее использовать «import ui_general» и вызывать свои процедуры из любых других обработчиков

 

Другие изменения

 

  •     Дата в контейнерах. Можно размещать сколько угодно и как угодно
  •     Отключение вопроса при закрытии экрана
  •     remove_queue для NoSQL – можно (и нужно!) перечислять id удаляемых объектов через точку с запятой
  •     В ActiveCV object_caption_list можно задавать верхний заголовок большой, с HTML (т.е. с выделениями и переносами) для этого надо задать JSON массив (кстати помимо обязательных можно добавлять и люые ключи если надо) [{"caption":"заголовок в HTML","любые ключи":"любые значения"},{}]
  •     В ActiveCV добавился синий список blue_list
  •     Можно задавать фокус на люом поле ввода через команду FocusField Переменные.Вставить("FocusField","qty");

Исправленные ошибки

 

  •     Исправлено и протестировано на большом количестве моделей ТСД работа с штрихкодом через intent
  •     Исправлены проблемы с фоновыми процессами и обработчиками по расписанию
  •     Другие исправления
     

Основная статья с комплектом разработчика тут: //sale.itcity.ru/public/1153616/

 

 

has been added to your cart:
Оформление заказа