Имя: Пароль:
1C
1С v8
ПоказатьВопрос, показывает вопрос и по коду идет дальше, что не так?
,
0 SkillUp
 
12.02.19
21:07
В одной процедуре?            
ПоказатьВопрос(НовыйОписаниеОповещения("ОбработкаКомандыЗавершение2",ЭтаФорма,ТЧ),"Удалить текущие строки табл. части "+ИмяТЧ+" ?",РежимДиалогаВопрос.ДаНет);

В другой
&НаКлиенте
Процедура ОбработкаКомандыЗавершение2(Результат, ДополнительныеПараметры) Экспорт
    
    Если Результат = КодВозвратаДиалога.Нет Тогда
        Возврат;
    ИначеЕсли Результат = КодВозвратаДиалога.Да Тогда
        ДополнительныеПараметры.очистить();
    КонецЕсли;    
    
КонецПроцедуры
1 RomanYS
 
12.02.19
21:34
Это и есть асинхронность. Вызов ОбработкаКомандыЗавершение2 произойдет после ответа на вопрос
2 SkillUp
 
12.02.19
21:44
(1) Я не об этом! У меня при вопросе, код дальше исполняется, не дождавшись ответа пользователя!
3 palsergeich
 
12.02.19
21:47
(2) Так и должно быть при ассинхронном выполнении
4 SkillUp
 
12.02.19
21:47
(3) Блин, что-то я запутался...
5 palsergeich
 
12.02.19
21:49
подуй
6 SkillUp
 
12.02.19
21:49
(3) Мне ответ пользователя нужен, и исходя из этого дальше разные варианты событий , как теперь делать?
7 palsergeich
 
12.02.19
21:49
8 SkillUp
 
12.02.19
21:50
(5) После выполнения процедуры ПоказатьВопрос() система не останавливается, ожидая ответ пользователя, исполнение кода продолжается
9 SkillUp
 
12.02.19
21:50
(8) Это мне не подходит (.
10 palsergeich
 
12.02.19
21:51
(8) Совершенно верно.
Учись писать код с учетом этих особенностей.
Просто перенеси код который надо после реакции пользователя выполнить в
ОбработкаКомандыЗавершение2
11 SkillUp
 
12.02.19
21:52
Мда, изучать и изучать мне УФ...
12 palsergeich
 
12.02.19
21:53
(11) Это имхо самое неприятное в УФ, потому что с теми же файлами можно запутаться.
13 NorthWind
 
12.02.19
21:54
(9) увы, но вам пишут совершенно верно. Вы должны реагировать на событие, а не ждать ответ от показа диалога. Это немного напоминает обработку событий формы в Дельфи или ее же в 1С.
14 SkillUp
 
12.02.19
22:06
Блин, так красиво  у меня было, теперь всю процедуру переделывать...
15 RomanYS
 
12.02.19
22:20
(14) Что переделывать то? Просто перенеси код из первой во вторую
16 SkillUp
 
12.02.19
22:28
(15) ОК!
17 NorthWind
 
12.02.19
22:30
(15) не, ну переделывать-то придется. Как минимум из-за того что бокс теперь немодальный и юзер может клякать куда не надо и вносить изменения в форму ДО того как ответит на вопрос в боксе.
18 SkillUp
 
12.02.19
22:34
(17) Как вовремя...
19 palsergeich
 
12.02.19
22:39
(18) Если у тебя код зависит от неизменности данных между появлением окна и нажатием на кнопку - это очень плохо.
20 SkillUp
 
12.02.19
22:43
(19) У меня одна очень большая процедура, после вопроса, идет открытие другой формы, с блокировкой формы где вопрос, за асинхронность в методе ПоказатьВопрос() не знал, к сожалению... (
21 SkillUp
 
12.02.19
22:44
(19) Набираюсь опыта, спасибо.
22 palsergeich
 
12.02.19
22:47
(20) Самый простой и тупой путь решения проблемы:
Нарисовать свою форму вопроса и ее уже открывать с РежимОткрытияОкна.БлокироватьОкноВладельца
Кстати сам там делаю и часто вижу что так делают. Просто помимо модальности можно форму вопроса еще и красивой сделать)
23 RomanYS
 
12.02.19
22:49
(20) "не знал"
Мне интересно, когда вы читаете/пишете "Новый ОписаниеОповещения(", о чём думаете?
типа "хз что за х#рня магия какая-то"?
24 palsergeich
 
12.02.19
22:50
Кстати ща глянул - в типовых есть ОбщаяФорма Вопрос
И в ней по сути уже все есть - тебе ее надо только правильно открыть.
25 palsergeich
 
12.02.19
22:50
Я то больше по нетленкам специализируюсь)
Независимо от того, куда вы едете — это в гору и против ветра!