Показать вопрос блокировкой

1. El_Ninio 15.11.23 22:27 Сейчас в теме
Стандартный метод ПоказатьВопрос() не блокирует ожидание ответа, продолжает дальше выполнять код.
Мне нужно чтобы только после выбора ответа продолжила либо отказать либо дальше выполнять. Вариант сделать свою собственную форму вопроса, но это как сделать? Поможете?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Pavel Rodinchenko 16.11.23 07:59 Сейчас в теме
(1)ВопросАсинх

&НаКлиенте
Асинх Процедура ИмяПроцедуры()
		
	Если Ждать ВопросАсинх("ТекстВопроса", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Да Тогда
		// Выполнение кода после вопроса
Иначе
Возврат;
	КонецЕсли;
	
КонецПроцедуры
Показать
2. Oldsad 16.11.23 02:49 Сейчас в теме
Пример взят из синтаксис помощника:
Режим = РежимДиалогаВопрос.ДаНет;
Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопроса", ЭтотОбъект, Параметры);
ПоказатьВопрос(Оповещение, НСтр("ru = 'Продолжить выполнение операции?';"
    + " en = 'Do you want to continue?'"), Режим, 0);
//...


&НаКлиенте
Процедура ПослеЗакрытияВопроса(Результат, Параметры) Экспорт
    Если Результат = КодВозвратаДиалога.Нет Тогда
        Возврат;
    КонецЕсли;

    //...


КонецПроцедуры
Показать
user1880116; starik-2005; +2 Ответить
4. El_Ninio 17.11.23 17:01 Сейчас в теме
(3) тут не останавливается, все это дело делаю в расширении.
(2) Пробовал. Все равно отладчик проходит дальше и выполняет функцию.
5. user1880116 17.11.23 17:32 Сейчас в теме
(4)
Все равно отладчик проходит дальше и выполняет функцию.
Вызов ПоказатьВопрос должен быть последним оператором в твоей процедуре. Все, что выполяется после должно быть перенесено в описание оповещения.

Немного статистики. Отказ от модальности через использование описания оповещений был реализован в версии 8.3.3.721, выпущенной 06.09.2013. Десять. Лет. Назад. В конфигуратор добавлены функции по рефакторингу кода, написаны тонны инструкций, созданы тысячи сайтов, разработаны сотни курсов. Но...

Это, пожалуй, хорошо характеризует общий уровень образования и желание народа изучать что-то новое.
FatPanzer_Job; +1 Ответить
6. Sashares 35 17.11.23 18:07 Сейчас в теме
(5)
Это, пожалуй, хорошо характеризует общий уровень образования и желание народа изучать что-то новое.


Десять. Лет. Назад.


Да это уже старое =))
7. El_Ninio 17.11.23 18:09 Сейчас в теме
Это делаю в ДО 2.1. перед регистрацией документа хочу задать вопрос, т.к после регистрации документа идет синхронизация с внешними базами. От вопроса зависит отмена регистрации.
8. El_Ninio 17.11.23 20:33 Сейчас в теме
&НаКлиенте
&Перед("ПередЗаписью")                                       
Процедура ре_ПередЗаписью(Отказ, ПараметрыЗаписи)         
  Если НЕ ПараметрыЗаписи.Свойство("ПоказанВопросВводаПароля") Тогда
    Оповещение = Новый ОписаниеОповещения("ПродолжениеПослеВопроса",ЭтотОбъект,ПараметрыЗаписи);
    ОткрытьФорму("ОбщаяФорма.ре_Форма",,ЭтотОбъект,,,,Оповещение);
    Отказ = Истина;
    Возврат;   
  КонецЕсли;
  
  ВыполнитьОбработкуОповещения(Оповещение, Истина);
  
КонецПроцедуры

&НаКлиенте
Процедура ПродолжениеПослеВопроса(Результат, ПараметрыЗаписи) Экспорт
  Если Результат = КодВозвратаДиалога.Нет Тогда
    Возврат;
  КонецЕсли; 
  ПараметрыЗаписи.Вставить("ПоказанВопросВводаПароля", Истина); 
  Записать(ПараметрыЗаписи);
КонецПроцедуры // ПродолжениеПослеВопроса()

Показать
9. user1880116 17.11.23 20:55 Сейчас в теме
Авось Драйвен Девелопмент?
Оставьте свое сообщение

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