Вопросы по Simple UI/Simple WMS

1. informa1555 2650 25.02.19 10:52 Сейчас в теме
Вопросы-ответы для разработчиков по использованию конструктора [https://infostart.ru/public/1153616/] и [https://infostart.ru/public/976636/] .

!!!Новый форум для разработчиков: forum.simpleui.ru
f333; gorakh; colV; EasyWay; +4 Ответить
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
701. informa1555 2650 03.06.22 09:55 Сейчас в теме
(700) Добрый день! Время ожидания сеанса в 1С указано очень большое, поставьте дефолтное. То, что несколько - это тоже нормально - там разные запросы. Там стоит 1800 секунд помоему.
702. user1142959 1 08.06.22 10:03 Сейчас в теме
Подскажите, с ТСД Datalogic дружит разработка? Какие модели Datalogic используете? Что сейчас лучше купить?
703. informa1555 2650 08.06.22 14:15 Сейчас в теме
(702) Добрый день! Она работает в принципе с люым железом которое поддерживает либо подписку на интенты либо через клавиатуру (любым способом). Интенты предпочтительнее.
704. al_zzz 310 11.06.22 11:10 Сейчас в теме
Здравствуйте, Дмитрий! Извините, что надоедаю, но не нашел ответ ни в документации, ни в видеороликах.
1. Как вернуться на стартовое меню из процесса? Какой экран надо прописать в Переменные.Вставить("ShowScreen",""), чтоб это сделать?
2. Можно ли как-то переопределить кнопку "План-факт"? Как это сделать, если можно?
705. informa1555 2650 11.06.22 12:17 Сейчас в теме
(704)
Добрый день!
1. FinishProcess
2.Можно. central_table и вывести свою таблицу. Еще вариант - вообще скрыть нижние кнопки и сделать свои, со своими картинками, обработчиками и т.д.
706. al_zzz 310 11.06.22 19:41 Сейчас в теме
(705)
FinishProcess

Переменные.Вставить("ShowScreen","FinishProcess"); - вот так не срабатывает. Надо как-то по-другому?
707. informa1555 2650 13.06.22 16:11 Сейчас в теме
(706) Не, Переменные.Вставить("FinishProcess","");
708. al_zzz 310 14.06.22 21:19 Сейчас в теме
(707)
Переменные.Вставить("FinishProcess","");

Спасибо, Дмитрий! Так работает.
Сейчас ещё два вопроса возникло:
1. Тестирую на Xiaomi Redmi Note 8 Pro. Когда изменяется ориентация телефона с вертикальной на горизонтальную почему-то, с любого экрана перебрасывает на первый экран процесса(скрины приложил). Непонятно, почему так. С экрана 2 нет никаких элементов управления, чтоб попасть на первый экран.
Прикрепленные файлы:
711. informa1555 2650 15.06.22 09:09 Сейчас в теме
(708) Забыл ответить про переворот. Переворот это мое больное место. Он перезапускает процесс. Если процесс состоит из более одного экрана - проблема. Пока не решил это.
709. al_zzz 310 14.06.22 21:28 Сейчас в теме
2. По клику на элементе(2 скрин) списка открываю новый экран и вывожу новый список(второй список формирую по аналогии с первым в событии "При запуске" и в отладке вижу, что он не пустой). Открывается экран, но на нём список не выводится.

Процедура ПоказатьМестаПриЗапуске(Переменные) Экспорт	
	//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	АХП_Ложементы.Наименование КАК Наименование,
	|	АХП_Ложементы.Ссылка Как Ложемент
	|ИЗ
	|	Справочник.АХП_Ложементы КАК АХП_Ложементы
	|ГДЕ
	|	АХП_Ложементы.ЭтоГруппа
	|
	|УПОРЯДОЧИТЬ ПО
	|	АХП_Ложементы.Порядок";
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	JSONстр = "{""place"":[]}";
	
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(JSONстр);
	СтруктураJSON = ПрочитатьJSON(ЧтениеJSON);
	ЧтениеJSON.Закрыть();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		СтрокаТовара = Новый Структура;
		
		МассивЭлементов = Новый Массив;
		
		Элемент1 = Новый Структура;
		Элемент1.Вставить("key","Место");
		Элемент1.Вставить("value",СокрЛП(ВыборкаДетальныеЗаписи.Наименование));//"Заказ №"+Выб.Номер+ " от "+ Формат(Выб.Дата,"ДФ=dd.MM.yyyy"));
		Элемент1.Вставить("size","30");
		Элемент1.Вставить("color","#1b31c2");
		Элемент1.Вставить("caption_size","10");
		Элемент1.Вставить("caption_color","#1b31c2");
		МассивЭлементов.Добавить(Элемент1);  
		
		Элемент1 = Новый Структура;
		Элемент1.Вставить("key","УидМеста");
		Элемент1.Вставить("value",СокрЛП(ВыборкаДетальныеЗаписи.Ложемент.УникальныйИдентификатор()));//"Заказ №"+Выб.Номер+ " от "+ Формат(Выб.Дата,"ДФ=dd.MM.yyyy"));
		Элемент1.Вставить("size","1");
		Элемент1.Вставить("color","#ffffff");
		Элемент1.Вставить("caption_size","1");
		Элемент1.Вставить("caption_color","#ffffff");
		МассивЭлементов.Добавить(Элемент1);
		
		СтрокаТовара.Вставить("items",МассивЭлементов);
		
		
		СтруктураJSON.place.Добавить(СтрокаТовара);
	КонецЦикла;
	
	ЗаписьJSON = Новый ЗаписьJSON;
	ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет, " ", Истина);
	
	ЗаписьJSON.УстановитьСтроку(ПараметрыJSON);
	ЗаписатьJSON(ЗаписьJSON,СтруктураJSON);
	
	Переменные.Вставить("place",ЗаписьJSON.Закрыть());
	//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
КонецПроцедуры
Показать


Что я делаю не так?
Прикрепленные файлы:
710. informa1555 2650 15.06.22 09:08 Сейчас в теме
(709)
JSONстр = "{""place"":[]}";
вот это меня смущает. Честно говоря не совсем понял что тут должно быть. Есть определенные форматы для карточек тут помоему не тот формат какой то . И кстати, рекомендую пользовтаься customcards уж сразу, так как это более переспективно. Публиковал в одном из последних релизов.
712. al_zzz 310 15.06.22 11:16 Сейчас в теме
Вот такой код у меня нормально список формирует и показывает:
JSONстр = "{""cards"":[]}";

ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(JSONстр);
СтруктураJSON = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();

З = Новый Запрос;
ДокРазмещение = Документы.АХП_Размещение.ПолучитьСсылку(Новый УникальныйИдентификатор(СокрЛП(Переменные.DocRef)));

З.УстановитьПараметр("Регистратор",ДокРазмещение);

З.Текст =
"ВЫБРАТЬ
| АХП_ДвиженияПолуфабрикатов.Номенклатура КАК Номенклатура,
| АХП_ДвиженияПолуфабрикатов.Серия КАК Серия,
| АХП_ДвиженияПолуфабрикатов.МаркаСтали КАК МаркаСтали,
| АХП_ДвиженияПолуфабрикатов.Вес КАК Вес,
| АХП_ДвиженияПолуфабрикатов.Ширина КАК Ширина,
| АХП_ДвиженияПолуфабрикатов.Толщина КАК Толщина,
| АХП_ДвиженияПолуфабрикатов.Куда КАК Куда
|ИЗ
| РегистрСведений.АХП_ДвиженияПолуфабрикатов КАК АХП_ДвиженияПолуфабрикатов
|ГДЕ
| АХП_ДвиженияПолуфабрикатов.Регистратор = &Регистратор";

Выб = З.Выполнить().Выбрать();

Пока Выб.Следующий() Цикл


СтрокаТовара = Новый Структура;
//СтрокаТовара.Вставить("key",Выб.Штрихкод); //любой уникальный ключ для обработки нажатия (не отображается)
////СтрокаТовара.Вставить("picture",СтрокаBase64);//сюда можно добавить картинку
//СтрокаТовара.Вставить("description",Выб.Комментарий);

//Видимые элементы карточки
МассивЭлементов = Новый Массив;

Элемент1 = Новый Структура;
Элемент1.Вставить("key","Материал");
Элемент1.Вставить("value",СокрЛП(Выб.Номенклатура));//"Заказ №"+Выб.Номер+ " от "+ Формат(Выб.Дата,"ДФ=dd.MM.yyyy"));
Элемент1.Вставить("size","30");
Элемент1.Вставить("color","#1b31c2");
Элемент1.Вставить("caption_size","9");
Элемент1.Вставить("caption_color","#1b31c2");
МассивЭлементов.Добавить(Элемент1);

Элемент1 = Новый Структура;
Элемент1.Вставить("key","Серия");
Элемент1.Вставить("value",СокрЛП(Выб.Серия.Номер));//"Заказ №"+Выб.Номер+ " от "+ Формат(Выб.Дата,"ДФ=dd.MM.yyyy"));
Элемент1.Вставить("size","25");
Элемент1.Вставить("color","#1b31c2");
Элемент1.Вставить("caption_size","12");
Элемент1.Вставить("caption_color","#1b31c2");
МассивЭлементов.Добавить(Элемент1);

Элемент3 = Новый Структура;
Элемент3.Вставить("key","Вес");
Элемент3.Вставить("value",СокрЛП(Выб.Вес));
Элемент3.Вставить("size","25");
Элемент3.Вставить("color","#131e61");

Элемент3.Вставить("caption_size","12");
Элемент3.Вставить("caption_color","#1b31c2");
МассивЭлементов.Добавить(Элемент3);


СтрокаТовара.Вставить("items",МассивЭлементов);


СтруктураJSON.cards.Добавить(СтрокаТовара);


КонецЦикла;

ЗаписьJSON = Новый ЗаписьJSON;
ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет, " ", Истина);

ЗаписьJSON.УстановитьСтроку(ПараметрыJSON);
ЗаписатьJSON(ЗаписьJSON,СтруктураJSON);

Переменные.Вставить("cards",ЗаписьJSON.Закрыть());
713. informa1555 2650 15.06.22 11:49 Сейчас в теме
(712)
(712)
SONстр = "{""cards"":[]}";
правильно, потому что тут ключевое слово cards. Там формат определенный его надо придерживаться. Посмотрите в документации. https://uitxt.readthedocs.io/ru/latest/common_functions.html#id3
714. al_zzz 310 15.06.22 12:28 Сейчас в теме
(713) Понял. Поправил. Всё заработало как надо! Спасибо большое!
715. Ren2308 18.07.22 09:33 Сейчас в теме
Доброе время суток.
столкнулся с проблемой в 1С(неправильно подчитывает длину строки):
Пример кода:
Если Переменные.listener = "barcode"  Тогда
    Строка = СокрЛП(Переменные.barcode);  // в штрихкоде зашифровано как ''pupkin.cth18"+Символы.Таб+"Aa123456"
    loginuser = СокрЛП(Лев(Строка, Найти(Строка,Символы.Таб)));
    входОС = СокрЛП("\\domen\"+loginuser);
КонецЕсли;

и в последующей обработки пользователей БД не находит пользователя по входу в ОС.
проверил длину loginuser и выходит длинна больше чем есть.. в самой 1с код нормально работает
проверку устроил так:
ДлиннаСтроки =СтрДлина(loginuser);
Переменные.Вставить("toast",ДлиннаСтроки);
716. informa1555 2650 18.07.22 10:04 Сейчас в теме
(715) Добрый день! Возможно вы подключили сканер в режиме клавиатуры, в этом случае спецсимволы могут трактоваться неверно. Там есть еще "Использовать подписку на события сканера" в таком виде можно попробовать, если ТСД поддерживает.
717. Ren2308 18.07.22 13:10 Сейчас в теме
(716) Спасибо. Помогло
На всякий случай кто столкнется с аппаратом АТОЛ.Smart Slim Pluse
Сообщения от сканера: com.xcheng.scanner.action.BARCODE_DECODING_BROADCAST
Переменная сканера: EXTRA_BARCODE_DECODING_DATA

ну и для кучи тип ШК EXTRA_BARCODE_DECODING_SYMBOLE
718. VKuser308031989 24.07.22 16:21 Сейчас в теме
Здравствуйте. Скажите пожалуйста может ли кто-то научить пользоваться данным конструктором. Просто у меня не получается даже просто через куаркод на андроид 10 запустить как в документации показано. Сами программы на виндовс 10, при сборке приложения начинает тормозить, и вырубаеться. Скажите пожалуйста что я не так делаю. Спасибо
719. informa1555 2650 24.07.22 17:40 Сейчас в теме
(718) Добрый день! Не совсем понял при какой сборке. Но если из меню сформировали qr код, в симпле на устройстве его читаете и ничего не происходит, то возможно компьютер и устройство в разных подсетях - vpn или что то такое. В общем фласковский веб сервис, который запускается с конструктором не виден на устройстве. Других причин вроде нет.
720. VKuser308031989 25.07.22 06:57 Сейчас в теме
(719) У меня компьютер работает через модем. Под сборкой я подразумеваю то что указано на фото. Qr код я формирую без vpn, проверял. А как тогда можно найти веб сервис?
Прикрепленные файлы:
721. stos 34 29.07.22 13:47 Сейчас в теме
Добрый день. Подозрение, что в конструкторе обработчики Питона ПриЗапуске и Обработчик ввода на устройстве оба вызывают процедуру обработчика ПриЗапуске
Прикрепленные файлы:
723. informa1555 2650 29.07.22 15:37 Сейчас в теме
(721) Добрый день! Просто после события ввода, экран (этот же или тот же) снова отрисовывается и при отрисовке снова отрабатывает При запуске. А Обработчик ввода судя по всему не отрабатывает. Не дошли изменения конфигурации. Посмостите в PyHandlers, программа должна сообщить о том что конфигурация обновлена
725. stos 34 30.07.22 12:30 Сейчас в теме
(723)А зачем после события ввода вновь вызывается событие ПриЗапуске? Разве это правильно? И как определить, на первом вызове процедура ПриЗапуске, или уже на втором, после отработки события ввода?
726. informa1555 2650 30.07.22 12:57 Сейчас в теме
(725) смотрите, вот вы на экране 1 нажимаете кнопку в которой showscreen переключает на Экран 2 у которого срабатывает При открытии. Вроде нормально? Представим что там нет showscreen и остаёмся на этом экране. Он должен перерисовываться? Да. Ну вот событие и вызывается. В следующем релизе будет команда noRefresh которой можно будет убрать обновление , а так оно работает, никому не мешает. Отделить первую отрисовку от последующих можно переменной своей.
727. stos 34 30.07.22 13:26 Сейчас в теме
(726)Это с какого релиза так заработала программа? в 9.05 такого не было. Как же не мешает? Например, в ПриСтарте выбираются данные из 1с, а в ПриВводе идет работа с этими данными, и тут повторно вызывается ПриСтарте - опять пойдет обращение к 1с? И чтобы повторное обращение не шло, нужно завести дополнительную переменную. Что-то тут не так. Логичнее просто перерисовать экран, без вызова обработчика ПриСтарте
728. informa1555 2650 30.07.22 13:56 Сейчас в теме
(727) Да всегда у меня так было. Уже несколько лет. У меня вызов обработчиков в процедуре отрисовки и стоит, он всегда и стоял там. Я никуда это и перенести по идее не могу. Если не надо чтобы выполнялся - добавьте влаг в переменные, при первом вызове сбрасывайте да и все.
722. stos 34 29.07.22 14:22 Сейчас в теме
Не понятно, в какой момент конструктор перечитывает исходный файл обработчиков? Изменил текст программы, сохранил изменения, обновляю конфигурацию на устройстве через пункт меню Обновить конфигурации или через QR-настройки, получаю сообщение Загружено обновление конфигурации, но на устройстве действует старый алгоритм. Проверял при помощи toast.
724. informa1555 2650 29.07.22 15:39 Сейчас в теме
(722) Перевыберите файл обработчиков - обычно этого достаточно. Перечитывание происходит в фоне через каждую секунду. Меняться должно PyHandlers
729. stos 34 10.08.22 12:13 Сейчас в теме
Дмитрий, добрый день.

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

- Что такое Настройки варианта? Когда и куда они записываются? Столкнулся с тем, что в программе в hashMap переменные WS_URL, WS_USER,WS_PASS содержат данные из настройки, которую я уже давно изменил. В меню Настройки на устройстве стоит правильное значение, в редакторе конфигурации на закладке Свойства тоже правильные. И только на устройстве, в пункте Сохранить настройки увидел эти устаревшие значения. Ладно, поменял на нужные, получил тост: Конфигурация добавлена в локальное хранилище... Но ничего не поменялось! Если опять зайти в Сохранить настройки, то они будут старыми. Как это работает?
730. informa1555 2650 10.08.22 13:15 Сейчас в теме
(729) Добрый день! Ну код simple_editior открыт же, можно форкнуть и исправить. Насколько я знаю пишется еще один редактор, надеюсь там таких ляпов не будет.
По поводу Настройки варианта. Есть верхнее меню (левый верхний угол) - это ханилище настроек. Когда нажимаешь на такую карточку идет перенос настроек в настройки программы. Т.е. это шаблоны настроек. Есть нижнее - это как бы "установленные" конфигурации, хранящиеся в памяти. При выборе такого пункта идет сразу загрузка конфы из памяти Я так понимаю речь идет о верхнем - это настройки подключения к беку. В WS_URL, WS_USER и т.д. записываются данные, при запуске приложения, данные берутся из настроек программы.Конфигурация добавлена в локальное хранилище значит что она скопировалась в докальное хранилище ее оттуда можно вызывать. Настройки она менять не будет. Это как бы "установленные приложения", каждое такое приложение имеет связь со своим поставщиком - из его сервиса она обновляется при запуска приложения, может иметь исполняемую в фоне часть, даже если не запущено и т.д. Ну и переключаться между ними можно без изменения настроек. Сами настройки храняться вместе с конфой в локальном хранилище, сама конфа о них знает, посылает запросы (если речь идет о онлайн) куда следует. Если речь о офлайн то она просто загружется из памяти и работает. Вы считаете что нужно менять WS_URL и т.д. при переключении?
731. stos 34 11.08.22 13:51 Сейчас в теме
(730)
Вы считаете что нужно менять WS_URL и т.д. при переключении?
Пока не знаю даже, как лучше. Может, Вы и правы, а это я логику не пойму. Я себе представлял - настроил в меню Настройки - и всё. А, оказывается, эти настройки еще в нескольких местах. Причем нужное мне значение записать не удается.
734. informa1555 2650 11.08.22 16:11 Сейчас в теме
(731) Нет, настроил в Меню Настройки и все. Верхнее хранилище, Нижнее - это дополнительные хранилища. Про нижнее я писал тут https://infostart.ru/1c/articles/1597030/

А так можно только Настройками пользоваться и все. Из настроек в WS_URL и т.д. попадает при запуске программы, я проверил.
732. user1827442 11.08.22 14:04 Сейчас в теме
Здравствуйте, я новый разработчик, при запуске по инструкции такая ошибка в андроид, как ее убрать? Ошибка что модуль pyhandlers_conf не установлен как я понимаю, но где его взять для установки?
733. user1827442 11.08.22 15:39 Сейчас в теме
(732) вот такая проблема наблюдается и с быстрым стартом из папки проекта, что я делал, открываю проект Sample1_GettingStarted.ui прописываю путь к файлу обработчиков пайтон handlers_sample1, после этого передаю qr кодом в приложение, и такая ошибка возникает, пробовал ставить разные версии как десктопа так и андроид. питон в системе 3.8.
Не понимаю в чем проблема, делал все по документации как быстрый старт так и по видео. Или я где-то зависимость упускаю(но ошибка говорит что питоновский модуль не находит), или какой-то баг.
В тексте конфигурации "PyHandlers": обновляется при изменении файла и что-то генерирует.
в чем может быть проблема?
Прикрепленные файлы:
735. informa1555 2650 11.08.22 16:16 Сейчас в теме
(733) Добрый день! Проверьте разрешения у приложения, проверьте что конфа точно доходит на устройство (можно что то поменять в интерфейсе, название процесса например), версию приложения. Больше ничего в голову не приходит. Должно работать...
736. user1827442 11.08.22 18:47 Сейчас в теме
(735) конфиги передаются в приложение, так как данные обновляются. как я понимаю что-то на стороне редактора не настроено. у меня только файл обработчиков подключается, а остальные обработчики я не прописывал. Другие проекты ту же ошибку дают. как разрешения у приложения на пк проверить? андроид приложению все давал, которые запрашивались
737. informa1555 2650 11.08.22 19:15 Сейчас в теме
(736) да на ПК то не надо ничего. Попробуйте файл конфы из комплекта разработчика просто на устройство передать и открыть приложением( из файлового менеджера например)
Версия приложения какая?
738. user1827442 11.08.22 19:49 Сейчас в теме
(737) в общем оказалось в телефоне дело. так как на телефоне передал файл и та же ошибка, попробовал через эмулятор андроида файл передать, все ок.
739. informa1555 2650 11.08.22 20:17 Сейчас в теме
(738) Так. Вот сейчас мне стало интересно. Это что за телефон такой? Какая версия андроид? Точно там все разрешения и нет всяких "дублей приложения" ? Я тестировал и на 12м Андроиде.
740. giaprog 25.08.22 15:54 Сейчас в теме
Добрый день! Новый редактор великолепен! Просветите, пожалуйста... получается 1с гудбай для симпла? А если в бэке всё же остается 1с, то расширение с http сервисом SimpleWMS не требуется? Есть ли пример в поставках как сделать запрос к 1с (например список товаров в УТ) с помощью новых обработчиков на python и разместить в карточках на мобильном клиенте? Благодарю.
741. informa1555 2650 25.08.22 16:43 Сейчас в теме
(740) Добрый день! Спасибо на добром слове, но там конечно есть недоработки (как выше писали с доп. модулями глюки, также с копипастом кой какая заморочка если не кнопками а через клавиатуру). Я все надеюсь что кто ни будь на гитхабе форкнет и поисправляет это все)) Эх мячты... Что касается 1С, то начиная с выхода редактора я демо примеры выкладываю в виде UI-файлов. На беке может быть 1С, Axapta, Manhatten, SAP и т.д. без разницы, но только я рекомендую разделенный режим(даже если не пользоваться новым редактором) - т.е. в 1С это расширение с обработчиками, а конструктор где то в другом месте. Это удобно в плане поддрежки множества проектов, масштабирования, администрирования 1С и т.д. Запрсос в разделенном режиме к 1С конечно можно сделать и из питона, но вообще там же есть "онлайн функции" Т.е. вот например есть у вас расширение, в нем в общем модуле есть функция "ПриОткрытииДокумента" вы в "При запуске (online)" эту функцию указыватее и все - она запрос пошлет к 1С как обычно (в настройках в разделенном режиме укажите у обработчиков сервис 1С" Т.е. у конфы сервис - конструктор, фласк, у обработчиков - 1С
742. giaprog 26.08.22 15:17 Сейчас в теме
(741) ...т.е. схема работы (для бэка с 1С пока без python), как я понял, такая:
1. В новом конструкторе создаем (или из бэка сохраняем в *.ui) конфигурацию с процессами и окнами используя контейнеры.
2. В учетной системе (1С) подключаем расширение с http-сервисом SimpleUI и общим модулем, в котором прописываем обработчики.
3. В конструкторе указываем адрес http-сервиса в закладке "Обработчики".
4. В закладке конструктора "Свойства" галочку "Разделенный режим" не ставим (или ставим - вопрос) .
5. По QR-коду запускаем конфигурацию.
6. Авторизацию для бэка (1с) прописываем руками в мобильном приложении?

Верно ли я понял схему (порядок) работы?
Благодарю.
Прикрепленные файлы:
743. informa1555 2650 26.08.22 16:33 Сейчас в теме
(742)
(742) почти все верно, только галочка разделенный режим нужна. Смотрите , вы если QR отсканируете это само по себе включит разделенный режим, останется только прописать доступ к сервису обработчиков 1С. При этом можно даже не переходить на новый конструктор - разделенный режим появится давно, конфа и из 1С может хостится, или вообще существовать в виде файла.
755. giaprog 20.09.22 10:54 Сейчас в теме
(743) ...нашел в последней демо базе 1с пример (VER 9.05.05) "Тест разделенной конфигурации" (Примеры 7). Проверил - интересно. Было очень удобно (привык видимо), когда используя расширение с http-сервисом simplewms можно было на лету править экраны мобильного приложения без обновления модулей 1с. При появлении новых релизов приходилось снова готовить расширение из демо конфигурации 1с и при этом могли появляться ошибки (при переносе объектов в расширение)... человеческий фактор. С выходом "New Editor SimpleUI" принято решение избавиться от подготовки расширений (тем более Вы все демо конфигурации сейчас публикуете в *.ui). Теперь вопрос. В комплекте разработчика есть расширение 1С с http-сервисом SimpleUI. Я правильно понял - все обработчики можно хранить в общем модуле расширения "splt_Обработчики"? А т.к. теперь экраны мобильного приложения SimpleUI создаются в "New Editor SimpleUI", то от расширения с http-сервисом Simplewms можно отказаться? Если это так, то что надо писать поле ИД КЛИЕНТА в авторизации http://ip-адрес:2312/base/hs/simpleui (login+pass - это понятно). И что такое произвольная авторизация? Когда включаешь, то появляется url мобильного клиента. т.е в моем случае надо использовать "произвольная авторизация"? Благодарю.
744. alexey_kurdyukov 157 07.09.22 16:14 Сейчас в теме
У меня сразу с самого начала ошибка
AttributeError: module handlers_conf has no attribute 'on_login', как бы я не менял имя обработчика (
745. alexey_kurdyukov 157 07.09.22 17:30 Сейчас в теме
(744) разобрался, не каждое имя модуля подходит
746. informa1555 2650 07.09.22 17:45 Сейчас в теме
(745) Добрый день! Там надо иногда бывает перевыбрать файл обработчиков в конструкторе. Иногда сбивается и он перестает видеть файл - просто открыть по новой и все.
747. alexey_kurdyukov 157 08.09.22 06:39 Сейчас в теме
(746) наверное, нужна кнопка для явного обновления всё-таки
748. alexey_kurdyukov 157 08.09.22 10:35 Сейчас в теме
А где можно почитать, какие параметры у таблицы, например?
Вот я получу, допустим, список документов из 1С. Там есть в том числе гуид. Отображать я его не хочу, но он же понадобиться для отправки обратно в 1С?

Вот, так я собираюсь открывать список документов поступления на склад:
def dct_arrival_start(hashMap, _files = None, _data = None):

    docs ={
    "type": "table",
    "textsize": "25",
    "hidecaption": "false",
    "hideinterline": "false",
    "columns": [
    {
        "name": "id",
        "header": "id",
        "weight": "1"
    },
    {
        "name": "desc",
        "header": "Представление",
        "weight": "2"
    }
    ],
    "rows": [{"id": "1", "desc": "dsfsgfsdfdsf"}]
    }

    hashMap.put("backendVersion", "Версия данных бэка: " + dct_global.getBackendDate())
    hashMap.put("docs", json.dumps(docs))
    return hashMap
Показать


Правда, я пока не понимаю, как обрабатывать открытие документа и всё что дальше
749. informa1555 2650 08.09.22 10:52 Сейчас в теме
(748) почитать в справке https://uitxt.readthedocs.io/ru/latest/ в rows можно пистаь все что угодно например добавить "guid" такой же принцип с "карточками" и другими коллекциями. В принципе можно даже JSON туда засовать (документы) если не сильно большой объем
751. alexey_kurdyukov 157 08.09.22 10:52 Сейчас в теме
(749)
Да, но этот гуид же хочется скрыть
752. informa1555 2650 08.09.22 10:53 Сейчас в теме
(751) так он не объявлен в columns
753. informa1555 2650 08.09.22 10:55 Сейчас в теме
(751)все что не объялено в контейнере (в случае карточек) или в columns (как в вашем примере) - оно просто не отображается и все. Также там может быть любая другая структура помимо обязательных полей
750. informa1555 2650 08.09.22 10:52 Сейчас в теме
(748)Также рекомендую ознакомиться с примерами, например ПростойСклад
754. alexey_kurdyukov 157 08.09.22 13:22 Сейчас в теме
(753) (750) Действительно, колонка не отображается, если её не объявить, но как обработать выбор строки таблицы?
А, TableClick )
756. alonzomozley 22 23.09.22 11:46 Сейчас в теме
Здравствуйте.
Использую он-лайн режим "клиент с 1с".
Создана конфигурация с одним единственным экраном (вывод надписи).
При запуске конфигурации на устройстве (телефон с Android 10) возникают проблемы:
1. в версии 9_05_05 - приложение сворачивается с экрана и открытие конфигурации не происходит
2. в версии 9_75 - получаю сообщение внизу экрана "ошибка формата конфигурации"
Подскажите, в чем может быть дело?
Прикрепленные файлы:
757. giaprog 23.09.22 12:53 Сейчас в теме
(756) ...если вы говорите о демонстрационных конфигурациях, то там две базы. Попробуйте другую
758. informa1555 2650 23.09.22 15:46 Сейчас в теме
(756) Добрый день! Попробуйте на мобильном устройстве в браузере вбить <url конфигурации из настроек>/get_conf?code=<код справочника Мобильные клиенты, он же код клиента из настроек> Что в ответе?
759. alonzomozley 22 24.09.22 06:17 Сейчас в теме
(758)
Получил запрос имени пользователя/пароля для доступа к "сервису", после ввода увидел на экране текст конфигурации, такой же, как вижу его в конструкторе.
Проблем с "получением конфигурации" на устройстве нет. Описанные "ошибки" происходят при попытке ее открыть (нажать на название процесса)
760. informa1555 2650 24.09.22 09:07 Сейчас в теме
(759) Сложно сказать. Выложите JSON конфы, я посмотрю в чем дело.
761. alonzomozley 22 24.09.22 15:21 Сейчас в теме
762. informa1555 2650 24.09.22 16:01 Сейчас в теме
(761) какая то странная смесь JSON и XML... Не знаю в каком конструкторе это сделано, но у меня и новый редактор и последние версии 1Сного конфу записывают в JSON.

Типа такого (приложенный файл сделан в новом редакторе). 1С в справочнике тоже генерит JSON
Прикрепленные файлы:
ПростойСклад.ui
763. alonzomozley 22 24.09.22 19:11 Сейчас в теме
(762)
создано вот в этой версии "устар_ДемоБазаКонфигурацияSimpleUI_ПоследняяВерсияСОнлайнКл­иентомНа1С.dt"
765. informa1555 2650 24.09.22 19:52 Сейчас в теме
(763) Не, это сильно древняя. Там есть 1) новый клиент написанный на питоне 2) 1С демка которая без слова "устар" она не сильно актуальная, но конфу отдает в JSON как надо. Держу ее потому что в ней много демо -примеров
764. alonzomozley 22 24.09.22 19:13 Сейчас в теме
(762)
я пока не понял, как "новый редактор" отправляет конфигурации на мобильное устройство...Только через QR код?
766. informa1555 2650 24.09.22 19:53 Сейчас в теме
(764) QR- это просто способ передачи настроек, так же как их можно вбить руками или передать через файл.
767. alonzomozley 22 24.09.22 20:35 Сейчас в теме
768. alonzomozley 22 24.09.22 20:36 Сейчас в теме
(766)
а он-лайн как "новый конструктор" конфигурации на клиентов передает?
769. informa1555 2650 24.09.22 21:15 Сейчас в теме
(768) там встроенный flask, он раздаёт конфу. Также ее можно просто файлом отправить. Он-лайн обработчики в 1С если нужны то они работают в "разделенном режиме" в комплекте разработчика есть пример расширения с веб сервисом который принимает вызовы онлайн обработчиков, если не питон - то на устройстве выполняется
770. alonzomozley 22 25.09.22 07:43 Сейчас в теме
(765)
Спасибо, все получилось.
771. giaprog 26.09.22 13:09 Сейчас в теме
Добрый день. Дмитрий, есть вопрос по "разделенному режиму". При создании проекта в "Конструкторе приложений" на закладке "Свойства" есть поле "Код клиента". Где его взять? Или не заполнять? Спасибо.
Прикрепленные файлы:
772. informa1555 2650 26.09.22 13:59 Сейчас в теме
(771) Добрый день! В разделенном режиме код клиента не нужен. Посмотрите пример расширения 1С чтобы понять как работает. Настройки Конфигуратора который на картинке можно передать через qr. Эти поля которые на картинке тоже можно не заполнять.
781. giaprog 04.10.22 16:32 Сейчас в теме
(772) Добрый день. Разобрался! Сделал расширение для 1С (взял за основу расширение SimpleUISplit.cfe из комплекта разработчика). Вынес код обработчиков в справочник. Подключил модуль подсветки синтаксиса. Работает конструктор запроса. Делал на скорую руку, поэтому могут быть ошибки. Качайте и проверяйте: https://disk.yandex.ru/d/Ng1cv_mTJrAJUg
Прикрепленные файлы:
773. alonzomozley 22 27.09.22 13:58 Сейчас в теме
Здравствуйте.
Передаю в обработчике "при запуске" таблицу (тест JSON в файле), но ее строки не отображаются, только заголовок.
Что я делаю не так ?
Прикрепленные файлы:
таблица.txt
774. informa1555 2650 27.09.22 14:23 Сейчас в теме
(773) Добрый день. С таблицей все нормально внешне... Может всё-таки без rows она в обработчике?
775. alonzomozley 22 27.09.22 19:15 Сейчас в теме
(774)
Вот текст обработчика.
Сразу еще один вопрос задам, можно ли добавлять "скрытые" колонки, так, чтобы они не влияли на "шапку" таблицы? Я пробовал с weight=0, но "шапка" растягивается по высоте...
Прикрепленные файлы:
текст обработчика.txt
776. informa1555 2650 27.09.22 21:05 Сейчас в теме
(775) там можно просто поля добавлять в rows, просто не описывая их в шапке, например ключ какой нибудь. Это касается всех списков - карточек, плиток и т.д.
777. informa1555 2650 27.09.22 21:17 Сейчас в теме
(775) и ответ на ваш вопрос с таблицей - не совпадают имена столбцов и строк Kol_plan!=kol_plan - чувствительность к регистру. Надо одинаково сделать.
778. alonzomozley 22 28.09.22 05:44 Сейчас в теме
779. alonzomozley 22 28.09.22 05:48 Сейчас в теме
(776)
Спасибо!
А есть возможность "раскрашивать" ячейки по условию (выделять отрицательные суммы) ?
780. informa1555 2650 28.09.22 10:01 Сейчас в теме
(779) да , конечно в документации есть пример
782. giaprog 06.10.22 16:55 Сейчас в теме
Есть расширение к любой конфигурации для обработчиков Simple UI. Код обработчиков вынесен в справочник. Есть возможность экспорта/импорта всех элементов в JSON. Подсветка синтаксиса (bsl_console), конструктор запросов, форматной строки.
URL обработчиков в конструкторе разработчика- http://{xx.xx.xx.xx}/{basename}/hs/handlerui. Наименование элемента справочника и есть имя обработчика (Online). Переписал под более ранние платформы 1с 8.3 (не у всех 8.3.21.1302). Качайте и используйте в своих проектах: https://disk.yandex.ru/d/Gn6dcJYSZMA8eA
Прикрепленные файлы:
783. alonzomozley 22 27.10.22 20:00 Сейчас в теме
Здравствуйте!
Подключил китайский bluetooth сканер "Eyoyo".
Удалось заставить его заработать выбрав в настройках опцию "Сканер Honeywell (старый)", по другому никак не получилось (может просто не знаю как). Все сканирует, события отрабатывают, НО, когда включена эта опция в настройках (даже без физически подключенного сканера), становится "недоступным" для внесения данных "Поле ввода число" на любом экране. Т.е. курсор в него удается установить, но внести любые данные с клавиатуры не дает. "Поле ввода строка", при этом работает как и раньше.
784. informa1555 2650 27.10.22 20:25 Сейчас в теме
(783) Добрый день! Если это блютус то надо включить в настройках блютус, выбрать устройство. Устройство должно работать в режиме вроде хоста, ну короче оно должно там присутствовать в списке выбора. А сейчас оно видимо как клавиатура работает, отсюда и проблемы
785. alonzomozley 22 28.10.22 03:17 Сейчас в теме
(784)
Я пробовал. Но, после включении опции "использовать bluetooth" и выборе нужного устройства, приложение после открытия любой задачи показывает черный экран и через несколько секудн просто закрывается.
786. alonzomozley 22 28.10.22 03:19 Сейчас в теме
(784)
нет, он не работает как "клавиатура". Событие "чтение штрихкода" отрабатывает так же, как если бы считывать камерой телефона. И почему тогда блокируется только "поле ввода число" ? В любом другом поле ввода дает вводить любые данные...
787. alonzomozley 22 28.10.22 03:21 Сейчас в теме
(786)Ведет себя так даже при отсутствии "сопряженного устройства", просто после включения опции "канер Honeywell (старый)"
788. informa1555 2650 28.10.22 13:39 Сейчас в теме
(787) ну это опция для старого формата обмена через клавиатуру (эмуляция нажатия клавиш). Мне все равно кажется что он встетаки через клаву передает у вас. Если не работает в режиме сопряжения то вариант только через клавиатуру на самом деле...
789. informa1555 2650 28.10.22 13:40 Сейчас в теме
(788) Как вариант там можно ввод числа сделать через "Современное поле ввода" (есть примеры и справка) либо вообще его на другой экран вынести.
790. VSinvest 31.10.22 10:26 Сейчас в теме
(782) добрый день.
Как с Вами можно связаться для получения консультации по расширению?
791. giaprog 31.10.22 14:00 Сейчас в теме
(790) Добрый день. Телеграмм: iagreebyonkin
792. astro71 13.11.22 14:06 Сейчас в теме
Дмитрий, добрый день. Спасибо за вашу разработку. Вопрос: Пытаюсь передать pdf файл для просмотра. При попытке открыть файл выходит вот такое:
Прикрепленные файлы:
793. informa1555 2650 13.11.22 15:12 Сейчас в теме
(792) Добрый день! Тут что то с настройкой программ которые за pdf отвечают в Андроиде. Попробуйте обычный pdf reader поставить. Вообще у меня сейчас есть полноценные печатные формы средствами html, лучше конечно использовать их. Есть отдельная статья про это.
794. al_zzz 310 16.11.22 15:14 Сейчас в теме
Здравствуйте, Дмитрий! Пытаюсь использовать приложение на ТСД АТОЛ Smart.Slim Plus, Android 7.0. Отказывается использовать аппаратный сканер(при сканировании шк аппаратным сканером события в приложении не возникает), хотя камерой шк считывается корректно.
Пробовал по разному настройки оборудования здесь менять - не помогло. Что я делаю не так? Или в принципе, не удастся использовать штатный сканер на данном ТСД/версии андроида?
Прикрепленные файлы:
795. informa1555 2650 17.11.22 13:25 Сейчас в теме
(794) Добрый день! Можно пойти 2мя путями: 1) настроить в сканере вывод через строку/wedge keys и т.д. с энтером, CR/LF и т.д. на конце, тогда это без галки Использовать события сканера. Минусы - если на экране есть поле ввода - оно будет перехватывать что будет влиять на логику 2) более предпочтительный. Если сканер позволяет настроить вывод в Intent - там обычно и имя подписки (интента) и переменной в проге настраивается, но иногда бывает что жестко прописаны - тогда в документацию надо лезть.
Вариант 2 более предпочтительный, но не все девайсы поддерживают
Надеюсь понятно объяснил.
796. al_zzz 310 17.11.22 13:37 Сейчас в теме
(795)
2) более предпочтительный. Если сканер позволяет настроить вывод в Intent - там обычно и имя подписки (интента) и переменной
Спасибо! Понял, куда копать можно. Сканер достался без документации, без ничего. Буду гуглить.
797. informa1555 2650 17.11.22 14:20 Сейчас в теме
(796) А там просто прогу с настройками в андроиде найдите (там где настраивается вывод). Она обязательно должна быть. По ней поймете есть там вывод в интент или нет. И что можно настроить. Она называться может как угодно что то типа Scanner Settings например
798. al_zzz 310 17.11.22 14:56 Сейчас в теме
(797) Нашёл прогу такую, нашел документацию: Атол ТСД Slim
Посмотрел там, как метод назван и в настройке так же задал.
Не нашел, как переменная называется только.
Вот как на скрине не работает.
Это значит, что по 2-ому пути не будет работать или я что-то не так делаю?
Прикрепленные файлы:
799. informa1555 2650 17.11.22 15:20 Сейчас в теме
(798) не факт. Во первых непонятно что это за broadcast - там почему то recieve а должен быть что то типа output... во вторых переменная не обязательно должна быть barcode
800. al_zzz 310 17.11.22 15:33 Сейчас в теме
(799) Там в методе вот такие варианты доступны(скрин). А как можно узнать имя переменной(не нашел этого в документации)?
Прикрепленные файлы:
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот