Заставить 1С подождать РежимДиалогаВопрос.ДаНет
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)Использовать обработчик оповещения о завешения для продолжения действий.
Глобальный контекст (Global context)
ПоказатьВопрос (ShowQueryBox)
Синтаксис:
ПоказатьВопрос(<ОписаниеОповещенияОЗавершении>, <ТекстВопроса>, <Кнопки>, <Таймаут>, <КнопкаПоУмолчанию>, <Заголовок>, <КнопкаТаймаута>)
Параметры:
<ОписаниеОповещенияОЗавершении> (обязательный)
Тип: ОписаниеОповещения.
Содержит описание процедуры, которая будет вызвана после закрытия окна ввода значения со следующими параметрами:
<РезультатВопроса> - результат выбора пользователя: значение системного перечисления или значение, связанное с нажатой кнопкой. В случае закрытия диалога по истечении времени - значение Таймаут,
<ДополнительныеПараметры> - значение, которое было указано при создании объекта ОписаниеОповещения.
Глобальный контекст (Global context)
ПоказатьВопрос (ShowQueryBox)
Синтаксис:
ПоказатьВопрос(<ОписаниеОповещенияОЗавершении>, <ТекстВопроса>, <Кнопки>, <Таймаут>, <КнопкаПоУмолчанию>, <Заголовок>, <КнопкаТаймаута>)
Параметры:
<ОписаниеОповещенияОЗавершении> (обязательный)
Тип: ОписаниеОповещения.
Содержит описание процедуры, которая будет вызвана после закрытия окна ввода значения со следующими параметрами:
<РезультатВопроса> - результат выбора пользователя: значение системного перечисления или значение, связанное с нажатой кнопкой. В случае закрытия диалога по истечении времени - значение Таймаут,
<ДополнительныеПараметры> - значение, которое было указано при создании объекта ОписаниеОповещения.
(1)
Есть ли способ заставить 1С подождать?
Режим = РежимДиалогаВопрос.ДаНет;
Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопроса", ЭтаФорма, Параметры);
ПоказатьВопрос(Оповещение, НСтр("ru = 'Продолжить выполнение операции?';"
+ " en = 'Do you want to continue?'"), Режим, 0);
ТекстВопроса = "Сегодня пятница?";
ОбработчикРезультата = Новый ОписаниеОповещения("Проверка", ЭтотОбъект);
ПоказатьВопрос(ОбработчикРезультата, ТекстВопроса, РежимДиалогаВопрос.ДаНет,60);
так тоже делал, не помогает.
Кароч, после ПоказатьВопрос() в этом конкретном методе больше ничего быть не должно. И функция, которая вызывает эту функцию, если такая есть - тоже должна быть в конце метода.
В общих словах - надо выстраивать программный код таким образом, чтобы после вызова диалога программе некуда было идти в принципе, а оставалось только ждать ответа пользователя.
Спорю на бутылку коньяка, что после ПоказатьВопрос() у тебя есть еще какие-то строки... Ну или в стеке вызовов.
В общих словах - надо выстраивать программный код таким образом, чтобы после вызова диалога программе некуда было идти в принципе, а оставалось только ждать ответа пользователя.
Спорю на бутылку коньяка, что после ПоказатьВопрос() у тебя есть еще какие-то строки... Ну или в стеке вызовов.
(11)А если не переставлять код, а вынести строки, которые идут после вопроса, в отдельный метод? Данный метод будет вызываться по результатам ответа пользователя, т.е. в обработчике ответа, если все нормально, то должен будет вызываться метод, в котором вынесенная часть кода. В таком случае, как раз, вопрос и останется в конце метода и дальнейшего выполнения не будет, пока система не получить ответ на вопрос.
(1) Без использования модальности, нельзя остановить выполнение кода простым способом.
Можно попробовать вставить бесконечный цикл, который будет проверять, что ответил пользователь. но для этого надо после ответа пользователя вызвать процедуру, в которой будет как то сохранен в базе ответ. А в цикле наконец получит ответ и либо прервет цикл, либо продолжит выполнение кода.
Ну и вставить исключения, когда пользователь долго не отвечает, прерывать выполнение кода.
Можно попробовать вставить бесконечный цикл, который будет проверять, что ответил пользователь. но для этого надо после ответа пользователя вызвать процедуру, в которой будет как то сохранен в базе ответ. А в цикле наконец получит ответ и либо прервет цикл, либо продолжит выполнение кода.
Пока Истина Цикл
Если ПользовательОтветилДа() Тогда
Прервать;
Иначе
Возврат;
КонецЕсли;
КонецЦикла;
Ну и вставить исключения, когда пользователь долго не отвечает, прерывать выполнение кода.
(27) Отчасти я прав. Такое сработает только на файловых базах, на клиент серверных вариантах нет.
Мне приходится работать и с обычными (по большей части) и управляемыми приложениями, поэтому о таких вещах вспоминаю только в своей работе и это уже как то кажется естественным. А когда общаюсь на форуме, всегда думаю в рамках обычных приложений, если автор не указывает иное, хотя бы косвенно.
Мне приходится работать и с обычными (по большей части) и управляемыми приложениями, поэтому о таких вещах вспоминаю только в своей работе и это уже как то кажется естественным. А когда общаюсь на форуме, всегда думаю в рамках обычных приложений, если автор не указывает иное, хотя бы косвенно.
Прикрепленные файлы:
ТестВопроса.epf
(29) Про 7-у многие тоже забыли, но по прежнему не мало контор которые использует 7-у.
Правда у меня знакомы когда искал новую работу, принципиально не шел, там где 7-ка, хотя и знал её. Просто считает, что это путь назад, а уже привык к хорошему :-)
А ваш принцип правильный :-)
Правда у меня знакомы когда искал новую работу, принципиально не шел, там где 7-ка, хотя и знал её. Просто считает, что это путь назад, а уже привык к хорошему :-)
А ваш принцип правильный :-)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот