Имя: Пароль:
1C
 
Сообщение пользователю в модуле управляемого приложения
0 ok_sys
 
19.07.17
15:38
Здравствуйте. 8.3, чистая конфа. Нужно при закрытии 1с выдавать сообщение: "Точно закрыть?" если да - то закрывать, если нет - то не закрывать. Без модальных окон. Как сделать?
1 butterbean
 
19.07.17
15:41
через ПоказатьВопрос()
2 ok_sys
 
19.07.17
15:42
Пробовал
3 Naf2017
 
19.07.17
15:42
Глобальный контекст.ПередЗавершениемРаботыСистемы (Global context.BeforeExit)
Глобальный контекст (Global context)
ПередЗавершениемРаботыСистемы (BeforeExit)
Синтаксис:

ПередЗавершениемРаботыСистемы(<Отказ>, <ТекстПредупреждения>)
Параметры:

<Отказ>

Тип: Булево.
Признак отказа от выхода из программы. Если в теле процедуры-обработчика установить данному параметру значение Истина, то работа с программой не будет завершена.
Значение по умолчанию: Ложь.
<ТекстПредупреждения>

Тип: Строка.
Если параметру <Отказ> установлено значение Истина и <ТекстПредупреждения> содержит непустую строку, то окно сообщения с этой строкой будет выведено на экран и пользователю будет предложено на выбор - остаться или покинуть окно без сохранения данных.
Если параметру <Отказ> установлено значение Истина и <ТекстПредупреждения> содержит пустую строку, то пользователю будет отображено окно сообщения с общим текстом "Работа в данном окне не завершена" и предложено - остаться или покинуть окно без сохранения данных.
Если параметру <Отказ> установлено значение Ложь, то значение параметра <ТекстПредупреждения> будет проигнорировано, и процесс завершения работы приложения будет продолжен.
Примечание: В браузере Mozilla Firefox окно сообщения не будет содержать текста предупреждения.
Описание:

Возникает перед завершением работы 1С:Предприятия в режиме УправляемоеПриложение до закрытия главного окна. В процедуре-обработчике могут быть выполнены необходимые проверки и, при необходимости, может быть установлен параметр отказа от выхода из программы.
В процессе завершения работы приложения запрещены серверные вызовы и открытие окон.
Примечание:

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

Глобальный контекст, событие ПриЗавершенииРаботыСистемы

--------------------------------------------------------------------------------

     Методическая информация
4 ok_sys
 
19.07.17
15:49
Я делаю ПоказатьВопрос(****);
но он закрывает систему до того, как я нажал Да или Нет
5 ok_sys
 
19.07.17
15:50
И как 2-ой параметр мне нужно указать для ПоказатьВопрос()?
я в модуле управляемого приложения
6 butterbean
 
19.07.17
15:50
(4) дык ты Отказ = Истина пиши
7 ok_sys
 
19.07.17
15:52
А он ругается еще на "Не найдет экспортируемый метод" (1-ый параметр ПоказатьВопрос())
8 butterbean
 
19.07.17
15:52
(5) в общем модуле пиши процедуру обработки ответа, второй параметр и будет этот общий модуль
9 Timon1405
 
19.07.17
15:53
разве в типовых это не реализовано?
10 ok_sys
 
19.07.17
15:54
Общий модуль клиент?
11 ok_sys
 
19.07.17
15:54
(9) не нашел
12 butterbean
 
19.07.17
15:55
(10) да
13 ok_sys
 
19.07.17
15:55
(12) Все равно "Не найдет экспортируемый метод"
14 ok_sys
 
19.07.17
15:57
а может можно как-то в модуле сеанса? или какой-то общей формой реализовать? есть варианты?
15 Naf2017
 
19.07.17
15:58
для кого я (3) написал?
16 butterbean
 
19.07.17
15:58
(14) все работает и с общим модулем:
1. он должен быть неглобальным и отрабатываться на тоноком клиенте
2. процедура в нем должна быть экспортная
17 ok_sys
 
19.07.17
15:58
От я валенок... ) спасибо, чувак! я не правильно 2-ой параметр передавал
18 ok_sys
 
19.07.17
15:59
(15) я там и делал всю эту операцию, но там не получалось вот я и предположил сделать её где-то в другом месте
19 FIXXXL
 
19.07.17
16:01
(0) в Модуле управляемого приложения (3) сделай
в принципе и всё
20 ok_sys
 
19.07.17
16:04
Вопрос появляется, а теперь как при нажатии "да" закрывать 1с?
21 ok_sys
 
19.07.17
16:07
Параметр Отказ нужно передать?
22 ok_sys
 
19.07.17
16:11
Режим = РежимДиалогаВопрос.ДаНет;
        Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопроса", ОбщийМодуль2, Отказ);
        ПоказатьВопрос(Оповещение, "Тратата?", Режим);
        Отказ = Истина;
23 ok_sys
 
19.07.17
16:11
Процедура ПослеЗакрытияВопроса(Результат, Параметры) Экспорт
    Если Результат = КодВозвратаДиалога.Да Тогда
        Параметры = Истина;
    КонецЕсли;        
КонецПроцедуры
24 ok_sys
 
19.07.17
16:11
бошка кипит уже( что делать?)
25 butterbean
 
19.07.17
16:13
(23) не нужны тебе параметры, просто пиши ПрекратитьРаботуСистемы()
26 butterbean
 
19.07.17
16:13
(25)+ хотя непонятно почему ты (3) не воспользовался если тебе надо просто спросить
27 ok_sys
 
19.07.17
16:14
(25) Спасибо) вот теперь точно все! Тема закрыта.
28 ok_sys
 
19.07.17
16:15
(26) и так попробую
29 Волшебник
 
модератор
19.07.17
16:17
(25) не стоит так делать. Профиль не сохраняется
30 butterbean
 
19.07.17
16:20
(29) а как? завершитьРаботуСистемы()? чот я подзабыл уже