|   |   | 
| 
 | В чем смысл блокировать модальность в обычном приложении? | ☑ | ||
|---|---|---|---|---|
| 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, как я сразу туда не посмотрел :(
 Для прикладных решений, реализованных без использования модальности, реализована возможность использования внешних обработок, которые написаны с применением модальных методов. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |