Посмотрите видео из моего последнего поста там настройки есть
- Да так и делал как в видео (подписался ранее на вас в ютубе) ... галку поставил использовать блютуз, выбрал, поставил суффикс - суфикс там перенос каретки 13. Сканер перевел в bluetooth SPP Mode. На обоих телефонах при начале открытия телефон подвисает на несколько секунд потом пишет "не подлючен блютуз".
какие вы настроики делали для netum Nt-1228BC ? - только перевели его в bluetooth SPP Mode? и все ?
В общем мне удалось подключить сканер - на всех формах он работает нормально - то есть не мешает клаиватуре. Но при сканировании программа зависает на несколько секунд, Затем возвращается на экран назад и снова пишет "блютуз не подлючен".
Добрый день. Хотел увидеть как работает чтение с клавиатуры атол smart.lite .
Изображение приложил.
Когда я на Экране "Вибрация 1" нажимаю клавиши (1,2,3 итд) - по итогу ни бипа ни перехода на экран "Вибрация 2" - нет.
1 - В чем может быть трабл ? правильно я понимаю что приложение не понимает что была нажата клавиша ?
2 - правильно я понимаю что нельзя в обработчике при запуске заставить приложение сразу менять страницу?
написал такой код
Переменные.Вставить("vibrate", 1);
Переменные.Вставить("ShowScreen","Вибрация 2");
ну то есть если дойти то "вибрация 20" то в моих мечтах долго бы вибрировал тсд или телефон.
правильно понимаю что так не работает ?
3 - Вы писали про отладку, как я понял это отладка на стороне 1с http запросов (поправьте если не так), где можно почитать про отладку ?
(500) 1) коды клавиш не что вы обработчике прописаны. Надо запустить Тест клавиатуры , посмотреть коды и прописать в обработчике 2) сразу менять страницу при запуске чего? Приложения или процесса? 3) поставить в 1С отладку веб сервиса и посмотреть что setinput в Переменные пишет
2 - правильно я понимаю что нельзя в обработчике при запуске ***Экрана*** заставить приложение сразу менять страницу?
написал такой код
Переменные.Вставить("vibrate", 1);
Переменные.Вставить("ShowScreen","Вибрация 2");
ну то есть если дойти то "вибрация 20" то в моих мечтах долго бы вибрировал тсд или телефон.
правильно понимаю что так не работает ?
2) сразу менять страницу при запуске чего? Приложения или процесса?
Добрый день. Хотел увидеть как работает чтение с клавиатуры атол smart.lite .
Изображение приложил.
Когда я на Экране "Вибрация 1" нажимаю клавиши (1,2,3 итд) - по итогу ни бипа ни перехода на экран "Вибрация 2" - нет.
1 - В чем может быть трабл ? правильно я понимаю что приложение не понимает что была нажата клавиша ?\
1) коды клавиш не что вы обработчике прописаны. Надо запустить Тест клавиатуры , посмотреть коды и прописать в обработчике
- дак даже событие не отрабатывает (Если Переменные.listener = "keyboard" Тогда) то есть внутрь этого елси не попадает.
в Тесте клавиатуры у меня все клавиши нажимаю - null, только f2 какой то там код показывает ...
(504) Это странно. Галка "Подключить чтение клавиатуры" естественно включена? Ну он должен читать клавиши. Как вариант из главного меню запустите Тест клавиатуры там должно читать.
2 - правильно я понимаю что нельзя в обработчике при запуске ***Экрана*** заставить приложение сразу менять страницу?
написал такой код
Переменные.Вставить("vibrate", 1);
Переменные.Вставить("ShowScreen","Вибрация 2");
ну то есть если дойти то "вибрация 20" то в моих мечтах долго бы вибрировал тсд или телефон.
правильно понимаю что так не работает ?
- Ну нет, а зачем? Вы запускайте сразу какой нужно экран да и все. При запуске запускать другую форму это это как то нерационально.
- чтобы дать долгую продолжительную вибрацию - чтобы отсигнализировать кладовщику что что то не нормально, бывает что очень шумно на складе например, или глуховат кладовщик ... Вы сказали что подумаете над вибрацией - но когда это будет ... (((
Добрый день. Хотел увидеть как работает чтение с клавиатуры атол smart.lite .
Изображение приложил.
Когда я на Экране "Вибрация 1" нажимаю клавиши (1,2,3 итд) - по итогу ни бипа ни перехода на экран "Вибрация 2" - нет.
1 - В чем может быть трабл ? правильно я понимаю что приложение не понимает что была нажата клавиша ?
1) коды клавиш не что вы обработчике прописаны. Надо запустить Тест клавиатуры , посмотреть коды и прописать в обработчике
- дак даже событие не отрабатывает (Если Переменные.listener = "keyboard" Тогда) то есть внутрь этого елси не попадает.
в Тесте клавиатуры у меня все клавиши нажимаю - null, только f2 какой то там код показывает ...
Это странно. Галка "Подключить чтение клавиатуры" естественно включена? Ну он должен читать клавиши. Как вариант из главного меню запустите Тест клавиатуры там должно читать.
- "Подключить чтение клавиатуры" - да (Посмотрите фото снизу так сделано). Запустить тест клавиатуры - это вы имеете ввиду из демо базы вашей ? Запускал на все клавиши кроме одной код клавиши не меняется. только если нажимаю f2 программа пишет какой то код.
Запустить тест клавиатуры - это вы имеете ввиду из демо базы вашей ? Запускал на все клавиши кроме одной код клавиши не меняется. только если нажимаю f2 программа пишет какой то код.
нет в главном меню программы. В чем трабл затрудняюсь сказать не сталкивался с таким на других девайсах
1 - в общем как и говорил ни одна клавиша не возвращает ничего. только f2 какой то там код возвращает. Клавиатура должна работать в каком то режиме ? или с какими то определенными настройками ? я могу без проблем в атоле спросить ... пните плиз куда копать ...
2 - думаете что нибудь будет в след релизах по поводу вибрации ? получиться ?
(510) 1) это стандартные для Андроида события - нажатия клавиш onKeyUp. Видимо устройство не генериует эти события... Не разу с таким не сталкивался и люди пишут что все рабоатет
2) уже сделал будет в след. релизе длительность в мс передаете в переменную например 1000
Дмитрий понимаю что подзадолбал вопросами - но кое что не смог найти и понять ..
.
Переменные.Вставить("ShowScreen","Поиск товара по наименованию"); - это переход по экранам
1 вопрос - а как вернуться обратно на страницу где операции отображаются (в начало) ?
591.
chesnokov-a-v
10024.08.21 10:56 Сейчас в теме
(514) Добрый день. Никак не получается разобраться в проблеме:
В обработке действия 1С в CV-шаг написал док
Если Переменные.listener = "Завершить" или Переменные.listener = "Обратно" Тогда
Переменные.Вставить("FinishProcess","");
КонецЕсли;
В поле "Кнопки действия" - Обратно
На экране кнопка есть, но при нажатии ничего не происходит. Переменной FinishProcess нужно присваивать значение текущего экрана/шага?
1 - Я сделал сравнение объединение с вашей конфигурацией и базой УТ 10.3 на обычных формах, опубликовал базу - вроде тестово симл юай работает. Есть какие то подводные камни в работе с базами на обычном приложении?
2 - Когда у нас начальный экран симпл юай - можно ли запрограммировать кнопки - чтобы по нажатию кнопок я выбирал какой либо процесс ?
(515) Добрый день! 1. Ну формы конструктора только под обычные формы переделать немного и всё. 2. Ну там и так кнопки процессов же. Есть "плитки" ещё на главном меню гляньте у меня в мае пост есть
(517) А понятно. Ну боритесь за чистоту условий труда)) Если серьезно, то у меня есть перехват аппаратных клавиш и есть вариант (галка логин) запускать экран при старте и там организовать свое меню. Таким образом можно сделать. На главном меню я не делал.Это в планах есть но все отодвигается и отодвигается.
- как и ранее писал в тесте клавиатуры у меня работает только одна клавиша f2. остальные тишина
это стандартные для Андроида события - нажатия клавиш onKeyUp. Видимо устройство не генериует эти события... Не разу с таким не сталкивался и люди пишут что все рабоатет
- Писал в Атол и на форум и в техподдержку никто не отвечает ((( подскажите плиз - может есть какое то приложение ? которое может показать какое событие сейчас работает на андроиде.
- Есть какие мысли как побороть эту ситуацию ? чтобы onKeyUp отрабатывали ...
(519) Добрый день! Ну я могу конечно и на другое событие перехват настроить... Только надо знать на какое. И почему только одна клавиша... Программа - ну у меня вот в главном меню тес клавиатуры - че уж проще то она просто выводит события и все. Другие на других терминалах пишут что все норм... У меня нет этого терминала под рукой. А там нет какой то настройки может?
(521) могу сделать в принципе версию теста на другое событие. Напишите в личку на след неделе - пришлю вариант. Не факт что сработает, но попробовать можно.
Добрый день!
Изучаю ваш продукт. Настроил, вроде все норм. В демо базе правда как-то непонятно с кодами конфигураций клиентов - не совпадают! Т.е. например как в 1С в справочнике "Конфигурации клиентов" "Рабочее место "Приемка" (по-новому)" под кодом 000000001, а у меня на мобильном устройстве если прописываю код 000000001, то конфигурацию не находит, а вот под кодом 000000005 находит именно ее..?
Еще проблема теперь сделал в новой чистой базе конфигурацию клиента с кодом 000000001, с мобильного устройства все норм видит и загрузилась работает. Сделал еще одну конфигурацию клиента, уже с кодом 000000002 соответственно, то с мобильного устройства ее почему-то не видит, т.е. только первую созданную видит. Что я могу не так делать?
(523) Добрый день! При онлайн-подключении указывать надо коды справочника "Мобильные клиенты" (цифровые) а не конфигурации. Второй вопрос - тоже самое - через "Мобильные клиенты" публиковать если он-лайн режим (т.е. через вашу 1С). Если другой режим то как угодно - через файлы или каким то другим способом. Конфигурации и Мобильные клиенты - два разных справочника.
Спасибо, что-то упустил я момент про справочник "Мобильные клиенты" - теперь все норм, заработало как надо и нет загадки, что не соответствуют коды клиентов в 1С и на мобильном устройстве в демо базе..)) Я в начале пути, спасибо за оперативный ответ!
Здравствуйте. ТСД Urovo DT30, v Использовать подписку на события сканера, сообщение сканера: "urovo.rcv.message", переменная сканера: "barocode", длина: "length". Вместо штрихкода получаю [B@******* (вместо звездочек всегда новый набор символов). Куда копать?UPD опечатался в одной букве, все работает...
527.
user672558_Juch6209
29.07.21 13:58 Сейчас в теме
Здравствуйте! на стороне ТСД передал через переменную Переменные.Вставить("PrintService","operation=view&barcode=" + ШтрихКод) штрихкод товара и на стороне 1С написал свою обработку по формированию штрихкода в pdf (отладил ее в диалоге сеанса 1С - штрихкод выводится на экран!), в модуле менеджера этой обработки вставил этот код только с записью в pdf (как из вашего примера ЗаказПокупателя), в HTTP-сервисах в функции print_pdfprint() вставил вызов ее СтрокаPDF = Обработки.ст_СозданиеФайлаРаспечаткиШтрихкодаТовара.СозданиеШтрихкодаТовара(ИД), но когда иду отладчиком 1С, то в мою обработку даже не заходит выполнение (в вашем примере смотрю - в модуль менеджера заказа покупателя отладчик входит и весь код проходит по строкам). В чем причина не пойму (параметр один - штрихкод, и ошибок если сделать Попытка, тоже нет) подскажите пожалуйста ?
(527) Здравствуйте! может штрихкод имеет символы не совместимые с GET-запросом? У вас на сервис print_pdf вызов то происходит? Отладчиком перехватывается?
532.
user672558_Juch6209
29.07.21 22:07 Сейчас в теме
(530) да, отладчик входит в print_pdfprint() и когда по шагам в отладчике (F11) дохожу до своей строки СтрокаPDF = Обработки.ст_СозданиеФайлаРаспечаткиШтрихкодаТовара.СозданиеШтрихкодаТовара(ИД), курсор ее просто не замечает и входит сразу в функцию set_inputset_input() и далее просто без результата выполняется.
535.
user672558_Juch6209
29.07.21 23:02 Сейчас в теме
(532) Если вставляю вашу строку СтрокаPDF = Документы.ЗаказПокупателя.ПримерПечати(ИД,ложь); и в модуль менеджера док-та ЗаказПокупателя вставляю ваш текст из примера, то отладчик заходит в модуль менеджера док-та, а в мою обработку почему-то не заходит. Что можно только для док-та это делать ?
538.
user672558_Juch6209
31.07.21 13:55 Сейчас в теме
(530) Убрал из модуля менеджера обработки запросы к БД (я пытался сосчитать еще дополнит.данные к распечатке) и убрал стандартное формирование распечатки штрихкода в УТ 10.3 (Макет = ПолучитьОбщийМакет("Этикетка") и т.д.) на свое через МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода). Все заработало ! Плохо, что ошибка в модуле менеджера объекта никак не фиксируется в модуле HTTP-СЕРВИСА, или я не знаю как ее ловить ?
(538) Может там в попытку обернуто? Это вопрос уже к 1С на самом деле. По идее без разницы где вы вызываете процедуру- если есть ошибка она должна дойти до вызывающего метода. а если например попытка/исключение в вызываемом то не дойдет
528.
user672558_Juch6209
29.07.21 14:09 Сейчас в теме
Еще один вопрос: у меня создано в Процессе три Экрана: Выбор документа поступления, Выбор товара из документа поступления, Ввод принятого количества. В каждом экране есть вид элемента экрана Штрихкод, только переменные в каждом экране, в которые записывается значение штрихкода разные: barcode1, barcode2, barcode3. Во всех экранах в Обрабочике1С (обработка ввода) есть проверка на заполненность штрихкода. Почему если я на первом экране сканирую штрихкод, то в обработке ввода второго экрана пишет сообщение, что переменная barcode2 не заполнена - ведь я на втором экране еще не сканировал ничего ?
(528) Ну так не должно быть. Опять же отладкой можно понять обработчик какого экрана выполняется. Это же код на стороне 1С выполняется. Пришлите код обработчика 1го экрана (где пишет про езаполненность второго штрихкода)? Думаю там ошибка.
542.
user672558_Juch6209
02.08.21 11:33 Сейчас в теме
(536) Здравствуйте ! Перенес обработки ввода всех трех экранов в разные процедуры (Обработчик1, Обработчик2, Обработчик3) общего модуля ОтладкаПроцессов. Прошелся отладчиком и вот результат: При сканирование QR-кода на первом экране отрабатывает сначала Обработчик1 и затем сразу и Обработчик2 второго экрана (как в общем-то я и предполагал в начале !). Зацикливание в коде никакого нет (см. код выше). Причем в Экран1 и Экран2 разные переменные для ввода штрихкода (Переменные.barcode_order в Экран1 и Переменные.barcode в Экран2), но после сканирования в первом экране значение Переменные.barcode становится равной Переменные.barcode_order. А далее еще интереснее: при сканировании, например, в последнем экране3 (там Переменные.barcode1 и вводится кол-во товара) эта процедура отрабатывает сама себя три раза и соответственно кол-во товара тоже в три раза.
Самое интересное, если весь этот процесс я выполняю на сот.телефоне через его камеру, то все работает нормально и нет непонятных мне скачков из одной процедуры ввода в другую.
В чем же может быть причина ? Помогите пожалуйста.
P.S. Во всех экранах установлена галочка произвольного запуска экранов.
Переменные.barcode_order в Экран1 - выбор QR-кода док-та поступления
Переменные.barcode в Экран2 - выбор штрихкода самого первого товара из таблицы товаров
Переменные.barcode1 в Экран3 - выбор штрихкода последующих товаров (при смене значения в barcode1 <> barcode меняю надписи по товару на экране и делаю barcode1 = barcode)
(542) Обработчик 2 может запуститься только если у вас на сервис придет команда, а команда у вас может придти только если у вас ShowScreen Экран 2 вставлен. По другому никак. Может быть у вас правда сканер 2 раза выдает событие, попробуйте настроить в "разрыв клавиатыры" с суффиксом 13
545.
user672558_Juch6209
03.08.21 11:03 Сейчас в теме
(544) Здравствуйте ! В тексте программы, который я представил ранее, видно, что из первого экрана после сканирования QR-кода вызывается по ShowScreen второй экран, во втором экране после сканирования штрихкода товара по ShowScreen вызывается третий экран, а третий экран по ShowScreen зациклин и выход из него по кнопке btn_exit. Обработчики при запуске (3 шт.) тоже вынес в три разные процедуры общего модуля для всех трех экранов. Также они после первого экрана отрабатывают сейчас уже по три раза. На сот.телефоне все работает нормально.
Сейчас только обратил пристальное внимание на такую ситуацию - при запуске Simpli UI cразу висит какой-то фоновый процесс и если этот фоновый процесс удалить, то все начинает работать нормально. В конфигурации клиента галочки "Подключить сервис" не установлена.
Вопрос: почему при не установленной галочки запускается какой-то фоновый процесс, и я подозреваю, что если их не завершать, то их становится все больше и больше и отработка событий соответственно работает многократно ?
Как отключить эти фоновые процессы ?
547.
user672558_Juch6209
03.08.21 14:20 Сейчас в теме
(546) подскажите, пожалуйста, где отключить фоновый сервис ? если в андроиде ТСД, то отключил для Simple UI в Передаче данных -> Фоновый режим
В настройках сканера в разделе Intent:
intent action: android.intent.ACTION_DECODE_DATA
intent string extra: barcode_string
А на как нужно подключить ?
(547) Чтобы не было фонового сервиса надо убрать в настройках самого приложения подписку на интент, и если есть в настройках конфигурации убрать галку сервис (закладка Сервис). Подключить можно через эмуляцию клавиатуры. Обычно это задается в настройках программы ТСД. Тогда сканер будет посылать строку с энтером на конце или последовательность нажатий кнопок с энтером на конце. Конечно через интент лучше так как оно не перехватывается полями ввода, но к сожалению у меня это не воспроизводится и я честно говоря так и не понял как это воспроизвести.
551.
user672558_Juch6209
04.08.21 16:42 Сейчас в теме
(548) Галка в настройках конфигурации "Подключить сервис" не была установлена изначально, а подписку на интент в настройках самого приложения мы установили, чтобы начался сканироваться QR-код. Без этой подписки QR-код вообще не отрабатывал как событие. Как тогда нам генерировать событие на QR-код ? будет работать через эмуляцию клавиатуры ?
(551) Да, будет работать через эмуляцию без каких либо настроек со стороны приложения. А в самом ТСД надо переключить на вывод через клавиатуру. Почти 100% ТСД это поддерживают. поля ввода только не располагайте на тех экранах где идет сканирование. На самом деле с интентом конечно косяк но он проявляется на каких то отдельных ТСД, а я все никак не могу добраться до такого чтобы пощупать вживую. Рано или поздно я конечно это исправлю не сомневайтесь.
558.
user672558_Juch6209
06.08.21 09:06 Сейчас в теме
(552) 1.Ответьте, пожалуйста, а какой вы сканер(ы) использовали, когда тестировали свою разработку ?
2. Какой по вашей практике ТСД лучше использовать для сканирования QR-кодов и штрихкодов без использования подписок (чтобы не было фоновых процессов) и чтобы надежно все работало ?
(558) я лично не занимаюсь ни разработкой решений на Simple UI, ни внедрением, ни подбором оборудования. Тестируется на разных моделях хоневелл, зебра и урово. По поводу интента - возможно проблема есть, я это не отрицаю, вопрос в том как это проявить. Если бы это было массово я бы об этом знал, возможно что то не так с решением. Не может такого быть, чтобы просто так запускались 3 обработчика. То что сканер может посылать 2 интента - возможно. По поводу "в режиме клавиатуры" на моей памяти с этим проблемы были только на атол лайт, но вот недавно в этом форуме отписались что тоже нормально. Тут зависит не от железа а от программ ТСД
565.
user672558_Juch6209
06.08.21 13:10 Сейчас в теме
(560) Для ТСД Urovo DT30 я последовал вашему совету по подключению на вывод через клавиатуру (там их 4 вида: физическая и т.д.) и получилось вывести только через режим Always Soft Keyboard. У другого программиста нашей фирмы через этот же ТСД в другой конфигурации работает через физическую клавиатуру. Интересно в чем может быть разница ?
(555) у меня и так и так по идее обрабатывается... При одинаковых экранах (без перехвата аппаратных клавиш примеру) должно быть одинаково... Суффикс может не настроен?
529.
user672558_Juch6209
29.07.21 15:19 Сейчас в теме
Еще один вопрос: у меня создано в Процессе три Экрана: Выбор документа поступления, Выбор товара из документа поступления, Ввод принятого количества. Во втором экране Выбор товара из документа в Обрабочике1С (обработка ввода) при сканировании штрихкода товара я инициализирую Переменные.Вставить("qty", 1). В третьем экране эта переменная = 1 записывается первый раз правильно, а при сканировании этого же штрихкода товара в третьем экране эта переменная уже записывает не 1, а 2 (хотя я ее и в Обрабочике1С (обработка ввода) третьего экрана тоже принудительно инициализирую = 1. В отдельном контейнере по вводу значения в переменную qty я делаю в заполнении @qty и она показывает правильно, т.е. 1). На мобильном телефоне через считывание штрихкода через камеру все работает правильно (т.е. каждый клик одного и того же штрихкода увеличивает фактическое кол-во на 1), а на ТСД Urovo DT30 нет (т.е. каждый клик одного и того же штрихкода увеличивает фактическое кол-во на 2). Настройку ТСД сделал нормально: Использовать подписку на события сканера, сообщение сканера: "urovo.rcv.message", переменная сканера: "barcode", длина: "length". В чем может быть причина ?
(539) Добрый день! Если вы имеете ввиду пользователя которым к сервису подключается (который в настройках) то например в переменных вставляется WS_USER
Здравствуйте, по нажатию кнопки "🏠 Процессы" кратно нажатиям множатся произвольные таймеры, это точно так задумано? Вроде как есть "уникальный ключ" но не нашел в примерах его назначение... и в документации опечатка «Производьные таймеры»
стандартная синхронизация документов выгружает экземпляры документов с 12-ти часовым форматом времени, что ни есть хорошо...
Документы сразу пишутся в базу при любой активности в форме. Если нужна другая логика то это не к "документам" а надо делать через SQL(например Python+SQL) -см. все оффлайновые и питоноские примеры. Документы также пишутся в SQL в табличку documents. Синхронизация там готовая в принципе. Но если надо что то особенное то опять же можно это сделать через SQL и тот же Python
и все-таки, мне захотелось немного другой логики, не захотел писать документы в базу при каждом "чихе", но захотелось использовать стандартный список документов со своими ограничениями: назначил процесс и форму документу только с просмотром, без возможности редактирования с единственной кнопкой "break", стандартную кнопку добавления документа из списка заблокировал тем же "break" в "Python при запуске" если обязательная переменная не заполнена. Создал свой отдельный процесс с формой для добавления документов, после заполнения по нажатию своей кнопки, с помощью Python+SQL, пишу документ в базу. Написал свою синхронизацию с помощью тех же Python+SQL и POST-запроса, которая при ответе обновляет erp_id и sent, так же успешно отрабатывает. Синхронизацию добавил сразу после записи документа (по той же кнопке). Также захотел в фоне запускать синхронизацию по таймеру, на случай если в момент записи документа связи не было и синхронизация не отработала. В произвольных таймерах обнаружил ранее сообщенный баг, воспользовался "Python по расписанию" - везде нормально отрабатывает. Казалось бы вот оно "счастье", но осталось одно "но": в стандартном списке документов показываются только документы созданные до первого захода в список, созданные после отображаются только после перезахода в приложение...
Возможно ли с помощью Python или еще каким способом обновлять стандартный список документов?
(553) ничеси там деятельность... Уважуха. Документы пишутся при каждом изменении чтобы не делать всякие кнопки сохранить. Это на мобильных платформах стандартное по поведение... Если говорить именно про списки документов то там обновлялка ручная же есть сверху...
А вообще документы сейчас воспроизводятся обычными экранами, списки тоже. NoSQL для хранения json или так же SQL, синхронизация на питоне. Остаётся работа с фотографиями и файлами но это будет в следующем релизе
Если говорить именно про списки документов то там обновлялка ручная же есть сверху...
А вообще документы сейчас воспроизводятся обычными экранами, списки тоже.
а точно обновлялка? я думал только синхронизация... по ее нажатию пишет: "Происходит обмен с учетной системой" и документы с писке так и не появляются... только перезаход...
Что ж, попробую свой экран со списком документов сделать, не подскажите, в каком примере в демке реализовано похожее?
(555) Проверил - там сначала идет скачивание/отправка либо с 1С либо с postgREST смотря что настроено, а потом читается SQL (documents) и обновляется список. Если Вы написали свою синхронизацию и добавляете в documents то оно должно обновиться для того типа который в списке выбран.
Экран со списком документов я имел ввиду то, что сейчас средств визуализации и хранения достаточно чтобы все тоже самое сделать - список документов - это "список карточек" или "плитки" что больше нравится, сам документ - обычный экран, заись можно сделать в NoSQL или в SQL в ту же documents.
(569) нет, я нашел в чем дело, вот только не особо понятно, что с этим делать)
протестировал с другого телефона, и оказалось там все нормально работает.
на Huawei Mate 20 с EMUI 9.1 приложение работает некорректно, на Xiaomi Redmi 4X с Android 7.1.2 все корректно.
(556) тут, очевидно, после выхода из списка документов не разрывается соединение с SQL и происходит блокировка. Еще небольшой эксперимент: создадим документ в приложении, заходим в список документов, документ на месте, выходим из списка, создаем второй, заходим в список, обновляем - нет его, в 1с создаем не синхронизированный экземпляр документа, обновляем список документов, он появляется в списке (кстати, только после второго обновления), второго созданного документа так и нет, выходим из приложения, заходим обратно, переходим в список, второй созданный документ появляется, но пропадает третий документ, пришедший из 1с...
(559) ну и повторю рекомендацию - раз уж вы разобрались с питоном, плитками и т.д. то собственно сделать 1) форму со списком изdocuments в виде карточек или плиток 2) по клику на форме открывать форму записи. Я по прежнему намерен разобраться просто "документы" по большому счету делаились и тестились для режима "создаешь из формы документа, редактируешь там же". Если я смогу помочь - хорошо, если нет то можно сделать эти 2 экрана.
(562) стандартный список документов хочу оставить ввиду наличия готового поиска...
про 2й документ... собственно есть стартовая страница с плитками, на ней одна из плиток запускает процесс с формой (не являющимися процессом и формой документа) жмем плитку, заполняем форму, жмякаем кнопку "Save"
по кнопке следующее:
#Сохранение документа
if hashMap.get("listener")=="Save":
conn = sqlite3.connect('//data/data/ru.travelfood.simple_ui/databases/SimpleWMS')
cursor = conn.cursor()
query = 'ins ert in to documents (type,field1caption,field2caption,field3caption,field4caption,field5caption,field1,field2,field3,field4,field5,doc,sent,done) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?)'
data = ('Оплата','Номер','Дата','Сумма','','',hashMap.get("num"),hashMap.get("dat"),hashMap.get("sum"),'','','{"num":"' + hashMap.get("num") + '","dat":"' + hashMap.get("dat") + '","sum":"' + hashMap.get("sum") + '","photo":[],"file":[]}',0,0)
cursor.execute(query,data)
conn.commit()
cursor.close()
conn.close()
hashMap.put("break","true")
#Синхронизация
#if hashMap.get("listener")=="Syn":
username = hashMap.get("WS_USER")
password=hashMap.get("WS_PASS")
url = hashMap.get("WS_URL")
android_id=hashMap.get("ANDROID_ID")
conn = sqlite3.connect('//data/data/ru.travelfood.simple_ui/databases/SimpleWMS')
cursor = conn.cursor()
query = 'SEL ECT id,type,metatype,screen,com,field1caption,field2caption,field3caption,field4caption,field5caption,description,field1,field2,field3,field4,field5,search1,search2,search3,doc,doc_pictures,process,sent,done,erp_id,created_at FR OM documents WHERE type =? AND sent=?'
data = ('Оплата',0)
cursor.execute(query,data)
queryup = 'upd ate documents se t sent=?, erp_id=? where id=?'
results = cursor.fetchall()
for link in results:
datastr = datetime.strptime(link[25], "%Y-%m-%d %H:%M:%S")
json_res = {
"client":hashMap.get("CLIENT_CODE"),
"erp_id":link[24],
"doc_date":datastr.strftime("%Y%m%d%H%M%S"),
"done":link[23],
"doc":link[19],
"type":link[1],
"field1":link[11],
"field2":link[12],
"field3":link[13],
"field4":link[14],
"field5":link[15],
"field1caption":link[5],
"field2caption":link[6],
"field3caption":link[7],
"field4caption":link[8],
"field5caption":link[9],
"photo":"[]",
"file":"[]",
"SQL_id":link[0]
}
r = requests.post(url + '/documents_upload', auth=HTTPBasicAuth(str(username).encode("utf-8"), password,), headers={'Content-type': 'application/json', 'Accept': 'text/plain'},data=json.dumps(json_res, ensure_ascii=False).encode("utf-8"))
jdata = json.loads(r.text)
status = jdata.get("status")
if status == "done":
cursorup = conn.cursor()
dataup = (str(1),str( jdata.get("erp_id")),str(link[0]))
cursorup.execute(queryup,dataup)
conn.commit()
cursorup.close()
cursor.close()
conn.close()
Показать
идем в список посмотреть, выходим из списка попадая в меню плиток, ну и жмем на плитку для создания второго...
(563) Ну добавляете вы корректно... у меня там на обновлялке - обычный селект... По идее должно работать... Надо делать пример на котором я это воспроизвести смогу.
По поводу поиска - у меня есть поле с автозаполнением (одно из двух) для этой цели - генерирует события при каждой букве, а Вы соотвественно на событии запрос подсовываете.
573.
user672558_Juch6209
09.08.21 13:55 Сейчас в теме
Здравствуйте ! У меня еще один вопрос: в экран1 формируется таблица1 товаров и сканируется штрихкод товара, в обработке ввода экрана1 после отработки события ввода штрихкода я вывожу экран2 с таблицей2 товаров двойников по данному штрихкоду и пытаюсь рукой кликнуть на нужную позицию таблицы, а в обработке ввода не возникает вообще никакого события (т.е. не входит в обработку ввода вообще и Переменные.listener = "TableClick" вообще не ловится). Хотя если я выхожу из экран2, то событие по выходу у меня отрабатывает. И я даже в экран2 для тестирования появления события штрихкода включил элемент Штрихкод и переменную штрихкода - и это тоже отрабатывает. В экране1 при клике рукой на элементе таблицы входит в обработчик ввода этого экрана и событие Переменные.listener = "TableClick" возникает и я получаю строку таблицы.
Почему тогда в экране2 при клике на строку таблицы2 не входит в обработчик ввода ?
(573) Здравствуйте! У вас очень странные проблемы - что предыдущая что эта. Такое ощущение что обработчик от другого экрана отрабатывает. Может как то ссылки перепутаны? По клику на таблицу событие возникает однозначно. если включить отладку веб-сервера и перехватить set_input - то что, при клике на таблицу не приходит запрос? А там обработчик точно есть? Присылать или не присылать запрос по сыбытию ввода устанавливается свойсвом onlineOnInput в экране, а эта галка по идее смотрит есть текст в обработчике или нет... Других нюансов там нет.
575.
user672558_Juch6209
09.08.21 19:51 Сейчас в теме
(574) А в чем странность, если то что я написал действительно так. Все обработчики При запуске и При вводе у меня вынесены в конфигуратор 1С и установлены точки останова в каждой из них. Поэтому я прекрасно вижу по шагам, где идет обработка.
Даже более скажу, заменил выбор из таблицы на выбор из списка карточек и сразу стало возникать событие только уже Переменные.listener = "CardsClick", а для выбора из второй таблицы не возникало Переменные.listener = "TableClick" и даже отладчиком и в обработку не входило. А если бы я перепутал обработчики (хотя это совершенно для моей ситуации не реально), то и выбор из списка карточек тоже бы не работал.
И прочитайте мой пост 573 внимательно, там из экрана с одной таблицей вызывается экран с другой таблицей - может в этом причина ?
(575) так я и говорю что я с таким не сталкивался и даже не представляю как такое возможно. Надо отладкой от set_input проходить чтобы понять как доходит до обработчика. Таблица то событие всегда генерит оно и в питоне и в 1С выполняется... Если в 1С есть обработчик. Попробуйте отладкой все таки
577.
user672558_Juch6209
10.08.21 09:44 Сейчас в теме
Здравствуйте! Подскажите, пожалуйста, как получить текущее значение переменной ShowScreen (в отладчике 1С при обращении к Переменные.ShowScreen говорит, что Переменные.ShowScreen {(1)}: Поле объекта не обнаружено (ShowScreen) ) ?
(577) Здравствуйте! Это переменная-команда, она удаляется после применения, как и остальные команды. Чтобы не действовать повторно. Сохраните в другую переменную, например ShowScreenCopy
579.
user672558_Juch6209
10.08.21 15:48 Сейчас в теме
(578) спасибо, я так и сделал. Только когда один и тот же экран вызывается из разных других экранов и при разных условиях очень трудно везде эту переменную назначать.
Еще вопрос: Можно ли в самом первом стартовом окне Simpli UI сделать пункт Меню (Операцию) "Выход из программы", при нажатии на который программа завершилась бы вместе со всеми ее фоновыми процессами и выгрузилась бы из памяти ?
580.
user672558_Juch6209
10.08.21 16:03 Сейчас в теме
(579) или кнопку андроида Назад перепрограммировать на выход из программы, чтобы при нажатии на нее спросила "Вы действительно хотите выйти из программы ? Да/Нет
У меня вопрос по клавиатуре
Ранее в версиях 5.75.07 и 5.90.00 на ТСД Атол smart.lite при тестировании клавиатуры работала только клавиша F2.
Теперь в версии 6.75.50 работают F1 и F2 (при этом елси нажать клавшиу F1 + какую любую другую тоже появляется код сочетания клавиш).
но осталась проблема со считыванием клавиш. вообще не отрабатывает событие (Если Переменные.listener = "keyboard" Тогда) хотя стоит галочка (чтение клавиатуры keyboard) - ниже привел скрин.
((( - в чем может быть проблема ???
(582) Добрый день! Поискал я на форумах про ваш атол - такая же проблема у всех. Тут если делать то радикально. Сделаю 2 вещи : 1) настройку "Регистрировать все клавиши" - будет все подряд перехватывать - ченть да перехватит, кроме того событие будет onKeyEvent а не только onKeyUp 2) сделаю события для клавиатуры на экране меню чтобы процессы с клавиш запускать. 1ю штуку я пошлю по почте напишите мне на dv1555 собака hotmail.com я пришлю ответом вторая будет вместе с релизом
585.
user672558_Juch6209
11.08.21 11:17 Сейчас в теме
Дмитрий, подскажите, пожалуйста по следующей проблеме:
ТСД Urovo DT30 перестал разговаривать (в самом начале помню говорил), т.е. при выполнении команды Переменные.Вставить("speak", "какой то текст") или вид элемента экрана Голос не проговаривает фразы. Я использовал ПО и с подпиской на события сканера ("urovo.rcv.message", переменная сканера: "barcode", длина: "length") с интентом в настройках сканера и в разрыв клавиатуры без подписки и с подпиской. На ТСД в андроиде звук работает. В чем может быть причина ?
(585) ну это google speech engine (TTS) чет не хочет воспроизводить - может этой службы вообще нет. Голоса нет или что то такое. Подписка на интент тут не причем я думаю.
Уважаемый Дмитрий добрый день.
А есть возможность в симпл юай положить файл (mp3 или какого другого формата) на андроид и проиграть его в симпл юай ???
Дмитрий добрый день.
А подскажите пожалуйста я чего то это упустил.
В 1с если я делаю конфигурацию simple ui - я могу ее экспортировать а затем импортировать в другой базе ???
(595) Добрый день! Да, можно через сериализацию - вот обработка, но она не сильно актуальная там каких то новых объектов возможно нет. Нужно доработать. Ну или через конвертацию
Поставил на смартфон свежий Simple UI 7.00.05, но после настройки и запуска никак не удается получить никакую конфигурацию (пробовал разные из базы ДемоБазаКонфигурацияSimpleUI_Версия_7_0_новый_формат). Смотрел в 1С в отладчике - подключения при старте клиента нет.
Чтобы проверить настройки, поставил на смартфон postman. Ввел тот же адрес (копипастом), только с командой get_conf, - в отладчике подключение есть, конфигурация считывается (т.е. файрвол не мешает, webserviceUrl правильный).
Кроме того, поставил на смартфон Simple WMS, развернул старую базу устар_ДемоБазаКонфигурацияSimpleUI_ПоследняяВерсияСОнлайнКлиентомНа1С, убедился, что эта парочка тоже работает.
Поэтому вопрос, в новом релизе точно нет ошибки? Такое впечатление что при старте клиента не отправляется get запрос типа http://[адрес сервера]/[имя публикации]/hs/simplewms/get_conf?code=[код клиента].
(597) Добрый день! Там сменился формат конфигурации, при записи генерится конфа JSON. Приложение может читать и json и xml.
get_conf конечно же есть, если только не стоит галка Самостоятельный режим в настройках