Имя: Пароль:
1C
1С v8
Задать пользователю вопрос с остановкой исполнения.
0 Любопытная
 
16.12.14
06:24
БП 3.0, отказ от модальности, все дела.
Нужно задать пользователю вопрос и в зависимости от ответа продолжить записывать документ, либо вернуться к его (документа) заполнению.
Метод ПоказатьВопрос красивый и все такое, но "Выводит на экран окно вопроса, при этом не ожидается завершения ответа пользователя." (цитата из СП). Т.е. на самом деле платформа сначала документ запишет и проведет, а потом уже покажет диалог вопроса.
Что делать?
1 Wobland
 
16.12.14
06:47
делать что-нибудь такое, чтобы _начать_ делать новый документ, имея ответ пользователя. это общий принцип управляемого режима ;)
2 sda553
 
16.12.14
06:57
(0) Сделать подготовительные операции к проведению, сформировать необходимые настройки, щадать вопрос. Потом запускать само проведение
3 Oleg_ka
 
16.12.14
06:59
Попытка Исключение более ничего в голову не приходит
4 lxndr
 
16.12.14
07:09
отказать в проверказаполнения
5 Любопытная
 
16.12.14
07:14
(4) Мне не надо безусловно отказывать.
Вот у меня есть реквизит документа типа дата. Он указывает на окончание некого действия. При записи есть проверка на время окончания, и если время 00:00, то нужно пользователю указать на это и спросить - а точно мы приплыли в полночь? Может просто время не указали. А может и правда в полночь приплыли. И в зависимости от ответа мне нужно либо продолжить запись и проведение документа, либо вернуться к редактированию.
6 фобка
 
16.12.14
07:16
Не записывать документ и всего делов) просто спросить, а если нажмет Записать - записать
7 Любопытная
 
16.12.14
07:17
(6) вот тут не поняла
8 фобка
 
16.12.14
07:18
(7) нарисуй кнопку с вопросом и описанием оповещения
9 Любопытная
 
16.12.14
07:19
(8) ага, и заменять все кнопки командной панели?
10 фобка
 
16.12.14
07:19
тв не начинаешь запись когда спрашиваешь, ты начинаешь когда юзер нажимает Да
11 фобка
 
16.12.14
07:20
(9) откажись от немодальности)
12 Любопытная
 
16.12.14
07:22
(11) я б с удовольствием, но это БП 3.0 и она отказалась от модальности(
13 фобка
 
16.12.14
07:31
(12) я с таким не работал. Действительно интересно, этож типовая конфа и ситуация стандартная. Каковы рекомендации 1с?
14 lxndr
 
16.12.14
07:42
заставить пользователя всегда вводить время
15 Любопытная
 
16.12.14
07:55
(14) по условиям задачи считается, что пароход действительно может приплыть в полночь. Может и все тут. Никаких одна минута первого ночи не представляется заказчику корректным.
16 фобка
 
16.12.14
07:57
(15) при создании документа один раз попросить ввести время
17 Любопытная
 
16.12.14
07:59
В общем, сделала вот так:
В процедуре ПередЗаписью на форме
//Проверка ввода времени прибытия помимо даты
Если Объект.ВремяПрибытияФактическое = НачалоДня(Объект.ВремяПрибытияФактическое) и не Параметры.ПриплылиВПолночь Тогда
    Отказ = Истина;
    ПараметрыОповещения = Новый Структура("ИмяРеквизита","ВремяПрибытияФактическое");
    Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопроса",ЭтаФорма,ПараметрыОповещения);
    ПоказатьВопрос(Оповещение,"Рейс действительно закончился в 00 часов 00 минут?",РежимДиалогаВопрос.ДаНет,,,"Внимание",);
КонецЕсли;


&НаКлиенте
Процедура ПослеЗакрытияВопроса(Результат,ПараметрыОповещения) Экспорт
    Если Результат = КодВозвратаДиалога.Нет Тогда
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = "Установите корректное "+Элементы[ПараметрыОповещения.ИмяРеквизита];
        Сообщение.Поле = "Объект."+ПараметрыОповещения.ИмяРеквизита;
        //Сообщение.УстановитьДанные();
        Сообщение.Сообщить();
    Иначе
        Если ПараметрыОповещения.ИмяРеквизита = "ВремяПрибытияФактическое" Тогда
            Параметры.ПриплылиВПолночь = Истина;    
        Иначе
            Параметры.ОтплылиВПолночь = Истина;
        КонецЕсли;
        ЭтаФорма.Записать();
    КонецЕсли;

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

ПрипылиВПолночь и ОтплылиВПолночь это параметры формы. Пришлось сделать их ключевыми, чтобы они передавались. Зато все проверяется
18 Oleg_ka
 
16.12.14
08:02
(17) И это правильно.
Такое на ИТС описано
http://its.1c.ru/db/metod8dev#content:5293:hdoc
19 Любопытная
 
16.12.14
08:03
(18) Спасибо. Надо почитать.
20 sda553
 
17.12.14
07:23
В таких случаях, просто представьте: а как бы работало какое нибудь не 1с-ное веб решение в браузере?
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn