Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,31 @@
</v8:StringQualifiers>
</Type>
</Attribute>
<Attribute name="ПутьКФайлуРезультата" id="3">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Путь к файлу результата</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Attribute>
<Attribute name="ОшибкаОбновления" id="4">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Ошибка обновления</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
</Attribute>
</Attributes>
</Form>
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

ОшибкаОбновления = Ложь;

Попытка
Выполнить("ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(""ОбщиеНастройкиПользователя"",
|""ЗапрашиватьПодтверждениеПриЗавершенииПрограммы"", Ложь);");
Expand All @@ -30,14 +32,25 @@
ПрекратитьРаботуСистемы();
//Сообщить("Заглушка - завершаем работу системы");
Возврат;
КонецЕсли;
КонецЕсли;

ПараметрыЗапуска = СтрРазделить(ПараметрЗапуска, ";", Ложь);
СтрокаПоиска = "exitCodePath=";
Для каждого Стр из ПараметрыЗапуска Цикл
Если СтрНайти(Стр, СтрокаПоиска) > 0 Тогда
ПутьКФайлуРезультата = СтрЗаменить(Стр, СтрокаПоиска, "");
Сообщить("Путь файла лога " + ПутьКФайлуРезультата);
УдалитьФайлРезультата();
Прервать;
КонецЕсли;
КонецЦикла;

ПодключитьОбработчикОжидания("ПроверитьНеобходимостьЗавершенияПрограммы", 10, Истина);
ПодключитьОбработчикОжидания("ПроверитьЛегальностьОбновления", 2);
Если СуществуетПодсистемаМультиязычность() Тогда
ПодключитьОбработчикОжидания("ПроверитьРегиональныеНастройки", 2);
ПроверитьРегиональныеНастройки();
КонецЕсли;
КонецЕсли;
ПроверитьНеобходимостьЗавершенияПрограммы();
ПроверитьЛегальностьОбновления();
КонецПроцедуры
Expand All @@ -50,6 +63,8 @@
СтрокаНеудачиОбновления = Нрег(НСтр("ru='Не удалось выполнить обновлени';uk='Не вдалося виконати оновленн'"));

СтрокаНачальноеЗаполнение = НСтр("ru='начальное заполнение';uk='початкове заповнення'");
СтрокаПереходСДругойПрограммы = НСтр("ru='переход';uk='переход'");
СтрокаНевыполненыДополнительныеПроцедуры = НСтр("ru='не выполнены дополнительные процедуры'");
СтрокаОбновлениеВерсии = НСтр("ru='обновление версии';uk='оновлення версії'" );
СтрокаЧтоНового = НРег(НСтр("ru='Что нового в конфигурации';uk='Що нового в конфігурації'"));

Expand All @@ -74,6 +89,15 @@
ФормаНачальногоЗаполненияНайденаОдинРаз = Истина;
ФормаНачальногоЗаполненияНайдена = Истина;
ОбновитьПрогресс = Истина;
ИначеЕсли Найти(ЗаголовокНРег, СтрокаПереходСДругойПрограммы) > 0 Тогда

ФормаНачальногоЗаполненияНайденаОдинРаз = Истина;
ФормаНачальногоЗаполненияНайдена = Истина;
ОбновитьПрогресс = Истина;
ИначеЕсли Найти(ЗаголовокНРег, СтрокаНевыполненыДополнительныеПроцедуры) > 0 Тогда

ФормаОбновленияНайдена = Истина;

КонецЕсли;

Если ОбновитьПрогресс Тогда
Expand All @@ -83,16 +107,24 @@

КонецЕсли;

Если Найти(ЗаголовокНРег, СтрокаНевыполненыДополнительныеПроцедуры)>0 Тогда
Если Не Содержимое = Неопределено И ТипЗнч(Содержимое) = Тип("УправляемаяФорма") Тогда
Содержимое.Закрыть(Истина);
МожемЗавершатьРаботу = Ложь;
Прервать;
КонецЕсли;
КонецЕсли;

Если СчетчикОжиданияРезультатов > 0 И Найти(ЗаголовокНРег, СтрокаЧтоНового)>0 Тогда
СчетчикОжиданияРезультатов = МаксИтерацийОжиданияРезультатов + 1;
Сообщить(""+ТекущаяДата() + " - Удачное завершение обновления");
МожноЗавершатьРаботу = Истина;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ты точно уверен, что без этой строки будет завершение 1С в обыных, наиболее частых случаях, когда нет никаких ошибок и лишних окон?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ты точно уверен, что без этой строки будет завершение 1С в обыных, наиболее частых случаях, когда нет никаких ошибок и лишних окон?

Да, работает

Прервать;
КонецЕсли;

Если Найти(ЗаголовокНРег, СтрокаНеудачиОбновления)>0 Тогда
СчетчикОжиданияРезультатов = МаксИтерацийОжиданияРезультатов + 1;
МожноЗавершатьРаботу = Истина;
ОшибкаОбновления = Истина;

Попытка
Если ТипЗнч(Содержимое) = Тип("УправляемаяФорма") Тогда
Expand Down Expand Up @@ -190,6 +222,57 @@
КонецЦикла;

КонецПроцедуры

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

&НаСервереБезКонтекста
Функция ЭтоКонфигурацияНаБазеБСПСервер()
Рез = Ложь;
Описание = Новый Структура;
Попытка
Выполнить("ОбновлениеИнформационнойБазыБСП.ПриДобавленииПодсистемы(Описание);");
Рез = Описание.Имя = "СтандартныеПодсистемы";
Исключение
ИнфоОшибки = ИнформацияОбОшибке();
Рез = НРег(ИнфоОшибки.ИмяМодуля) = НРег("ОбщийМодуль.ОбновлениеИнформационнойБазыБСП.Модуль");
КонецПопытки;
Возврат Рез;
КонецФункции

&НаКлиенте
Процедура ЗаписатьФайлРезультата()

Если ПутьКФайлуРезультата = "" Тогда
Возврат;
КонецЕсли;

ТекстовыйФайл = Новый ТекстовыйДокумент;
ТекстовыйФайл.УстановитьТекст("0");
ТекстовыйФайл.Записать(ПутьКФайлуРезультата, КодировкаТекста.UTF8);

КонецПроцедуры

&НаКлиенте
Процедура УдалитьФайлРезультата()

Если ПутьКФайлуРезультата = "" Тогда
Возврат;
КонецЕсли;

Попытка
УдалитьФайлы(ПутьКФайлуРезультата);
Исключение
ТекстСообщения = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ЗаписатьВЖурналРегистрации(ТекстСообщения);
КонецПопытки;

КонецПроцедуры

&НаКлиенте
Процедура ПроверитьРегиональныеНастройки() Экспорт
Expand Down Expand Up @@ -217,29 +300,6 @@

КонецПроцедуры

&НаКлиенте
Процедура ЗавершитьРаботу() Экспорт
ПрекратитьРаботуСистемы();
КонецПроцедуры

&НаСервереБезКонтекста
Функция ЭтоКонфигурацияНаБазеБСПСервер()
Рез = Ложь;
Описание = Новый Структура;
Попытка
Выполнить("ОбновлениеИнформационнойБазыБСП.ПриДобавленииПодсистемы(Описание);");
Рез = Описание.Имя = "СтандартныеПодсистемы";
Исключение
ИнфоОшибки = ИнформацияОбОшибке();
//Сообщить("Описание = '" + ИнфоОшибки.Описание + "'", СтатусСообщения.Внимание);
//Сообщить("Модуль = '" + ИнфоОшибки.ИмяМодуля + "'", СтатусСообщения.Важное);
//Сообщить("НомерСтроки = '" + ИнфоОшибки.НомерСтроки + "'", СтатусСообщения.Важное);
//Сообщить("ИсходнаяСтрока = '" + ИнфоОшибки.ИсходнаяСтрока + "'", СтатусСообщения.Важное);
Рез = НРег(ИнфоОшибки.ИмяМодуля) = НРег("ОбщийМодуль.ОбновлениеИнформационнойБазыБСП.Модуль");
КонецПопытки;
Возврат Рез;
КонецФункции

&НаКлиенте
Функция СуществуетПодсистемаМультиязычность()
Рез = Ложь;
Expand All @@ -250,6 +310,16 @@
Возврат Рез;
КонецФункции

&НаСервереБезКонтекста
Процедура ЗаписатьВЖурналРегистрации(Комментарий);
ЗаписьЖурналаРегистрации(КлючЖР(), УровеньЖурналаРегистрации.Ошибка, Неопределено, Неопределено, Комментарий);
КонецПроцедуры

&НаСервереБезКонтекста
Функция КлючЖР()
Возврат "VanessaRunner.ЗакрытьПредприятие";
КонецФункции

СчетчикОжиданияРезультатов = 0;
МаксИтерацийОжиданияРезультатов = 5;
ИндикаторВыполнения = 0;
Expand Down