|
В чем смысл блокировать модальность в обычном приложении? | ☑ | ||
---|---|---|---|---|
0
TormozIT
гуру
23.01.16
✎
15:41
|
Если в конфигурации с "Режим использования модальности" = "Не использовать" в обычном приложении выполняется модальный метод, то возникает исключение "Использование модальных окон в данном режиме запрещено".
Непонятно, какую выгоду можно получить в обычном приложении от запрета модальности. Возможно действие этого свойства конфигурации распространили на обычное приложение ненамеренно? |
|||
1
aka AMIGO
23.01.16
✎
15:49
|
Вопрос насущный: если у меня открыто модальное окно, я могу войти в другие открытые окна? Ну к примеру, журнал там, или документ..табличный..
|
|||
2
TormozIT
гуру
23.01.16
✎
15:51
|
(1) На то оно и модальное окно, чтобы фокусировать внимание пользователя и не давать параллельно меняться другим формам.
|
|||
3
Drac0
23.01.16
✎
15:55
|
(0) Когда придется подключать юзеров через веб, то не надо будет переписывать срочно конфу.
|
|||
4
TormozIT
гуру
23.01.16
✎
15:58
|
(3) Как связаны веб клиент и обычное приложение? У них принципиально разный интерфейс. Для управляемого режима (в первую очередь веб клиента) это свойство и сделано. Вот в нем его смысл понятен.
|
|||
5
su_mai
23.01.16
✎
16:04
|
(0) А что в режиме обычного приложения исключается многопользовательский клиент-серверный вариант работы?
|
|||
6
TormozIT
гуру
23.01.16
✎
16:05
|
(5) Нет.
|
|||
7
ДенисЧ
23.01.16
✎
16:06
|
(5) а какая связь твоего вопроса с (0)?
(0) восьмёрка - глючная и сырая. |
|||
8
su_mai
23.01.16
✎
16:07
|
(7) Это не вопрос (5) это евро-ответ :)
|
|||
9
TormozIT
гуру
23.01.16
✎
16:09
|
(8) Видимо ты не очень хотел чтобы тебя поняли.
|
|||
10
Записьдампа
23.01.16
✎
16:09
|
(0) Потому что одна и та же конфигурация может использовать одновременно все три вида интерфейса. Например, часть функционала в толстом, отдельные рабочие места - в вебе.
|
|||
11
TormozIT
гуру
23.01.16
✎
16:15
|
(10) Именно поэтому вопрос и возник. В управляемом интерфейсе свойство должно работать. Тут вопросов нет. Зачем оно работает в обычном режиме? Клиентский код управляемого и обычно режимов пересекается лишь частично и не в модулях форм, где вполне можно использовать единый немодальный стиль общения с пользователем.
|
|||
12
Смотрящий
23.01.16
✎
16:16
|
Жрите, жрите кактус
|
|||
13
Записьдампа
23.01.16
✎
16:25
|
(11) То есть ты предлагаешь принципиально отказаться от общих клиентских модулей, работающих в разных интерфейсах?
|
|||
14
TormozIT
гуру
23.01.16
✎
16:27
|
(13) Нет
|
|||
15
Serginio1
24.01.16
✎
10:02
|
(0) Наверное, что бы жизнт медом не казалась. На самом деле компилятор, мог бы сам разбивать процедуру в зависимости от типа приложения. Рефакторинг они сделали, так же можно это сделать и при компиляции.
Для серверных вызовов можно сделать аналог нетовского await Это резко увеличи ло бы производительность программиста. |
|||
16
Serginio1
24.01.16
✎
10:05
|
чтобы клиентский и серверный код были в одном методе
|
|||
17
Serginio1
24.01.16
✎
10:06
|
Да и давно уже нужно замыкания вводить
|
|||
18
Остап Сулейманович
24.01.16
✎
11:32
|
(0) Если конфигурация работает во всех возможных режимах :
1. Не устанавливай такую фишку в свойствах конфигурации. 2. Прописывай поведение диалогов для каждого режима с помощью директив компиляции #Если ТолстыйКлиентОбычноеПриложение #Если ТолстыйКлиентУправляемоеПриложение #Если ТонкийКлиент #Если ВебКлиент 3. Ответственность за корректное поведение системы в части использования модальности - полностью на тебе. |
|||
19
Записьдампа
24.01.16
✎
11:47
|
(15) Угу. Особенно в варианте поставки модуля без исходных текстов.
|
|||
20
Записьдампа
24.01.16
✎
11:48
|
(18) Не надо так делать. Немодальные методы не запрещаются при режиме модальности "использовать"
|
|||
21
Остап Сулейманович
24.01.16
✎
11:52
|
(20) Ну если ТС хочется в толстом работать модально? Ну очень хочется... прям аж... Тогда можно?
|
|||
22
Записьдампа
24.01.16
✎
11:56
|
(21) Ему не хочется =)
У него вопрос "а почему совместимость с устаревшей технологией модальности организована вот так, если я нашёл частный случай когда она еще может работать" И вот тут даже не знаешь, что ответить... |
|||
23
Остап Сулейманович
24.01.16
✎
12:06
|
(22) Вот это вот в части "устаревшей" есть просто набор символов.
Нифига оно еще не устарело. Просто из соображений безопасности <b>может быть</?> отключено в браузере. Статистики пользования 1С в браузерах у меня нет. Но думаю, что это мизерный процент по сравнению с толстым или тонким клиентами. |
|||
24
Serginio1
24.01.16
✎
12:08
|
(20) А кая разница. В итоге код то все равно компилируется в байт код, в котором можно предусмотреть ветвление в зависимости от клиента.
|
|||
25
Serginio1
24.01.16
✎
12:10
|
24+ Я к тому, что компилятор может сразу генерить немодальные вызовы.
|
|||
26
DJ Anthon
24.01.16
✎
12:12
|
(0) просто вас мягко просят переходить на продвинутые методы работы. не нравиццо - юзайте старую платформу, где оно не ругаисся
|
|||
27
Записьдампа
24.01.16
✎
12:13
|
(23) https://hh.ru/vacancy/7711233
Ты имеешь возможность все исправить =) |
|||
28
Записьдампа
24.01.16
✎
12:19
|
(25) Не может. Например при вызове модельного метода в цикле.
|
|||
29
Остап Сулейманович
24.01.16
✎
12:19
|
(27) Тут бы со своим справиться... Нет уж. Пускай они сами.
|
|||
30
vde69
24.01.16
✎
12:20
|
(4) а мне и для веб клиента не понятен смысл запрета модальности....
если рассматривать модальность в рамках текущей вкладки (а их может быть открыто много), то я не вижу в ней ничего плохого... то есть модальное окно в рамках конкретной формы а не всего приложения 1с... кто мне объяснит зачем вообще нужно выполнять код когда мы хотим явным образом получить выбор пользователя? например в списке документов при попытке удаления модальный вопрос вполне уместен... ну нельзя продолжать работать с этим списком пока не ответишь... с другими окнами - пожалуйста, но в рамках одной вкладки фигу... |
|||
31
Остап Сулейманович
24.01.16
✎
12:25
|
(30) В браузере может быть запрещено использование модальных окон. Просто. По независящим от 1С причинам.
Я вообще не понимаю смысла работать в браузере при наличии тонкого клиента. |
|||
32
vde69
24.01.16
✎
12:26
|
(31) кто мешает реализовать модальность через <div>
|
|||
33
Записьдампа
24.01.16
✎
12:29
|
(32) Однопоточность javascript, на котором выполняется интерпретатор байт-кода 1С
|
|||
34
Записьдампа
24.01.16
✎
12:31
|
(31) Отсутствие возможности устанавливать софт. Просто. По независящим от 1С причинам =)
|
|||
35
Остап Сулейманович
24.01.16
✎
12:31
|
(32) <div> - это не модальность. Это многослойность.
|
|||
36
Остап Сулейманович
24.01.16
✎
12:34
|
(34) А вот и нифига. Отсутствие возможности устанавливать софт не мешает установить браузер. А вот тонкий клиент встанет не на каждую ОСь. Я думаю - в этом причина. Кроссплатформенность, расширение рынков сбыта и все такое...
|
|||
37
Провинциальный 1сник
24.01.16
✎
12:45
|
(35) Что мешает не использовать системные модальные окна, а отрисовывать их самостоятельно в контексте основного окна?
|
|||
38
Записьдампа
24.01.16
✎
12:47
|
(37) см (33)
|
|||
39
Провинциальный 1сник
24.01.16
✎
12:49
|
(38) Как однопоточность джаваскрипта способна этому помешать? Модальный диалок в любом случае блокирует основной контекст выполнения.
|
|||
40
Провинциальный 1сник
24.01.16
✎
12:50
|
+(39) Модальный диалог ждет реакции пользователя, пусть при этом джаваскрипт остановился - кому от этого плохо?
|
|||
41
Serginio1
24.01.16
✎
12:51
|
(28) Может. Посмотри на нетовские await, yield
|
|||
42
Serginio1
24.01.16
✎
13:23
|
41. Суть такая генерируется класс который захватывает переменные в поля класса. Метод с немодальными вызовами метод разбивается на несколько методов, которые вызывают друг друга. Цикл переделывается на енумератор, где в нужных местах вызывается next
|
|||
43
Serginio1
24.01.16
✎
13:26
|
Я это давно делал для при создании курсора для обхода деревьев http://rsdn.ru/article/alg/tlsd.xml
|
|||
44
Записьдампа
24.01.16
✎
13:28
|
(41) Да по тебе прям психологию изучать уже можно.
Классическая подмена предмета обсуждения - только что говорили, что компилятор 1С не может такое рефакторить, и тут внезапно утверждается, что компилятор .net - может. И какие из этого надо сделать выводы? Что кислое более красное чем железное? Эта твоя асинхронность появилась только в C# 5.0 (2013 год, насколько я помню), а компилятор 1С не менялся с 8.2 (2009 год, последнее крупное впиливание - директивы условной компиляции). Ну и не менее классический перевод внимания на себя - "а я делал" |
|||
45
Serginio1
24.01.16
✎
14:20
|
(44) это await появился. До этого как и в JS прекрасно работали ContinueWith
А делать надо выводы 1С, что бы делать работу программисто более производительной и эффективной. Это переход к тому, что такой средний программист как я работающий на мебельном производстве это делал лет 12 назад, то почему же этого не может такая крупная фирма с крутыми программистами. |
|||
46
Записьдампа
24.01.16
✎
14:58
|
(45) Да крутой ты, крутой. А фирма 1С - лохи. Рубашку только на себе не рви - завтра ж ещё на работу.
|
|||
47
Serginio1
24.01.16
✎
15:43
|
(46) Где я рву? Я признаю факт, что я средний программист.
И фирма 1С не может держать лохов. Но если посмотреть как развиваются другие языки. Где эффективность программирования увеличивается постоянно, 1С только усложняет жизнь программистам. Посмотри на C++,C#,Java. JS изменяется, а еще добавляются и развиваются TypeScript, Angular 2 на TS. Кстати 1С взять бы за основу TS где кстати есть поддержка await https://ru.wikipedia.org/wiki/TypeScript |
|||
48
su_mai
24.01.16
✎
17:47
|
(47) Ничего 1С не усложняет, наоборот, такого низкого порога вхождения в программирование как в 1С, нет наверное нигде. Есть конечно некоторые моменты, но в целом все круто.
|
|||
49
Serginio1
24.01.16
✎
18:00
|
(48) Ты просто на других языках не программировал. Низкий порог вхождения не всегда равно эффективности программирования. И честно я очень рад за тебя, что тебе нравится программировать
|
|||
50
su_mai
24.01.16
✎
18:13
|
(49) Вопрос не в эффективности программировании на языке, а в эффективности достижения определенных целей. 1С декларирует, что она автоматизирует бизнес процессы организаций. Мое мнение - она удобна и эффективна для этого.
ПС. >Ты просто на других языках не программировал. http://www.anekdot.ru/id/120130/ |
|||
51
Bober
24.01.16
✎
18:37
|
(0) так как в обычном можно запускать уф, то поэтому и сделали. а так как контекст синх методов вызванных из обычных форм и уф не различается, то впиндюрили этот отскок при любом вызове этих методов.
|
|||
52
Serginio1
24.01.16
✎
19:04
|
(50) Вот именно, что пока она только блестит, а если бы еще и развивалась, так и не только блестела.
|
|||
53
su_mai
24.01.16
✎
19:12
|
(0) (+5) По сути темы мне думается, вот что.
В общем случае, модальный вызов может заблокировать выполнение транзакции на неопределенное время, что в свою очередь приведет к ошибкам блокировок (таймауту блокировки). Включая в конфигурации режим "Режим использования модальности" = "Не использовать" вы берете на себя ответственность следовать другой "парадигме программирования" не только в плане интерфейса, но и при работе с данными. |
|||
54
su_mai
24.01.16
✎
19:13
|
(52) :)
|
|||
55
TormozIT
гуру
24.01.16
✎
19:22
|
(53) Дельный аргумент. Правда о нем само 1С видимо забыло в документации http://its.1c.ru/docs/v8nonmodal/#1
|
|||
56
Записьдампа
24.01.16
✎
19:40
|
(53) Не путайте, пожалуйста транзакции с блокировками.
Если я напишу при начале работы системы НачатьТранзакцию, а при окончании работы - ОтменитьТранзакцию, то какое это отношение будет иметь к модальности? |
|||
57
Marine Band
24.01.16
✎
19:41
|
(53) Что за глупость...
|
|||
58
su_mai
24.01.16
✎
20:06
|
(55) В книжке написано: Филиппов - Настольная книга 1С Эксперта по технологическим вопросам. Изд. 2 - 2015, стр 61 3 абзац
|
|||
59
Записьдампа
24.01.16
✎
20:15
|
(58) Ну это не "общий случай" рассматривается, а вполне конкретный подход, когда творчески одаренный программист начинает вести диалог с пользователем, заблокировав объекты. Делает ли он это модально или немодально, не имеет никакого значения - блокировка изменяется только после получения ответа от пользователя.
|
|||
60
vde69
24.01.16
✎
21:57
|
(53) хороший тон был заложен вначале перехода на УФ
ВсеКлиентскиефункции КачалоТранзакции ВсеСерверныефункции КонецТранзакции в нем все логично, если нужна реакция пользователя - она всегда ДО начала транзакции но сейчас по моему до маразма доводят и причины доведения до маразма всего две 1. Фреш, и желание разделить данные разных компаний.... 2. 100% кроссплатформеность и движение в сторону мобильных приложений. Эти два пункта просто охерено усложняют и губят платформу... ----------------------------------- Ну банально нельзя угнаться за всеми новыми течениями, надо выбирать что-то одно из современного развития. А 1с пытается сделать семилапого пятичлена вместо обычного двурукого... |
|||
61
TormozIT
гуру
26.01.16
✎
14:49
|
Радостная новость из 1С.
" Начиная с версии 8.3.5 свойство "Режим использования модальности" в тонком и толстом клиентах учитывается только если указан параметр командной строки /EnableCheckModal. Этот параметр автоматически подставляется в командную строку при запуске приложения из конфигуратора. Если этот параметр не указан, то в этих клиентах он не учитывается: исключения не кидаются, предупреждения не показываются. В веб-клиенте "Режим использования модальности" учитывается всегда. Данное изменение было сделано как раз из-за этой проблемы." Пока непонятно следующее: 1. Зачем параметр автоматически подставляется в командную строку при запуске приложения из конфигуратора? Похоже на ошибку платформы. 2. Как отключить подстановку этого параметра в строку запуска при запуске клиентского приложения из конфигуратора? Обычно как раз из конфигуратора запускают обычное приложение в базе, написанной под управляемое приложение. |
|||
62
TormozIT
гуру
26.01.16
✎
15:11
|
(61) Ответ на вопрос №1
"Это было сделано из следующих соображений: запуск приложения из конфигуратора используют разработчики конфигураций, а не конечные пользователи, если в конфигурации "Режим использования модальности" не установлен в "Использовать", то разработчик должен видеть ошибки использования модальных окон. " |
|||
63
Живой Ископаемый
26.01.16
✎
15:14
|
просто если бы они уже реализовали замыкания и управление потоками, то не нужно было бы отказываться от модальности.
|
|||
64
Карупян
26.01.16
✎
15:21
|
(0) Никакого смысла конечно нет. Сделали как сделали.
Но так как на толстые формы уже забили никто исправлять не будут |
|||
65
TormozIT
гуру
26.01.16
✎
15:30
|
(64) "Толстые формы" - не совсем корректный термин. Правильно "обычные" формы и "управляемые формы", а "управляемые формы" с нятяжкой можно разделить на толстые (работающие только в толстом клиенте) и тонкие управляемые(работающие во всех управляемых клиентах).
|
|||
66
Карупян
26.01.16
✎
15:33
|
(65) Но клиент то называется толстый
|
|||
67
TormozIT
гуру
26.01.16
✎
15:38
|
(66) Верно. Клиент толстым называется из-за объема трафика между клиентом и сервером, но принцип работы управляемых форм во всех клиентах (обычный, толстый управляемый, тонкий управляемый и др.) одинаковый.
|
|||
68
su_mai
26.01.16
✎
22:07
|
(61) Это написано в V8Update.htm, как я сразу туда не посмотрел :(
Для прикладных решений, реализованных без использования модальности, реализована возможность использования внешних обработок, которые написаны с применением модальных методов. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |