Имя: Пароль:
1C
1С v8
Есть ли способ запретить закрытие управляемой формы
0 ytex
 
23.11.16
15:51
Добрый день.
Необходимо запретить закрытие формы, убрать "крестик" или т.п.
Пытался использовать событие:
&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
    Отказ = Истина;
КонецПроцедуры
то и 1С-ка не закрывается.
подскажите способ...
1 Господин ПЖ
 
23.11.16
15:52
управляемые формы как и карфаген должны быть закрыты!
2 oslokot
 
23.11.16
16:06
(0) Чем не подошел способ ПриЗакрытии ?
3 Жан Пердежон
 
23.11.16
16:12
так при закрытии 1С-ки форма тоже должна закрыться, так что всё норм
4 Fragster
 
гуру
23.11.16
16:13
(3) в 8.3.8 есть параметр
5 Fragster
 
гуру
23.11.16
16:13
у меня при начале работы открывается форма с параметром и вот так:


&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
    
    Если Параметры.ГлавнаяФорма И Не ЗавершениеРаботы Тогда
        Отказ = Истина;
    КонецЕсли;
    
КонецПроцедуры
6 Жан Пердежон
 
23.11.16
16:13
(4) продолжайте наблюдения
7 Fragster
 
гуру
23.11.16
16:14
еще бы крестик с панели открытых убрать - вообще было бы супер
8 ytex
 
23.11.16
16:18
(2) там же нет параметра - отказ
9 oslokot
 
23.11.16
16:20
(8) дае есть там всё
+ в 8.3.8 даже больше
10 oslokot
 
23.11.16
16:21
(8) могу скопипастить сюда выдержку из СП
11 Fragster
 
гуру
23.11.16
16:21
до 8.3.8 пихал в глобальную переменную модуля управляемого приложения перед закрытием и проверял переменную в форме
12 ytex
 
23.11.16
16:40
может туплю, но ниче не выходит:

платформа - 1С:Предприятие 8.3 (8.3.8.2054)

&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
    Если ЗавершениеРаботы Тогда
        Отказ = Истина;
    КонецЕсли;
КонецПроцедуры


смотрю в отладчике параметр при закрытие формы или закрытие 1С, всегда ЗавершениеРаботы=Неопределено
13 ytex
 
23.11.16
16:41
&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
    ПриЗакрытииНаСервере(ЗавершениеРаботы);
КонецПроцедуры

тоже всегда ЗавершениеРаботы=Неопределено
14 DrShad
 
23.11.16
16:42
еще нужно на клаве выковырять CTRL+F4  иначе не взлетит
15 oslokot
 
23.11.16
16:46
(13) так какую форму надо запретить закрывать? главное окно или просто дочернее?
16 ytex
 
23.11.16
16:47
(15) общая форма, которая запускается при старте 1С
17 youalex
 
23.11.16
16:47
ПередЗакрытием ()
18 oslokot
 
23.11.16
16:50
(16) Живой пример как надо делать (8.3.6)

//Не закрывать форму и спросить пользователя разрешения если в таблица формы не пустая

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

&НаКлиенте
Процедура ПередЗакрытиемПродолжение(Результат, Отказ) Экспорт

    Если Результат = КодВозвратаДиалога.Да Тогда
        Таблица.Очистить();
        Закрыть();
    КонецЕсли;

КонецПроцедуры // ПередЗакрытиемПродолжение()
19 oslokot
 
23.11.16
16:51
это с моей нетленки
20 ytex
 
23.11.16
16:59
(19) спасибо за идею.
Закон Брукера: Даже маленькая практика стоит большой теории.