Диалог с пользователем "ПоказатьВопрос" в процедуре расширения, дождаться ответа и выполнить

1. Arkadag 06.09.24 10:14 Сейчас в теме
Приветствую, Форумчане!
ЕРП

В расширение перенес процедуру:

&Вместо("ИспользоватьДОДляХраненияФайловОбъекта")
Функция Доп_ИспользоватьДОДляХраненияФайловОбъекта(Форма, Команда, ВладелецПрисоединенныхФайлов)
    // Вставить содержимое метода.
    Результат = ПродолжитьВызов(Форма, Команда, ВладелецПрисоединенныхФайлов); 
    
    Ответ = Вопрос("олрлорло", РежимДиалогаВопрос.ДаНет);
    
    //ОписаниеОповещения = Новый ОписаниеОповещения("ВопросПереносФайловЗавершение", ЭтотОбъект);
    //      ТекстВопроса = "Открыть внутренние присоединенные файлы?";
    //      Кнопки = Новый СписокЗначений;
    //      Кнопки.Добавить(КодВозвратаДиалога.Да);
    //      Кнопки.Добавить(КодВозвратаДиалога.Пропустить);
    //      
    //      ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки,, КодВозвратаДиалога.Да);
    
    Если Ответ = 0 Тогда
        Результат = Ложь;
    КонецЕсли; 
    
    
    Возврат Результат;
КонецФункции
 
&НаКлиенте
Процедура ВопросПереносФайловЗавершение(Результат, ОписаниеОповещения) Экспорт
    
    Если Результат = КодВозвратаДиалога.Да Тогда
        ОтветРезультата = 0;  
    ИначеЕсли Результат = КодВозвратаДиалога.Пропустить Тогда
        ОтветРезультата = 1; 
    КонецЕсли;
    
КонецПроцедуры
Показать

Совсем запутался. Нужно в процедуре расширения задать вопрос. Дождаться ответа и в зависимости от полученного ответа изменить данные Результат (истина/ложь).

Ответ = Вопрос("олрлорло", РежимДиалогаВопрос.ДаНет); - понимаю, что это неправильно, написал уже от безисходности :-), но он как бы работает правильно, т.е. ждет ответа, потом продолжает работать...

Как правильно применить "ПоказатьВопрос" или что-либо другое, чтобы сработал код после вопроса, т.е. дождался ответа, а потом

   Если ОтветОтПоказатьВопрос = "Да" Тогда
        Результат = Ложь;
    КонецЕсли;
VyacheslavShilov; +1 Ответить
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 35 06.09.24 10:25 Сейчас в теме
(1) ВопросАсинх позволит в этой же процедуре получить ответ, но может не подойти, т.к. в асихн процедуры параметры передаются по значению.
То есть если с параметрами что-то делается в процедуре - не подойдет.
3. usershmuser 06.09.24 10:26 Сейчас в теме
Исполняемый код помещаешь в условие обработки результата вопроса
4. XACHAPURIN 68 06.09.24 10:46 Сейчас в теме
&НаКлиенте
Функция ПерваяФункция()
	ОписаниеОповещения = Новый ОписаниеОповещения("ОбработкаОтвета", ЭтотОбъект);
	ПоказатьВопрос(ОписаниеОповещения, "Вам обработать ответ?",РежимДиалогаВопрос.ДаНет, 60);
КонецФункции

&НаКлиенте
Процедура ОбработкаОтвета(РезультатВопроса, ДополнительныеПараметры) Экспорт
	
	Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
		
	КонецЕсли;
	
КонецПроцедуры
Показать
VyacheslavShilov; +1 Ответить
5. Arkadag 06.09.24 11:09 Сейчас в теме
Все указанные варианты пробовал... На счет Асинх - у меня в расширении не Асинхрованная функция

В описании оповещения я получаю правильный ответ, но "ПоказатьВопрос" не останавливает работу и не ждет ответа и сразу выполняется код, что в конце функции,

Возврат Результат;


Т.е. результат не обрабатывается, а передается как был в начале функции и продолжает выполнение остальных команд, а потом уже выводит вопрос с обработкой, но толку уже от этой обработки нету, т.к. всё выполнилось...
6. Arkadag 07.09.24 07:48 Сейчас в теме
Задачу решил. Правда без вопроса. Программно создал нужный реквизит на форме и в зависимости от его значения выдается правильное решение задачи.
VyacheslavShilov; +1 Ответить
Оставьте свое сообщение

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