forked from vanessa-opensource/vanessa-runner
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Добавлено сохранение системной настройки "Не задавать вопрос при закр…
…ытии приложения"
- Loading branch information
Showing
2 changed files
with
169 additions
and
159 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
327 changes: 168 additions & 159 deletions
327
epf/ЗакрытьПредприятие/ЗакрытьПредприятие/Forms/Форма/Ext/Form/Module.bsl
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,160 +1,169 @@ | ||
&НаКлиенте | ||
Перем СчетчикОжиданияРезультатов; | ||
|
||
&НаКлиенте | ||
Перем МаксИтерацийОжиданияРезультатов; | ||
|
||
&НаКлиенте | ||
Перем ИндикаторВыполнения; | ||
|
||
&НаКлиенте | ||
Перем ФормаОбновленияНайденнаОдинРаз; | ||
|
||
&НаКлиенте | ||
Процедура ПриОткрытии(Отказ) | ||
|
||
ПодключитьОбработчикОжидания("ПроверитьНеобходимостьЗавершенияПрограммы", 10, Истина); | ||
ПодключитьОбработчикОжидания("ПроверитьЛегальностьОбновления", 2); | ||
|
||
КонецПроцедуры | ||
|
||
&НаКлиенте | ||
Процедура ПроверитьНеобходимостьЗавершенияПрограммы() Экспорт | ||
Перем НеобходимоОжидание, МожноЗавершатьРаботу; | ||
|
||
НеобходимоОжидание = (Найти(ПараметрЗапуска, "ЗавершитьРаботуСистемы") > 0); | ||
МожноЗавершатьРаботу = Ложь; | ||
//СтрокаОшибкиОбновления = Нрег("Не выполнены дополнительные процедуры обработки данных"); | ||
СтрокаНеудачиОбновления = Нрег("Не удалось выполнить обновление"); | ||
|
||
ФормаОбновленияНайденна = Ложь; | ||
РезультатОбновленияНайден = Ложь; | ||
|
||
Окна = ПолучитьОкна(); | ||
Для каждого Окн Из Окна Цикл | ||
Если ТипЗнч(Окн) = Тип("ОкноКлиентскогоПриложения") Тогда | ||
|
||
Содержимое = Окн.ПолучитьСодержимое(); | ||
//Сообщить(Окн.Заголовок); | ||
Если Найти(НРег(Строка(Окн.Заголовок)), "обновление версии")>0 Тогда | ||
ФормаОбновленияНайденнаОдинРаз = Истина; | ||
ФормаОбновленияНайденна = Истина; | ||
СчетчикОжиданияРезультатов = 1; | ||
ПроцентВыполнения = 0; | ||
Попытка | ||
Если ТипЗнч(Содержимое) = Тип("УправляемаяФорма") Тогда | ||
ПроцентВыполнения = Содержимое.ПрогрессВыполнения; | ||
КонецЕсли; | ||
Исключение | ||
Сообщить(ОписаниеОшибки()); | ||
КонецПопытки; | ||
|
||
Если ПроцентВыполнения <> ИндикаторВыполнения Тогда | ||
ИндикаторВыполнения = ПроцентВыполнения; | ||
СтрокаСообщения = ""+ТекущаяДата() + " - " + ПроцентВыполнения + "% Нашли форму обновления подождем еще"; | ||
Сообщить(СтрокаСообщения); | ||
КонецЕсли; | ||
|
||
КонецЕсли; | ||
|
||
Если СчетчикОжиданияРезультатов > 0 И Найти(НРег(Строка(Окн.Заголовок)), "что нового в конфигурации")>0 Тогда | ||
СчетчикОжиданияРезультатов = МаксИтерацийОжиданияРезультатов + 1; | ||
Сообщить(""+ТекущаяДата() + " - Удачное завершение обновления"); | ||
МожноЗавершатьРаботу = Истина; | ||
Прервать; | ||
КонецЕсли; | ||
|
||
//Если (Найти(НРег(Строка(Окн.Заголовок)), СтрокаОшибкиОбновления)>0 | ||
// ИЛИ | ||
Если Найти(НРег(Строка(Окн.Заголовок)), СтрокаНеудачиОбновления)>0 Тогда | ||
СчетчикОжиданияРезультатов = МаксИтерацийОжиданияРезультатов + 1; | ||
МожноЗавершатьРаботу = Истина; | ||
|
||
Попытка | ||
Если ТипЗнч(Содержимое) = Тип("УправляемаяФорма") Тогда | ||
ТекстОшибки = Содержимое.Элементы.ТекстСообщенияОбОшибке.Заголовок; | ||
Сообщить("ERROR: "+ТекущаяДата() + " "+ТекстОшибки); | ||
КонецЕсли; | ||
|
||
Исключение | ||
Сообщить("ERROR: "+ТекущаяДата() + ОписаниеОшибки()); | ||
КонецПопытки; | ||
|
||
Сообщить("ERROR: "+ТекущаяДата() + "Неудачное обновление конфигурации"); | ||
Если Не Содержимое = Неопределено И ТипЗнч(Содержимое) = Тип("УправляемаяФорма") Тогда | ||
Содержимое.Закрыть(); | ||
КонецЕсли; | ||
|
||
Прервать; | ||
КонецЕсли; | ||
КонецЕсли; | ||
КонецЦикла; | ||
|
||
Если НеобходимоОжидание И МожноЗавершатьРаботу = Ложь И СчетчикОжиданияРезультатов <= МаксИтерацийОжиданияРезультатов Тогда | ||
СчетчикОжиданияРезультатов = СчетчикОжиданияРезультатов + 1; | ||
ПодключитьОбработчикОжидания("ПроверитьНеобходимостьЗавершенияПрограммы", 10, Истина); | ||
КонецЕсли; | ||
|
||
Если ФормаОбновленияНайденна = Ложь И ФормаОбновленияНайденнаОдинРаз = Истина Тогда | ||
СчетчикОжиданияРезультатов = МаксИтерацийОжиданияРезультатов + 1; | ||
КонецЕсли; | ||
|
||
Если СчетчикОжиданияРезультатов > МаксИтерацийОжиданияРезультатов И НеобходимоОжидание = Истина Тогда | ||
Сообщить(""+ТекущаяДата() + " - "+"Завершаем работу"); | ||
|
||
Если Не Содержимое = Неопределено И ТипЗнч(Содержимое) = Тип("УправляемаяФорма") Тогда | ||
//Содержимое.Закрыть(); | ||
КонецЕсли; | ||
|
||
ПодключитьОбработчикОжидания("ЗавершитьРаботу", 1, Истина); | ||
|
||
|
||
КонецЕсли; | ||
|
||
КонецПроцедуры | ||
|
||
&НаСервереБезКонтекста | ||
Процедура ЗаписатьПодтверждениеЛегальностиПолученияОбновлений() | ||
|
||
УстановитьПривилегированныйРежим(Истина); | ||
ОбновлениеИнформационнойБазыСлужебный.ЗаписатьПодтверждениеЛегальностиПолученияОбновлений(); | ||
|
||
КонецПроцедуры | ||
|
||
&НаКлиенте | ||
Процедура ПроверитьЛегальностьОбновления() Экспорт | ||
|
||
Окна = ПолучитьОкна(); | ||
Для каждого Окн Из Окна Цикл | ||
Если ТипЗнч(Окн) = Тип("ОкноКлиентскогоПриложения") Тогда | ||
Содержимое = Окн.ПолучитьСодержимое(); | ||
Если Найти(НРег(Строка(Окн.Заголовок)), "легальност") > 0 Тогда | ||
Попытка | ||
Если ТипЗнч(Содержимое) = Тип("УправляемаяФорма") Тогда | ||
Содержимое.Результат = Истина; | ||
Содержимое.Закрыть(Истина); | ||
ЗаписатьПодтверждениеЛегальностиПолученияОбновлений(); | ||
СчетчикОжиданияРезультатов = 0; | ||
КонецЕсли; | ||
Исключение | ||
Сообщить(ОписаниеОшибки()); | ||
КонецПопытки; | ||
|
||
ОтключитьОбработчикОжидания("ПроверитьЛегальностьОбновления"); | ||
|
||
КонецЕсли; | ||
КонецЕсли; | ||
КонецЦикла; | ||
|
||
КонецПроцедуры | ||
|
||
&НаКлиенте | ||
Процедура ЗавершитьРаботу() Экспорт | ||
ЗавершитьРаботуСистемы(Истина); | ||
КонецПроцедуры | ||
|
||
|
||
СчетчикОжиданияРезультатов = 0; | ||
МаксИтерацийОжиданияРезультатов = 5; | ||
ИндикаторВыполнения = 0; | ||
&НаКлиенте | ||
Перем СчетчикОжиданияРезультатов; | ||
|
||
&НаКлиенте | ||
Перем МаксИтерацийОжиданияРезультатов; | ||
|
||
&НаКлиенте | ||
Перем ИндикаторВыполнения; | ||
|
||
&НаКлиенте | ||
Перем ФормаОбновленияНайденнаОдинРаз; | ||
|
||
&НаСервере | ||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) | ||
Попытка | ||
ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("ОбщиеНастройкиПользователя", "ЗапрашиватьПодтверждениеПриЗавершенииПрограммы", Ложь); | ||
Исключение | ||
// Данного модуля и метода может не быть в конфигурации | ||
КонецПопытки; | ||
КонецПроцедуры | ||
|
||
&НаКлиенте | ||
Процедура ПриОткрытии(Отказ) | ||
|
||
ПодключитьОбработчикОжидания("ПроверитьНеобходимостьЗавершенияПрограммы", 10, Истина); | ||
ПодключитьОбработчикОжидания("ПроверитьЛегальностьОбновления", 2); | ||
|
||
КонецПроцедуры | ||
|
||
&НаКлиенте | ||
Процедура ПроверитьНеобходимостьЗавершенияПрограммы() Экспорт | ||
Перем НеобходимоОжидание, МожноЗавершатьРаботу; | ||
|
||
НеобходимоОжидание = (Найти(ПараметрЗапуска, "ЗавершитьРаботуСистемы") > 0); | ||
МожноЗавершатьРаботу = Ложь; | ||
//СтрокаОшибкиОбновления = Нрег("Не выполнены дополнительные процедуры обработки данных"); | ||
СтрокаНеудачиОбновления = Нрег("Не удалось выполнить обновление"); | ||
|
||
ФормаОбновленияНайденна = Ложь; | ||
РезультатОбновленияНайден = Ложь; | ||
|
||
Окна = ПолучитьОкна(); | ||
Для каждого Окн Из Окна Цикл | ||
Если ТипЗнч(Окн) = Тип("ОкноКлиентскогоПриложения") Тогда | ||
|
||
Содержимое = Окн.ПолучитьСодержимое(); | ||
//Сообщить(Окн.Заголовок); | ||
Если Найти(НРег(Строка(Окн.Заголовок)), "обновление версии")>0 Тогда | ||
ФормаОбновленияНайденнаОдинРаз = Истина; | ||
ФормаОбновленияНайденна = Истина; | ||
СчетчикОжиданияРезультатов = 1; | ||
ПроцентВыполнения = 0; | ||
Попытка | ||
Если ТипЗнч(Содержимое) = Тип("УправляемаяФорма") Тогда | ||
ПроцентВыполнения = Содержимое.ПрогрессВыполнения; | ||
КонецЕсли; | ||
Исключение | ||
Сообщить(ОписаниеОшибки()); | ||
КонецПопытки; | ||
|
||
Если ПроцентВыполнения <> ИндикаторВыполнения Тогда | ||
ИндикаторВыполнения = ПроцентВыполнения; | ||
СтрокаСообщения = ""+ТекущаяДата() + " - " + ПроцентВыполнения + "% Нашли форму обновления подождем еще"; | ||
Сообщить(СтрокаСообщения); | ||
КонецЕсли; | ||
|
||
КонецЕсли; | ||
|
||
Если СчетчикОжиданияРезультатов > 0 И Найти(НРег(Строка(Окн.Заголовок)), "что нового в конфигурации")>0 Тогда | ||
СчетчикОжиданияРезультатов = МаксИтерацийОжиданияРезультатов + 1; | ||
Сообщить(""+ТекущаяДата() + " - Удачное завершение обновления"); | ||
МожноЗавершатьРаботу = Истина; | ||
Прервать; | ||
КонецЕсли; | ||
|
||
//Если (Найти(НРег(Строка(Окн.Заголовок)), СтрокаОшибкиОбновления)>0 | ||
// ИЛИ | ||
Если Найти(НРег(Строка(Окн.Заголовок)), СтрокаНеудачиОбновления)>0 Тогда | ||
СчетчикОжиданияРезультатов = МаксИтерацийОжиданияРезультатов + 1; | ||
МожноЗавершатьРаботу = Истина; | ||
|
||
Попытка | ||
Если ТипЗнч(Содержимое) = Тип("УправляемаяФорма") Тогда | ||
ТекстОшибки = Содержимое.Элементы.ТекстСообщенияОбОшибке.Заголовок; | ||
Сообщить("ERROR: "+ТекущаяДата() + " "+ТекстОшибки); | ||
КонецЕсли; | ||
|
||
Исключение | ||
Сообщить("ERROR: "+ТекущаяДата() + ОписаниеОшибки()); | ||
КонецПопытки; | ||
|
||
Сообщить("ERROR: "+ТекущаяДата() + "Неудачное обновление конфигурации"); | ||
Если Не Содержимое = Неопределено И ТипЗнч(Содержимое) = Тип("УправляемаяФорма") Тогда | ||
Содержимое.Закрыть(); | ||
КонецЕсли; | ||
|
||
Прервать; | ||
КонецЕсли; | ||
КонецЕсли; | ||
КонецЦикла; | ||
|
||
Если НеобходимоОжидание И МожноЗавершатьРаботу = Ложь И СчетчикОжиданияРезультатов <= МаксИтерацийОжиданияРезультатов Тогда | ||
СчетчикОжиданияРезультатов = СчетчикОжиданияРезультатов + 1; | ||
ПодключитьОбработчикОжидания("ПроверитьНеобходимостьЗавершенияПрограммы", 10, Истина); | ||
КонецЕсли; | ||
|
||
Если ФормаОбновленияНайденна = Ложь И ФормаОбновленияНайденнаОдинРаз = Истина Тогда | ||
СчетчикОжиданияРезультатов = МаксИтерацийОжиданияРезультатов + 1; | ||
КонецЕсли; | ||
|
||
Если СчетчикОжиданияРезультатов > МаксИтерацийОжиданияРезультатов И НеобходимоОжидание = Истина Тогда | ||
Сообщить(""+ТекущаяДата() + " - "+"Завершаем работу"); | ||
|
||
Если Не Содержимое = Неопределено И ТипЗнч(Содержимое) = Тип("УправляемаяФорма") Тогда | ||
//Содержимое.Закрыть(); | ||
КонецЕсли; | ||
|
||
ПодключитьОбработчикОжидания("ЗавершитьРаботу", 1, Истина); | ||
|
||
|
||
КонецЕсли; | ||
|
||
КонецПроцедуры | ||
|
||
&НаСервереБезКонтекста | ||
Процедура ЗаписатьПодтверждениеЛегальностиПолученияОбновлений() | ||
|
||
УстановитьПривилегированныйРежим(Истина); | ||
ОбновлениеИнформационнойБазыСлужебный.ЗаписатьПодтверждениеЛегальностиПолученияОбновлений(); | ||
|
||
КонецПроцедуры | ||
|
||
&НаКлиенте | ||
Процедура ПроверитьЛегальностьОбновления() Экспорт | ||
|
||
Окна = ПолучитьОкна(); | ||
Для каждого Окн Из Окна Цикл | ||
Если ТипЗнч(Окн) = Тип("ОкноКлиентскогоПриложения") Тогда | ||
Содержимое = Окн.ПолучитьСодержимое(); | ||
Если Найти(НРег(Строка(Окн.Заголовок)), "легальност") > 0 Тогда | ||
Попытка | ||
Если ТипЗнч(Содержимое) = Тип("УправляемаяФорма") Тогда | ||
Содержимое.Результат = Истина; | ||
Содержимое.Закрыть(Истина); | ||
ЗаписатьПодтверждениеЛегальностиПолученияОбновлений(); | ||
СчетчикОжиданияРезультатов = 0; | ||
КонецЕсли; | ||
Исключение | ||
Сообщить(ОписаниеОшибки()); | ||
КонецПопытки; | ||
|
||
ОтключитьОбработчикОжидания("ПроверитьЛегальностьОбновления"); | ||
|
||
КонецЕсли; | ||
КонецЕсли; | ||
КонецЦикла; | ||
|
||
КонецПроцедуры | ||
|
||
&НаКлиенте | ||
Процедура ЗавершитьРаботу() Экспорт | ||
ЗавершитьРаботуСистемы(Истина); | ||
КонецПроцедуры | ||
|
||
|
||
СчетчикОжиданияРезультатов = 0; | ||
МаксИтерацийОжиданияРезультатов = 5; | ||
ИндикаторВыполнения = 0; | ||
ФормаОбновленияНайденнаОдинРаз = Ложь; |