diff --git "a/epf/\320\227\320\260\320\272\321\200\321\213\321\202\321\214\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\320\265/\320\227\320\260\320\272\321\200\321\213\321\202\321\214\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\320\265/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/epf/\320\227\320\260\320\272\321\200\321\213\321\202\321\214\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\320\265/\320\227\320\260\320\272\321\200\321\213\321\202\321\214\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\320\265/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" index d9904d6a..a5517eee 100644 --- "a/epf/\320\227\320\260\320\272\321\200\321\213\321\202\321\214\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\320\265/\320\227\320\260\320\272\321\200\321\213\321\202\321\214\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\320\265/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ "b/epf/\320\227\320\260\320\272\321\200\321\213\321\202\321\214\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\320\265/\320\227\320\260\320\272\321\200\321\213\321\202\321\214\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\320\265/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" @@ -35,5 +35,31 @@ + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Путь к файлу результата</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Ошибка обновления</v8:content> + </v8:item> + + + xs:boolean + + \ No newline at end of file diff --git "a/epf/\320\227\320\260\320\272\321\200\321\213\321\202\321\214\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\320\265/\320\227\320\260\320\272\321\200\321\213\321\202\321\214\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\320\265/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/epf/\320\227\320\260\320\272\321\200\321\213\321\202\321\214\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\320\265/\320\227\320\260\320\272\321\200\321\213\321\202\321\214\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\320\265/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index dc1297e5..81138ea7 100644 --- "a/epf/\320\227\320\260\320\272\321\200\321\213\321\202\321\214\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\320\265/\320\227\320\260\320\272\321\200\321\213\321\202\321\214\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\320\265/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/epf/\320\227\320\260\320\272\321\200\321\213\321\202\321\214\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\320\265/\320\227\320\260\320\272\321\200\321\213\321\202\321\214\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\320\265/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -16,6 +16,8 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + ОшибкаОбновления = Ложь; + Попытка Выполнить("ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(""ОбщиеНастройкиПользователя"", |""ЗапрашиватьПодтверждениеПриЗавершенииПрограммы"", Ложь);"); @@ -30,14 +32,25 @@ ПрекратитьРаботуСистемы(); //Сообщить("Заглушка - завершаем работу системы"); Возврат; - КонецЕсли; + КонецЕсли; + + ПараметрыЗапуска = СтрРазделить(ПараметрЗапуска, ";", Ложь); + СтрокаПоиска = "exitCodePath="; + Для каждого Стр из ПараметрыЗапуска Цикл + Если СтрНайти(Стр, СтрокаПоиска) > 0 Тогда + ПутьКФайлуРезультата = СтрЗаменить(Стр, СтрокаПоиска, ""); + Сообщить("Путь файла лога " + ПутьКФайлуРезультата); + УдалитьФайлРезультата(); + Прервать; + КонецЕсли; + КонецЦикла; ПодключитьОбработчикОжидания("ПроверитьНеобходимостьЗавершенияПрограммы", 10, Истина); ПодключитьОбработчикОжидания("ПроверитьЛегальностьОбновления", 2); Если СуществуетПодсистемаМультиязычность() Тогда ПодключитьОбработчикОжидания("ПроверитьРегиональныеНастройки", 2); ПроверитьРегиональныеНастройки(); - КонецЕсли; + КонецЕсли; ПроверитьНеобходимостьЗавершенияПрограммы(); ПроверитьЛегальностьОбновления(); КонецПроцедуры @@ -50,6 +63,8 @@ СтрокаНеудачиОбновления = Нрег(НСтр("ru='Не удалось выполнить обновлени';uk='Не вдалося виконати оновленн'")); СтрокаНачальноеЗаполнение = НСтр("ru='начальное заполнение';uk='початкове заповнення'"); + СтрокаПереходСДругойПрограммы = НСтр("ru='переход';uk='переход'"); + СтрокаНевыполненыДополнительныеПроцедуры = НСтр("ru='не выполнены дополнительные процедуры'"); СтрокаОбновлениеВерсии = НСтр("ru='обновление версии';uk='оновлення версії'" ); СтрокаЧтоНового = НРег(НСтр("ru='Что нового в конфигурации';uk='Що нового в конфігурації'")); @@ -74,6 +89,15 @@ ФормаНачальногоЗаполненияНайденаОдинРаз = Истина; ФормаНачальногоЗаполненияНайдена = Истина; ОбновитьПрогресс = Истина; + ИначеЕсли Найти(ЗаголовокНРег, СтрокаПереходСДругойПрограммы) > 0 Тогда + + ФормаНачальногоЗаполненияНайденаОдинРаз = Истина; + ФормаНачальногоЗаполненияНайдена = Истина; + ОбновитьПрогресс = Истина; + ИначеЕсли Найти(ЗаголовокНРег, СтрокаНевыполненыДополнительныеПроцедуры) > 0 Тогда + + ФормаОбновленияНайдена = Истина; + КонецЕсли; Если ОбновитьПрогресс Тогда @@ -83,16 +107,24 @@ КонецЕсли; + Если Найти(ЗаголовокНРег, СтрокаНевыполненыДополнительныеПроцедуры)>0 Тогда + Если Не Содержимое = Неопределено И ТипЗнч(Содержимое) = Тип("УправляемаяФорма") Тогда + Содержимое.Закрыть(Истина); + МожемЗавершатьРаботу = Ложь; + Прервать; + КонецЕсли; + КонецЕсли; + Если СчетчикОжиданияРезультатов > 0 И Найти(ЗаголовокНРег, СтрокаЧтоНового)>0 Тогда СчетчикОжиданияРезультатов = МаксИтерацийОжиданияРезультатов + 1; Сообщить(""+ТекущаяДата() + " - Удачное завершение обновления"); - МожноЗавершатьРаботу = Истина; Прервать; КонецЕсли; Если Найти(ЗаголовокНРег, СтрокаНеудачиОбновления)>0 Тогда СчетчикОжиданияРезультатов = МаксИтерацийОжиданияРезультатов + 1; МожноЗавершатьРаботу = Истина; + ОшибкаОбновления = Истина; Попытка Если ТипЗнч(Содержимое) = Тип("УправляемаяФорма") Тогда @@ -190,6 +222,57 @@ КонецЦикла; КонецПроцедуры + +&НаКлиенте +Процедура ЗавершитьРаботу() Экспорт + Если Не ОшибкаОбновления Тогда + ЗаписатьФайлРезультата(); + КонецЕсли; + ПрекратитьРаботуСистемы(); +КонецПроцедуры + +&НаСервереБезКонтекста +Функция ЭтоКонфигурацияНаБазеБСПСервер() + Рез = Ложь; + Описание = Новый Структура; + Попытка + Выполнить("ОбновлениеИнформационнойБазыБСП.ПриДобавленииПодсистемы(Описание);"); + Рез = Описание.Имя = "СтандартныеПодсистемы"; + Исключение + ИнфоОшибки = ИнформацияОбОшибке(); + Рез = НРег(ИнфоОшибки.ИмяМодуля) = НРег("ОбщийМодуль.ОбновлениеИнформационнойБазыБСП.Модуль"); + КонецПопытки; + Возврат Рез; +КонецФункции + +&НаКлиенте +Процедура ЗаписатьФайлРезультата() + + Если ПутьКФайлуРезультата = "" Тогда + Возврат; + КонецЕсли; + + ТекстовыйФайл = Новый ТекстовыйДокумент; + ТекстовыйФайл.УстановитьТекст("0"); + ТекстовыйФайл.Записать(ПутьКФайлуРезультата, КодировкаТекста.UTF8); + +КонецПроцедуры + +&НаКлиенте +Процедура УдалитьФайлРезультата() + + Если ПутьКФайлуРезультата = "" Тогда + Возврат; + КонецЕсли; + + Попытка + УдалитьФайлы(ПутьКФайлуРезультата); + Исключение + ТекстСообщения = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + ЗаписатьВЖурналРегистрации(ТекстСообщения); + КонецПопытки; + +КонецПроцедуры &НаКлиенте Процедура ПроверитьРегиональныеНастройки() Экспорт @@ -217,29 +300,6 @@ КонецПроцедуры -&НаКлиенте -Процедура ЗавершитьРаботу() Экспорт - ПрекратитьРаботуСистемы(); -КонецПроцедуры - -&НаСервереБезКонтекста -Функция ЭтоКонфигурацияНаБазеБСПСервер() - Рез = Ложь; - Описание = Новый Структура; - Попытка - Выполнить("ОбновлениеИнформационнойБазыБСП.ПриДобавленииПодсистемы(Описание);"); - Рез = Описание.Имя = "СтандартныеПодсистемы"; - Исключение - ИнфоОшибки = ИнформацияОбОшибке(); - //Сообщить("Описание = '" + ИнфоОшибки.Описание + "'", СтатусСообщения.Внимание); - //Сообщить("Модуль = '" + ИнфоОшибки.ИмяМодуля + "'", СтатусСообщения.Важное); - //Сообщить("НомерСтроки = '" + ИнфоОшибки.НомерСтроки + "'", СтатусСообщения.Важное); - //Сообщить("ИсходнаяСтрока = '" + ИнфоОшибки.ИсходнаяСтрока + "'", СтатусСообщения.Важное); - Рез = НРег(ИнфоОшибки.ИмяМодуля) = НРег("ОбщийМодуль.ОбновлениеИнформационнойБазыБСП.Модуль"); - КонецПопытки; - Возврат Рез; -КонецФункции - &НаКлиенте Функция СуществуетПодсистемаМультиязычность() Рез = Ложь; @@ -250,6 +310,16 @@ Возврат Рез; КонецФункции +&НаСервереБезКонтекста +Процедура ЗаписатьВЖурналРегистрации(Комментарий); + ЗаписьЖурналаРегистрации(КлючЖР(), УровеньЖурналаРегистрации.Ошибка, Неопределено, Неопределено, Комментарий); +КонецПроцедуры + +&НаСервереБезКонтекста +Функция КлючЖР() + Возврат "VanessaRunner.ЗакрытьПредприятие"; +КонецФункции + СчетчикОжиданияРезультатов = 0; МаксИтерацийОжиданияРезультатов = 5; ИндикаторВыполнения = 0;