Имя: Пароль:
1C
1С v8
Как "ПоказатьПредупреждение" и поставить выполнение кода на паузу?
0 Механик
 
15.11.22
13:58
В одну из процедур (&НаКлиенте) в документе добавляю код:
ПоказатьПредупреждение(, "Это предупреждение").
Хочу, чтобы в этот момент дальше код не исполнялся, пока пользователь не нажмет ОК. Однако предупреждение выходит немодально и дальше продолжается выполнение кода с открытием окон, которые уже загораживают само предупреждение. Подскажите, как реализовать "модальное" предупреждение в современной типовой конфигурации с запретом на использование модальных окон?
1 Волшебник
 
модератор
15.11.22
14:02
Предупреждение("Это предупреждение")
2 Механик
 
15.11.22
14:04
(1) Тогда будет выходить ошибка, что "использование модальных окон запрещено".
3 maxx079
 
15.11.22
14:05
Использовать не предупреждение, а вопрос
Свою процедуру разделить на две - вторую часть запускать после положительного ответа на вопрос.
4 Механик
 
15.11.22
14:08
(3) А если это процедура в расширении, и аннотация - "Перед"?
5 Механик
 
15.11.22
14:09
(4) То есть я перед выполнением типовой процедуры  хочу вызвать предупреждение и паузу до того момента, пока пользователь не ознакомится с предупреждением.
6 Ryzeman
 
15.11.22
14:09
(4) Ну, тогда либо переделывать на &Вместо либо страдать.
7 Волшебник
 
модератор
15.11.22
14:09
(2) Да ну вас...
8 Ryzeman
 
15.11.22
14:12
(2) Если тебе это нужно, и если фактически модальность не повредит (не используете веб клиенты, мобильные клиенты и в принципе понимаете что делаете) - просто можешь включить в конфигураторе использование модальных окон
9 Механик
 
15.11.22
14:48
(6) Ну как-то странно, что нельзя изящно переделать...
10 Rovan
 
гуру
15.11.22
16:44
пробуй  ПредупреждениеАсинх("Это предупреждение")
11 AlvlSpb
 
15.11.22
21:45
(0) Заканчивай код процедуры в которую вставляешь предупреждение именно предупреждением. А продолжение кода в процедуре получения ответа Предупреждегия. Типа:
&НаКлиенте
Процедура ТоЧтоНамНадо()

// Здесь что-то исполняется. НАЧАЛО кода
    
Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияПредупреждение", ЭтотОбъект);
    ПоказатьПредупреждение(Оповещение, , 0, "Вот надо предупредить!");

КонецПроцедуры

&НаКлиенте
Процедура ПослеЗакрытияПредупреждение(Параметры) Экспорт
// А вот здесь ПРОДОЛЖЕНИЕ кода. Продолжаем что-то  исполнять
КонецПроцедуры
12 AlvlSpb
 
15.11.22
21:52
Если что-то надо передать из первой процедуры во вторую, есть доп параметры в ПоказатьПредупреждение и Параметры в ответной процедуре
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан