Модальные окна или их эмуляция на платформе 8.3.10.2561 и выше.

1. pwp2008 07.03.18 03:59 Сейчас в теме
Подскажите, кто в курсе. Конфигурация ЗКГУ 3.1.5.99 на платформе 8.3.10.2561. Работа в режиме обычного приложения, толстый клиент. Оказалось что функции Вопрос и Предупреждение не работают, и обработка с ними не запускается c диагнозом :
< Использование модальных окон в данном режиме запрещено!>

Каким образом в этой среде можно все таки организовать диалог с пользователем, чтобы он выбрал дальнейший путь исполнения программы. Если есть простейший пример, то желательно привести.
Похоже, что есть еще вариант установки Модальный Режим = Истина; тогда, возможно будут работать и те, старые функции: Вопрос и Предупреждение. Но судя по постам в Инфостарт это тоже не совсем простой вопрос. Меня бы такой вариант устроил больше, т.к. мы пока и не собираемся работать ни в каком режиме кроме как «Толстый Клиент» и режиме, кроме как «Обычное приложение».
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. catena 110 07.03.18 05:20 Сейчас в теме
(1)
Похоже, что есть еще вариант установки Модальный Режим = Истина;
А почему вы не хотите попробовать?

И как бы, есть новые методы ПоказатьПредупреждение и ПоказатьВопрос, но они требуют полностью переписывать логику работы.
6. pwp2008 07.03.18 11:29 Сейчас в теме
(3) Попробую, конечно, но просто был пост(и не один) что установкой этого режима горю не поможешь.

И как бы, есть новые методы ПоказатьПредупреждение и ПоказатьВопрос, но они требуют полностью переписывать логику работы.

Ок, спасибо, обяз. попрбую все.

(5) За раздел спасибо, и с "Показать" все попробую, тогда отпишу.
8. starik-2005 3039 07.03.18 12:33 Сейчас в теме
(1)
Каким образом в этой среде можно все таки организовать диалог с пользователем, чтобы он выбрал дальнейший путь исполнения программы.
Пишите как обычно, потом правой кнопкой мышки и пункт "Рефакторинг". Система все за Вас сделает.
2. pwp2008 07.03.18 05:08 Сейчас в теме
В общем то я вижу, что мой вопрос(ы) не сильно в теме этого раздела, но я так и не нашел раздел, куда бы его приткнуть ? Может в платформы ? А то в этом разделе мои вопросы носят "узкосудебный интерес", как мне теперь кажется. Это тоже вопрос.
5. spezc 782 07.03.18 05:31 Сейчас в теме
Нормальный раздел вы выбрали и вам в принципе ответили - вместо Предупреждение используйте ПоказатьПредупреждение.
7. VmvLer 07.03.18 11:40 Сейчас в теме
чтобы не чесать репу

1. Открыть современную конфигурацию где уже запрещены модальные окна
(Ут, Бух, Зуп - ...дело вкуса)
2. В конфигураторе глобальным поиском по текстам модулей найти
ПоказатьПредупреждение и ПоказатьВопрос. Выбрать наиболее простые и логичные реализации указанных методов.
3. Оптимизировать их и переделать под шаблон
4. Все - созданные шаблоны можно использовать копипастом или из подстемы шаблонов.

Остальные пути освоения ноу-хау 1С к контексте кода будут длительнее по времени. Если вам не жаль вашего времени - опровергайте последний постулат.
9. RocKeR_13 1325 07.03.18 12:41 Сейчас в теме
(7) Проще уж по справке: в типовых оповещение может быть определено 35 вызовов назад (пройдя еще штук 10 обработок оповещения)))), а сама обработка выполняться вообще где-нибудь в общем модуле; и сиди, ищи концы)
10. pwp2008 07.03.18 13:32 Сейчас в теме
(7) Да, нет, Ваш метод мне очень нравится, спасибо. Только так и сам учусь.
(8) Нужно будет обязательно попробовать. Хотя выглядит как фантастика.
(3) Я был неправ, посты меня напугали. Действительно все работает. Спасибо. Только остаются след вопросы : 1) ЗКГУ вся написана на управляемых формах, а мой режим - "левый", для работы только с обычными формами. Но режим то Модальный Режим = Истина; будет при этом установлен на всю конфигурацию и базу. У меня то будут тогда формы работать, а вот как пойдет с управляемыми - это вопрос. 2) Наверное при обновлении конфигурации придется каждый раз устанавливать режим:
Модальный Режим = Истина; Хотя это и не очень большой труд.
(3) (7) - Наверное более правильно будет все таки пробиться с ПоказатьПредупреждение и ПоказатьВопрос.
(9) Пока не понял сути предложения, но возможно после попыток с "Показать" - дойдет.
11. RocKeR_13 1325 07.03.18 14:07 Сейчас в теме
(10) Там суть такова: например, в метод открытия формы вы передаете в качестве параметра т.н. ОписаниеОповещения, в котором прописывается имя экспортной клиентской процедуры и место ее вызова, а также дополнительные параметры (например, текущая строка таблицы); у экспортной процедуры чаще всего должно быть 2 обязательных параметра - в один передается результат, а в другой - дополнительные параметры, которые определили ранее; процедура из описания оповещения может вызываться программно с помощью ВыполнитьОбработкуОповещения, либо после того, как "отработает" логика вызванного метода, в который передается ОписаниеОповещения. При этом выполнение кода не прерывается, как раньше при открытии модальных окон.

Маленький примерчик:

&НаКлиенте
Процедура ВыбратьНоменклатуру()

     Оповещение = Новый ОписаниеОповещения("ОткрытиеФормы_Завершение", ЭтотОбъект, Новый Структура);
     //Если вызов идет из формы, то в этом случае процедура ОткрытиеФормы_Завершение должна располагаться в модуле формы
     //Можно указать имя общего клиентского модуля и расположить процедуру в этом модуле, например, вместо ЭтотОбъект указать ОбщегоНазначенияКлиент, 
     //а процедуру ОткрытиеФормы_Завершение поместить в этот общий модуль
     ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора",,,,,,Оповещение);

     //Если идет дальше код, то он будет выполняться сразу после открытия формы, а не после ее закрытия как раньше
КонецПроцедуры

&НаКлиенте
Процедура ОткрытиеФормы_Завершение(ВыбраннаяНоменклатура, ДопПараметры) Экспорт //будет вызвана после закрытия формы выбора

      //ДопПараметры в данном примере будет пустой структурой

      Если ВыбраннаяНоменклатура = Неопределено Тогда
           //форму закрыли крестиком
           Возврат;
      КонецЕсли;
 
      Номенклатура = ВыбраннаяНоменклатура;
      //в данном примере вызывался метод ОткрытьФорму, поэтому в параметр ВыбраннаяНоменклатура передается
     //значение, которое передавалось в качестве параметра при закрытии формы выбора, т.е. при вызове метода Закрыть(ЗначениеВыбора);

КонецПроцедуры
Показать
12. catena 110 12.03.18 07:32 Сейчас в теме
(11)
При этом выполнение кода не прерывается, как раньше при открытии модальных окон.
Вот это и есть самый большой затык при приспособлении кода, особенно каких-то самодельных поделок. Когда, например, понатыкано вопросов при записи из формы.
Оставьте свое сообщение

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