|
Оповещение | ☑ | ||
---|---|---|---|---|
0
Dimarik_1
15.11.22
✎
12:40
|
Можете подсказать, каким образом мне вызвать форму, чтобы форма открылась и ждала пока я нажму на "ок или отмена" и тоглько после того как я в этой форме нажму, у меня код дальше шел. даже не знаю как пример нагуглить. Может подскажете?
|
|||
1
mikecool
15.11.22
✎
12:42
|
эээ
открытьформу с блокироватьвладельца |
|||
2
Ryzeman
15.11.22
✎
12:42
|
В 1с нет асинхронных вызовов с ожиданиями, насколько мне известно.
Вызывай модально, если есть такая необходимость, либо переделывай логику что бы остальной код в обработке оповещения шёл |
|||
3
Ryzeman
15.11.22
✎
12:43
|
(1) Я так понял ему выполнение кода в родительском окне нужна
|
|||
4
Ryzeman
15.11.22
✎
12:43
|
В смысле остановка выполнения кода
|
|||
5
mikecool
15.11.22
✎
12:43
|
(4) так это (1) и делает
|
|||
6
mikecool
15.11.22
✎
12:44
|
или я уже туплю ))
хрен поймешь - чего автору надо |
|||
7
Ryzeman
15.11.22
✎
12:44
|
(5) Разве? Я всегда думал что РежимОткрытияОкнаФормы влияет на доступность интерфейса только, что ты туда кликнуть не можешь.
|
|||
8
Dimarik_1
15.11.22
✎
12:45
|
Сморите. Мне нужно отправить документ на почту. Но перед отправкой необходимо вызвать окошко, в котором почту надо указать. После того как пользователь укажет почту, продолжить код отправки
|
|||
9
Dimarik_1
15.11.22
✎
12:45
|
(1) Модальное открытие формы это очень нехороший подход. 1С давно об этом говорит и не рекомендует так делать
|
|||
10
boozin
15.11.22
✎
12:49
|
Открываешь форму как хочешь. При нажатии кнопки отправляешь оповещение первой форме, отрабатываешь оповещение как надо
|
|||
11
Ryzeman
15.11.22
✎
12:49
|
(9) Ну, раз ты такой умный и начитанный, то мог бы нагуглить "Работа с Диалогами в языке 1С 8.3" и увидеть как правильно вести диалог с пользователем без использования модальных вызовов))
&НаКлиенте Процедура ОтправитьМыло(Команда) Оповещение = Новый ОписаниеОповещения("ПослеВводаЗначения", ЭтотОбъект); ПоказатьВводЗначения( Оповещение, , "Введите адрес почты", "Строка" ); КонецПроцедуры &НаКлиенте Процедура ПослеВводаЗначения(Результат, Параметры) Экспорт Если Не Результат = Неопределено Тогда {код для проверки строки и отправки почты} КонецЕсли; КонецПроцедуры |
|||
12
boozin
15.11.22
✎
12:51
|
Ну или как в 11 :)))
|
|||
13
Dimarik_1
15.11.22
✎
12:52
|
спасибо
|
|||
14
FIXXXL
15.11.22
✎
12:53
|
(0) в СП
ОткрытьФорму (OpenForm) Вариант синтаксиса: По имени Синтаксис: ОткрытьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>, <НавигационнаяСсылка>, <ОписаниеОповещенияОЗакрытии>, <РежимОткрытияОкна>) тебе нужен предпоследний параметр |
|||
15
Ryzeman
15.11.22
✎
14:31
|
(14) (5) Неа. Только что проверил. Как я и всегда думал, оно делает ровно то же самое, что и все асинхронные вызовы в 1с. Проверил на этом:
ОткрытьФорму("Справочник.Номенклатура.ФормаГруппы",, ЭтаФорма,,,,, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); Сообщить("я выполнился в другом окне, хотя не должен был :("); Код никак не останавливается и спокойно выполняется дальше. При этом сообщение на новой форме. Если уж надо ловить действия при закрытии, и делать это через полноценную форму, то логично обработку выбора делать или ловить оповещения. |
|||
16
FIXXXL
15.11.22
✎
14:39
|
(15) я и не предлагал ничего блокировать
надо в основной форме написать обработчик оповещения, который после закрытия формы ввода будет делать "и тоглько после того как я в этой форме нажму, у меня код дальше шел" и указать его предпоследним параметром в ОткрытьФорму() при закрытии формы ввода нужно возвращать результат и проверять его в основной форме в обработчике оповещения закрытия формы ввода сколь угодно у тебя же в коде обработчика оповещения не наблюдается... |
|||
17
Ryzeman
15.11.22
✎
14:45
|
(16) >>тебе нужен предпоследний параметр
Я тут приставку "пред" пропустил :-D |
|||
18
boozin
15.11.22
✎
14:51
|
(15) Код никак не останавливается и спокойно выполняется дальше. Так не пиши больше ничего после "ОткрытьФорму("Справочник.Номенклатура.ФормаГруппы",, ЭтаФорма,,,,, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);" :)))
|
|||
19
boozin
15.11.22
✎
14:52
|
Всю логику дальше в оповещение
|
|||
20
Ryzeman
15.11.22
✎
14:54
|
(18) Я о том, что асинхронных вызовов в 1с с ожиданием нет, и (5) всё таки не прав в контексте конкретно этого вопроса.
|
|||
21
boozin
15.11.22
✎
14:58
|
(20) "Я о том, что асинхронных вызовов в 1с с ожиданием нет". Ожидание реализуется через оповещение... Так что все есть... :)
|
|||
22
Ryzeman
15.11.22
✎
15:02
|
(21) Нет, это не то. В других языках именно явно можешь нафигачить хоть цикл асинхронных операций и в одном модуле в одной процедуре ожидать их завершения. Такого в 1с нет, по крайней мере пока что
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |