Имя: Пароль:
1C
 
Использование ПоказатьВопрос при отключенном режиме модальности
,
0 NIGHTHUNTER
 
31.12.21
05:40
В обработке используется функция Вопрос(). Но в конфигурации отключен режим использования модальности.
То идет ошибка то нет. Пока не пойму, только что ее видел. Суть моего вопроса в том, что как приведенный ниже код, можно переписать на использование
процедуры ПоказатьВопрос() ? Там используется оповещение. Но вот этот код, используется в середине другой функции или процедуры. И просто его заменить на ПоказатьВопрос()
что то там подправив не получится. Как например с Предупреждение() на ПоказатьПредупреждение() .
Как тут будет правильно использовать ПоказатьВопрос() ?

    Ответ = Вопрос("Сохранить текущие запросы?", РежимДиалогаВопрос.ДаНетОтмена);
    Если Ответ = КодВозвратаДиалога.Отмена Тогда
        Возврат Ложь;
    ИначеЕсли Ответ = КодВозвратаДиалога.Нет Тогда
        Возврат Истина;
    КонецЕсли;
1 ДенисЧ
 
31.12.21
06:03
Глобальный контекст (Global context)
ВопросАсинх (DoQueryBoxAsync)
Доступен, начиная с версии 8.3.18.
Синтаксис:
ВопросАсинх(<ТекстВопроса>, <Кнопки>, <Таймаут>, <КнопкаПоУмолчанию>, <Заголовок>, <КнопкаТаймаута>)
Параметры:
<ТекстВопроса> (обязательный)
Тип: Строка, ФорматированнаяСтрока.
Текст задаваемого вопроса.
<Кнопки> (обязательный)
Тип: РежимДиалогаВопрос, СписокЗначений.
Задает состав и текст кнопок диалога, а также, связанные с кнопками значения.
При использовании типа СписокЗначений:
Значение – содержит значение, связанное с кнопкой. Это значение является возвращаемым значением при выборе кнопки. В качестве значения может использоваться значение перечисления КодВозвратаДиалога, а также другие значения;
Представление – задает текст кнопки. Если представление не задано и в качестве значения используется значение перечисления КодВозвратаДиалога, то используется стандартное представление;
Картинка – не используется (должна быть пустой);
Пометка – не используется (должна быть пустой).
При использовании типа СписокЗначений список не должен быть пустым.
<Таймаут> (необязательный)
Тип: Число.
Интервал времени в секундах, в течение которого система будет ожидать ответа пользователя. По истечении интервала окно вопроса будет закрыто. Если параметр не указан, то время ожидания не ограничено.
Если параметр имеет отрицательное значение, будет сгенерировано исключение.
Значение по умолчанию: 0.
<КнопкаПоУмолчанию> (необязательный)
Тип: Произвольный.
Определяет кнопку по умолчанию по типу кнопки или по связанному с ней значению.
<Заголовок> (необязательный)
Тип: Строка.
Содержит заголовок окна вопроса.
Если не установлен, то у диалога заголовок не отображается.
<КнопкаТаймаута> (необязательный)
Тип: Произвольный.
Определяет кнопку (по типу кнопки или по связанному с ней значению), на которой отображается количество секунд, оставшихся до истечения таймаута.
Возвращаемое значение:
Тип: Обещание.
Результат выполнения обещания - результат выбора пользователя: значение системного перечисления или значение, связанное с нажатой кнопкой.
Если диалог закрыт по истечении времени - значение свойства Таймаут.
Описание:
Асинхронная функция. Выводит на экран окно вопроса, при этом не ожидает завершения ответа пользователя.
Доступность:
Тонкий клиент, мобильный клиент, толстый клиент, мобильное приложение (клиент).
Пример:
Асинх Процедура ЗадатьВопросОПродолжении()
    Режим = РежимДиалогаВопрос.ДаНет;
    Ответ = Ждать ВопросАсинх(НСтр("ru = 'Продолжить выполнение операции?';"
         + " en = 'Do you want to continue?'"), Режим, 0);
    Если Ответ = КодВозвратаДиалога.Нет Тогда
        Возврат;
    КонецЕсли;
КонецПроцедуры
См. также:
Глобальный контекст, метод Вопрос
Глобальный контекст, метод ПоказатьВопрос
Использование в версии:
Доступен, начиная с версии 8.3.18.
     Методическая информация
2 NIGHTHUNTER
 
31.12.21
07:36
(1) Это что то новое. А про этот метод не подскажете?

ПоказатьВопрос()
3 Caber
 
31.12.21
07:41
Похоже, вы не понимаете всей специфики немодальных вызовов. В вашем случае после ответа на вопрос идет возврат ответа из функции, которая инициировала вопрос. Так вот такой способ "на коленке" с методом ПоказатьВопрос не сделать.
Вместо этого нужно представить, что весь программный код останавливается и заканчивается на середине пути. Последней точкой выполнения кода будет ПоказатьВопрос. А после того, как пользователь жмякнет кнопку, начнется новый стек выполнения кода, в котором необходимые операции будут завершены.
4 NIGHTHUNTER
 
31.12.21
08:07
(3) Вот я об этом же и спросил. Потому что не сделать. Хотел узнать об этом.
5 Мимохожий Однако
 
31.12.21
08:19
Попробуй в режиме Конфигуратора: ПКМ-Рефакторинг-Нерекомедуемый синхронные вызовы-Преобразовать вызов
6 NIGHTHUNTER
 
31.12.21
08:23
(5) Ок, попробую. Не известный мне метод и совет ваш.
Я буду все пробовать, дойдут руки. Раз уже начинал разбирать этот ПоказатьВопрос(), да перестал.
Все разберу.
Пока тему завел, что бы получить информации и полезных советов.
7 Мимохожий Однако
 
31.12.21
08:48
Лучше делать и разбираться сразу. Практика показывает, что потом не приходит никогда.
8 NIGHTHUNTER
 
31.12.21
09:44
(7) Согласен с вами, но сейчас приходится заниматься тем что актуальнее.
А по этому есть вопрос. И хочется его решить. Как появится момент, я займусь этим.
Пока что, это можно использовать и так.
9 Fram
 
31.12.21
12:22
(6) мне кажется или он как Йода заговорил
10 ДенисЧ
 
31.12.21
12:29
(9) Йода мастер говорит, что оскорбительны сравнения твои..
11 acht
 
31.12.21
12:31
(8) > приходится заниматься тем что актуальнее
Например, анализом видеофайлов в 1С - Определение продолжительности видео файлов
12 Мимохожий Однако
 
31.12.21
21:32
(8) Надо обучаться и анализировать в процессе решения вопросов. Это единственно эффективный способ. Я своим бухам говорю. "У вас времени для дополнительного обучения не будет никогда. Обучайтесь сейчас".