Новое приложение конструктора SimpleUI

19.04.22

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

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

Конструктор написан на том же стеке Python+PySimpleGUI что и стационарный клиент и его можно скомпилировать под любую платформу (по умолчанию на Win64). Исходники доступны на GitHub https://github.com/dvdocumentation/simple_editor  Python выбран потому что в SimpleUI вообще широко используется этот язык в качестве скриптового и других местах в экосистеме. Несмотря на несколько архаичный интерфейс функционально  все направлено на увеличение скорости разработки, простоту и удобство.

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

С конфигурациями SimpleUI теперь тоже можно работать на Git и они будут публиковаться тут: https://github.com/dvdocumentation/simpleui_samples

Сейчас там опубликована первая конфигурация конфигурация "Быстрый старт" с исходниками, к статье документации  https://uitxt.readthedocs.io/ru/latest/gettingstarted.html

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

Вкратце достоинства такие:

 

  • Мультиплатформенный и на бесплатном Python (не требует лицензии) – можно скомпилировать под любую платформу
  • Открытый код на GitHub
  • Многоязычный интерфейс, возможность подключать свои локализации
  • Можно открывать и редактировать, а не только создавать
  • Мгновенное отражение изменений в конфигурации при редактировании (т.е. автосохранение и сразу JSON пересобирается)
  • Мгновенное отражение изменений в исходниках на Python и трансляция на устройство
  • Встроенный Flask сервер – не нужно настраивать http-сервер
  • Легкое развертывание благодаря QR-коду
  • Не нужно именовать контейнеры и вообще можно работать с контейнерами и другими элементами как с кусками JSON (а не справочниками), что дает большие возможности
  • Можно копировать контейнеры между проектами или внутри проекта через буфер обмена на любых уровнях, можно вставить контейнер даже внутри себя – любая степень свободы через буфер обмена

 

Функционал, естественно, покрывает полный спектр возможностей платформы но есть изменения:

  • отказ от некоторых старых избыточных вещей которые наработались за последние 4 года
  • шаблоны стилей и шаблоны распознавания – теперь хранятся в теле конфигурации
  • общий модуль отменен, так как есть дополнительные модули Python и их можно подключать сколько угодно
  • Обработчик «при запуске конфигурации» теперь в «Таймерах по расписанию» с периодом «-1» 
  • Работа с -Python и -онлайн функциями только с вариантом «по именам», т.е. вариант с подключаемыми целостными файлами а не отдельными скриптами

Вот тут видео совсем ранней альфа версии, сейчас, к релизу стало получше:


 

У SimpleUI появился Telegram-канал:  https://t.me/devsimpleui

См. также

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

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

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

2880 руб.

03.12.2018    55326    139    102    

162

SALE! 25%

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

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

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

13200 9900 руб.

27.12.2021    33961    83    159    

178

"Мобильный ТСД" - инвентаризация и сбор штрихкодов для 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    92622    522    186    

298

Склад 15 ВЕЩЕВОЙ - автоматизация складов с маркированным товаром

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

Программное обеспечение для автоматизации складских операций со встроенными функциями работы с маркированной продукцией. Предназначено для автоматизации всех товароучетных операций на складах, обычных и адресного хранения. «Склад 15 ВЕЩЕВОЙ» объединил в себе несколько товарных групп маркированного товара (ОБУВЬ, ОДЕЖДА, ШИНЫ, ПАРФЮМ, БАДы, ЮВЕЛИРНЫЕ ИЗДЕЛИЯ), которые чаще всего встречаются в складской логистике вместе.

33550 руб.

02.06.2023    3074    2    0    

0

Магазин 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    3495    2    0    

4

Мобильная торговля для Android

Розничная торговля WEB-интеграция Мобильная разработка Мобильная платформа Управленческий учет Платные (руб)

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

4800 руб.

19.02.2008    42197    24    24    

40

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

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

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

1 стартмани

20.03.2024    1671    0    informa1555    1    

41
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Wasssaby 2 19.04.22 16:17 Сейчас в теме
Добрый день Дмитрий. Скачал на попробовать, возникло много вопросов:
1. Открыл приложение на винде и сразу же при переименовании процесса ошибка:
Traceback (most recent call last):
File "C:\PythonProjects\simple_editor-main\simple_editor.py", line 2882, in <module>
row_selected = values['ConfigurationTable'][0]
IndexError: list index out of range

Вышел из положения сместив инструкции в строках 2938, 2839 на 4 пробела вправо. Чтобы они попали под условие if

2.еще строка 2882 row_selected = values['ConfigurationTable'][0] ошибалась также с out if range.
Выкрутился проверкой ConfigurationTable (там на момент ошибки было [] ) и если пустое - просто присваивал row_selected =0

3. Ну и как не бился, подключить телефон к новой конфигурации так и не смог.
QR из программы показывает вот это:
{"onlineURL": "192.168.1.107:5000", "RawConfigurationServiceAuth": "", "RawConfigurationServiceON": true, "OnlineSplitMode": true}

Как то вроде маловато настроек, по сравнению с прошлыми версиями.

Это копия текста из канала с телеграмма.


МОжет у меня версия питона не та, или еще что то не обновилось? Или просто пока клиент сыроват.
2. informa1555 2650 19.04.22 16:39 Сейчас в теме
(1) Добрый день! Я в телеграме ответил, по поводу 3 - исправил. 1 и 2 у меня никак не проявляются что бы я не делал. Т.е. например я открываю конфу или создаю конфу - все меняется.
ponkratov; +1 Ответить
5. Wasssaby 2 20.04.22 08:03 Сейчас в теме
(2) Да 3-й пункт - он же главный.

Первые два так, шероховатости.
Скачал с гита по новому и все заработало.
Конфа на телефоне запустилась.
Так что большое спасибо.
3. stos 34 19.04.22 21:20 Сейчас в теме
Дмитрий, добрый день.
Все круто! Спасибо.

Как-то непрозрачно получается, что открываешь конфигуратор (инструкцию, естессно, не читаешь), радостно лезешь создавать операции, экраны. И облом(. Зависает с ошибкой. Оказывается, прочтя инструкцию, нужно СНАЧАЛА создать проект, и уже потом можно предаваться радостям). Первый раз нарвался - аж ахнул от досады, что всё плохо. Может, при открытии сразу создавать проект, или как-то предупреждать?

А отладка питоновского кода будет? В видео не нашел.

И почему нельзя переопределить поведение кнопки План-факт? Хочу не табличку, а список карточек с обработкой нажатия на карточку.
4. informa1555 2650 19.04.22 22:32 Сейчас в теме
(3) Спасибо! Да по идее создавать то надо, только файл то где то надо размещать, а пока пользовптель не выбрал непонятно где - временный? Надо подумать. Отладка, ну она никуда не делась как у меня в статье про отладку есть , там в видео и в документации так и есть, только сейчас даже проще стало - сейчас же все обработчики в одном файле , туда прямо в него фласк засовываешь и работаешь онлайн, потом фласк убираешь и на устройство. Почти никаких лишних движений, даже можно автоматизировать на уровне конструктора по идее.

Переопределить кнопку - да они по идее вообще не особо нужны, так как можно свои кнопки нарисовать с картинками снизу и свои экраны наваять(скоро появится ещё больше степеней свободы со списками кстати). Так и делают обычно, разметка позволяет. Это так, осталось от времен когда платформа больше на ТСД использовалась.
6. stos 34 22.04.22 15:46 Сейчас в теме
В релизе 9.05 для включения отладки прописывали в 1с в тексте обработчика вызов функции: hashMap.put("py_function","test_on_start")
А сейчас как? Есть ведь только вызов функции по имени. Никак не пойму
Прикрепленные файлы:
7. informa1555 2650 22.04.22 17:12 Сейчас в теме
(6) Добрый день! Ну с py_function ничего не поменялось кстати. А по поводу отладки изобразил и проверил сейчас за 5 минут. Проще всего это сделать так:
1) сделал debug.py c вот таким текстом (NewFields_onCreate() - отлаживаемая процедура)

from flask import Flask
from flask import request
import json
app = Flask(__name__)

def NewFields_onCreate():
    #input_type: https://developer.android.com/reference/android/text/InputType
    default_password="123"
    if hashMap.containsKey("password"):
        default_password=hashMap.get("password")

    default_login=""
    if hashMap.containsKey("login"):
        default_login=hashMap.get("login")

    j1 = {"hint":"Логин","default_text":default_login}
    hashMap.put("fill_login",json.dumps(j1))

    j2 = {"hint":"Пароль","default_text":default_password,"counter":True,"counter_max":15,"input_type":145,"password":True}
    hashMap.put("fill_password",json.dumps(j2))
    
    return hashMap



@app.route('/set_input_direct/<method>', methods=['POST'])
def set_input(method):
    func = method
    jdata = json.loads(request.data.decode("utf-8"))
    f = globals()[func]
    hashMap.d=jdata
    f()
    jdata['hashmap'] = hashMap.export()
    jdata['stop'] =False
    jdata['ErrorMessage']=""
    jdata['Rows']=[]

    return json.dumps(jdata)

@app.route('/post_screenshot', methods=['POST'])
def post_screenshot():
    d = request.data
    return "1"

class hashMap:
    d = {}
    def put(key,val):
        hashMap.d[key]=val
    def get(key):
        return hashMap.d.get(key)
    def remove(key):
        if key in hashMap.d:
            hashMap.d.pop(key)
    def containsKey(key):
        return  key in hashMap.d
    def export():
        ex_hashMap = []
        for key in hashMap.d.keys():
            ex_hashMap.append({"key":key,"value":hashMap.d[key]})
        return ex_hashMap

if __name__ == '__main__':
    
    app.run(host='0.0.0.0', port=2075,debug=True)

Показать


2) В конструкторе сделал так - передвинул функцию с питона на онлайн (пример во вложении)


3) В настройках надо поставить лимит на запросы =0, иначе не будет успевать дожидаться и разделенный режим и URL скрипта выше с портом (больше ничего не надо)
Прикрепленные файлы:
8. stos 34 22.04.22 18:56 Сейчас в теме
(7)А если нет возможности передвинуть? Вы же не исключаете совместную работу онлайн и питон обработчиков? Например, в питон выбираю данные из nosql, и на втором круге этого обработчика эти данные обрабатываю в 1С

"Ну с py_function ничего не поменялось кстати" -
И опять я не пойму: куда впихнуть py_fuction? И надо ли оно теперь?
9. informa1555 2650 22.04.22 19:23 Сейчас в теме
(8) так hashMap или Переменные - оно никуда не делись. Если в стеке переменных будет py_function и url куда отправлять она отправит. Платформа не стала другой. Что касается не исключаю ли я одновременно, да я все понимаю - когда нибудь это будет массив с любым количеством вызовов онлайн/офлайн хоть по несколько раз на каждое событие. Таким образом можно задавать последовательность и с noSql работать удобнее. Но потом)Кстати при запросе из noSQL он сейчас сам уходит на 2й круг, т.е. считывает и снова выполняет обработчик 2 такта получается.
10. stos 34 22.04.22 19:41 Сейчас в теме
(9)Можете развеять мою дремучесть?
Дано: всё прекрасно работает, всё хорошо, все довольны. Но возникает необходимость что-то допилить в одном питоновском методе на устройстве. Как этот метод отладить? По шагам.
11. informa1555 2650 22.04.22 20:26 Сейчас в теме
(10) так выше же написал по шагам. Это вариант перенести вызов питон в онлайн обработчик, запустить, отладить и вернуть назад. Второй вариант , в любом обработчике - оффлайн поместить py_function - когда платформа это увидит вместо вызова онлайн сделает вызов питона онлайн. Как одновременно онлайн/офллайн в таком случае- никак сейчас в режиме отладки. Получается при любом раскладе питон запрещает онлайн обработчик.
12. Wasssaby 2 28.04.22 08:51 Сейчас в теме
Подскажите про настройки для отладки по FLASK в новом клиенте.

В модуле для телефона пишу это:
hashMap.put("py_online_url","http://192.168.1.107:2075");
hashMap.put("py_online_user","usr");
hashMap.put("py_online_password","");
hashMap.put("py_function","get_changes_from_server");

В отдельном модуле описываю процедуру get_changes_from_server и все обвесы как тут:
https://uitxt.readthedocs.io/ru/latest/debug.html#http

Какие настройки в редакторе поставить чтобы процедура выполнялась?

Мне пишет "ошибка соединения.

hashMap.put("py_online_url","http://192.168.1.107:2075"); тут мой реальный локальный ип и порт, телефон в одной сети с компом

В процедурке на компе фласк по этому порту слушает. И отвечает. Как его вызвать из SimpleUI?
13. Wasssaby 2 28.04.22 09:42 Сейчас в теме
Сумбурный вопрос получился, поправлюсь:
1. Создаю чистую конфигурацию
2. Добавляю 1 процесс, в нем один контейнер, в нем одну кнопку.
3. В обработчик при запуске добавляю свою процедуру get_changes_from_server
4. В питон файле в телефон оставляю только эти строчки:

hashMap.put("py_online_url","http://192.168.1.107:2075");
hashMap.put("py_online_user","usr");
hashMap.put("py_online_password","");
hashMap.put("py_function","get_changes_from_server");

5. Еще один модуль, с фласком, как в справке, запускаю на компе, комп с айпишником 192.168.1.107:2075, в нем процедура для отладки get_changes_from_server

Какие настройки должны быть в редакторе, чтобы я смог отловить процедуру get_changes_from_server
Или что я в принципе не так делаю?
15. stos 34 28.04.22 12:47 Сейчас в теме
(13)а с компа устройство пингуется?
14. Wasssaby 2 28.04.22 12:45 Сейчас в теме
Пожалуй, попробую с другой стороны: а можно рабочий пример отладки любой примитивной конфы. В виде файлика ui для телефона и файлика .py с фласком?
16. Wasssaby 2 28.04.22 12:49 Сейчас в теме
Ну, пинговать не пробовал, SQL запросы из консоли выполняет.
Порты я менять пробовал.
Из браузера в телефоне - видит
А при нажатии кнопки с обработчиком - пишет ошибка соединения
17. al_zzz 310 30.11.22 12:38 Сейчас в теме
Здравствуйте, Дмитрий! Хочу воспользоваться конструктором SimpleUI. Пытаюсь запустить пример для быстрого старта и делаю всё как в видео.
Но при сканировании qr у меня приложение на смартфоне пишет, что конфигурация загружена, а потом не может загрузить конфигурацию. Что я делаю не так?
Если смотреть в настройках на устройстве, там такой путь(скрин). Ip соответствует. Порт открыт.
Прикрепленные файлы:
18. informa1555 2650 30.11.22 12:44 Сейчас в теме
(17) Добрый день! Попробуйте в браузере этот url вбить на устройстве
19. al_zzz 310 30.11.22 13:06 Сейчас в теме
(18) Дело в файрволле, похоже, было. Дмитрий, а можно как-то так указывать в конструкторе, чтоб адрес не из локальной сети в настройки подставлялся? Или, чтоб, можно было указывать конкретный ip в самом конструкторе?
20. informa1555 2650 30.11.22 13:18 Сейчас в теме
(19) ну там же исходники есть, можно подправить если надо
Оставьте свое сообщение