Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

ПоказатьВопрос в событии ПередЗаписью УФ

ПоказатьВопрос в событии ПередЗаписью УФ
Я
   Georg_QQ
 
19.04.18 - 16:26
Задачка следующая перед интерактивным проведением необходимо интерактивно получить у пользователя вариант действия при проведении.

&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
    
    Если ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение 
        И Объект.Оплачено 
        И ТипЗнч(Объект.ДокументОснование) = Тип("ДокументСсылка.БК_Заявка")
        И НЕ Объект.ДокументОснование.Пустая()
        И НЕ ПараметрыЗаписи.Свойство("АннулироватьЗаявку")    
    Тогда
        ПоказатьВопрос(Новый ОписаниеОповещения("ПередЗаписьюЗавершение", ЭтотОбъект,ПараметрыЗаписи), "Аннулировать заявку-основание?",РежимДиалогаВопрос.ДаНет);
        
        Отказ = Истина;
    КонецЕсли;
    
КонецПроцедуры

&НаКлиенте
Процедура ПередЗаписьюЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
    Если РезультатВопроса=КодВозвратаДиалога.Да Тогда
        Объект.АннулироватьЗаявку = Истина;
    Иначе
        Объект.АннулироватьЗаявку = Ложь;
    КонецЕсли;
    ДополнительныеПараметры.Вставить("АннулироватьЗаявку",Объект.АннулироватьЗаявку);
    Записать(ДополнительныеПараметры);
КонецПроцедуры


Все хорошо, если была нажата кнопка "Провести" а если нажали "ПровестиИЗакрыть" то форма не закрывается. Признака что форма должна быть закрыта по стандартной кнопке, на который можно было бы смотреть, нигде не нашел. Рисовать свою кнопку "провестиИЗакрыть" не вариант, т.к. ей невозможно назначить стандартное сочетание клавиш. Вывести признак как реквизит на форму протеворечит ТЗ. Перетащить "ПоказатьВопрос" в процедуру события "ПередЗакрытием" тоже не вариант, т.к. будет отрабатывать двойная запись документа.

Есть какие-нибудь варианты как реализовать полноценное поведение для кнопки "ПровестиИЗакрыть" с интерактивным взаимодействием с пользователем?
 
 
   Georg_QQ
 
1 - 19.04.18 - 16:29
Если кто-то знает как назначить произвольной кнопке (команде) стандартное сочетание клавиш - это было бы решением всех проблем
   Вафель
 
2 - 19.04.18 - 16:32
Ctrl=Enter = можно назначить. Это называется "кнопка по умолчанию"
   Georg_QQ
 
3 - 19.04.18 - 16:36
(2) Называется "почувствуй себя неполноценным", элементарной вещи не знал, спасибо)))) Это решает задачу.

Но хотелось бы все таки найти решение с использованием стандартной кнопки)
   Сияющий в темноте
 
4 - 19.04.18 - 21:53
Нужно где то запомнить того,кто показал диалог,то есть закрытие или перепроведение,показать диалог,а после его закрытия еще раз вызвать нужное действие уже с установкой флага,что ничего показывать не надо
   sima
 
5 - 19.04.18 - 23:53
(0) С приходом тренда ухода от модальности товарищи из 1С тоже успели задаться твоим вопросом: http://its.1c.ru/docs/v8nonmodal/#25 (см. раздел "Вопрос в обработчике формы ПередЗаписью")
   famnam
 
6 - 20.04.18 - 06:41
(0) в типовых как раз рисуют свои кнопки

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует