261 lines
14 KiB
Plaintext
261 lines
14 KiB
Plaintext
|
||
&НаСервере
|
||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||
|
||
Если Параметры.Свойство("ТекстСообщения") Тогда
|
||
ТекстСообщения = Параметры.ТекстСообщения;
|
||
КонецЕсли;
|
||
|
||
Если ПустаяСтрока(ТекстСообщения) Тогда
|
||
ТекстСообщения = "Нет сообщений.";
|
||
КонецЕсли;
|
||
|
||
Если Параметры.Свойство("ПредложитьОбновление") Тогда
|
||
ПредложитьОбновление = Параметры.ПредложитьОбновление;
|
||
КонецЕсли;
|
||
|
||
Если Параметры.Свойство("ИдентификаторПубликации") Тогда
|
||
ИдентификаторПубликации = Параметры.ИдентификаторПубликации;
|
||
КонецЕсли;
|
||
|
||
Элементы.ЗагрузитьОбновление.Видимость = ПредложитьОбновление;
|
||
Элементы.Закрыть.Видимость = ПредложитьОбновление;
|
||
|
||
ЭтоАнимацияОбновления = Параметры.Свойство("ПоказатьАнимациюОбновления")
|
||
И Параметры.ПоказатьАнимациюОбновления = Истина;
|
||
|
||
Если Не ЭтоАнимацияОбновления Тогда
|
||
ЭтоАнимацияОбновления = СтрНайти(НРег(ТекстСообщения), "обнаружена новая версия") > 0;
|
||
КонецЕсли;
|
||
|
||
Если ЭтоАнимацияОбновления Тогда
|
||
Элементы.ГруппаАнимацияОбновления.Видимость = Истина;
|
||
Элементы.СписокСообщений.Видимость = Ложь;
|
||
Элементы.ЗагрузитьОбновление.Видимость = Ложь;
|
||
Элементы.Закрыть.Видимость = Истина;
|
||
Элементы.Закрыть.Заголовок = "Понятно";
|
||
|
||
Если Не ПустаяСтрока(ТекстСообщения) Тогда
|
||
Элементы.ЗаголовокОбновления.Заголовок = ТекстСообщения;
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
|
||
ЗаполнитьСписокСообщений();
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаСервере
|
||
Процедура ЗаполнитьСписокСообщений()
|
||
|
||
СписокСообщений.Очистить();
|
||
|
||
СтрокиТекста = СтрРазделить(ТекстСообщения, Символы.ПС);
|
||
Для Каждого СтрокаТекста Из СтрокиТекста Цикл
|
||
Если ПустаяСтрока(СтрокаТекста) Тогда
|
||
Продолжить;
|
||
КонецЕсли;
|
||
НоваяСтрока = СписокСообщений.Добавить();
|
||
НоваяСтрока.Текст = СтрокаТекста;
|
||
НоваяСтрока.Вид = ВидСообщенияПоТексту(СтрокаТекста);
|
||
КонецЦикла;
|
||
|
||
Если СписокСообщений.Количество() = 0 Тогда
|
||
НоваяСтрока = СписокСообщений.Добавить();
|
||
НоваяСтрока.Текст = "Нет сообщений.";
|
||
НоваяСтрока.Вид = "Инфо";
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаСервере
|
||
Функция ВидСообщенияПоТексту(Текст)
|
||
|
||
СтрокаПоиска = НРег(Текст);
|
||
|
||
Если СтрНайти(СтрокаПоиска, "ошибка") > 0
|
||
Или СтрНайти(СтрокаПоиска, "не удалось") > 0
|
||
Или СтрНайти(СтрокаПоиска, "не вернула") > 0
|
||
Или СтрНайти(СтрокаПоиска, "не записаны") > 0
|
||
Или СтрНайти(СтрокаПоиска, "не найден") > 0 Тогда
|
||
Возврат "Ошибка";
|
||
КонецЕсли;
|
||
|
||
Если СтрНайти(СтрокаПоиска, "напоминание") > 0
|
||
Или СтрНайти(СтрокаПоиска, "обновление") > 0
|
||
Или СтрНайти(СтрокаПоиска, "опубликована") > 0
|
||
Или СтрНайти(СтрокаПоиска, "обнаружена новая версия") > 0
|
||
Или СтрНайти(СтрокаПоиска, "загрузить обновление") > 0 Тогда
|
||
Возврат "Обновление";
|
||
КонецЕсли;
|
||
|
||
Если СтрНайти(СтрокаПоиска, "загружена") > 0
|
||
Или СтрНайти(СтрокаПоиска, "отправлено") > 0
|
||
Или СтрНайти(СтрокаПоиска, "обновлены") > 0
|
||
Или СтрНайти(СтрокаПоиска, "обновлена") > 0
|
||
Или СтрНайти(СтрокаПоиска, "изменений нет") > 0
|
||
Или СтрНайти(СтрокаПоиска, "синхронизация выполнена") > 0 Тогда
|
||
Возврат "Успех";
|
||
КонецЕсли;
|
||
|
||
Возврат "Инфо";
|
||
|
||
КонецФункции
|
||
|
||
&НаКлиенте
|
||
Процедура ПриОткрытии(Отказ)
|
||
|
||
// Анимация обновления: без автозакрытия, закрытие только по кнопке «Понятно».
|
||
Если ЭтоАнимацияОбновления Тогда
|
||
ОтключитьОбработчикОжидания("ЗакрытьФормуПоТаймеру");
|
||
НомерКадра = 0;
|
||
ПоказатьКадрАнимации();
|
||
ПодключитьОбработчикОжидания("СледующийКадрАнимации", 2);
|
||
Возврат;
|
||
КонецЕсли;
|
||
|
||
Если ПредложитьОбновление Тогда
|
||
Возврат;
|
||
КонецЕсли;
|
||
|
||
Таймаут = 4;
|
||
Если Параметры.Свойство("ТаймаутЗакрытия") Тогда
|
||
Если Параметры.ТаймаутЗакрытия = 0 Тогда
|
||
Возврат;
|
||
КонецЕсли;
|
||
Таймаут = Параметры.ТаймаутЗакрытия;
|
||
КонецЕсли;
|
||
|
||
ПодключитьОбработчикОжидания("ЗакрытьФормуПоТаймеру", Таймаут);
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаКлиенте
|
||
Процедура ПриЗакрытии(ЗавершениеРаботы)
|
||
|
||
ОтключитьОбработчикОжидания("СледующийКадрАнимации");
|
||
ОтключитьОбработчикОжидания("ЗакрытьФормуПоТаймеру");
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаКлиенте
|
||
Процедура СледующийКадрАнимации()
|
||
|
||
Если Не Открыта() Тогда
|
||
ОтключитьОбработчикОжидания("СледующийКадрАнимации");
|
||
Возврат;
|
||
КонецЕсли;
|
||
|
||
НомерКадра = НомерКадра + 1;
|
||
Если НомерКадра > 6 Тогда
|
||
НомерКадра = 0;
|
||
КонецЕсли;
|
||
ПоказатьКадрАнимации();
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаКлиенте
|
||
Процедура ПоказатьКадрАнимации()
|
||
|
||
Элементы.НомерШага.Заголовок = "Шаг " + XMLСтрока(НомерКадра + 1) + " из 7";
|
||
Элементы.ЭкранКнопка.Видимость = Ложь;
|
||
|
||
Если НомерКадра = 0 Тогда
|
||
Элементы.ЭкранСтрока1.Заголовок = "Документы";
|
||
Элементы.ЭкранСтрока2.Заголовок = "№ 14 Отправлен";
|
||
Элементы.ПодсказкаКадра.Заголовок = "Приложение открыто. Чтобы обновить конфигурацию, откройте список приложений платформы.";
|
||
Элементы.ИндикаторКадра.Заголовок = "● ○ ○ ○ ○ ○ ○";
|
||
ИначеЕсли НомерКадра = 1 Тогда
|
||
Элементы.ЭкранСтрока1.Заголовок = "Приложения";
|
||
Элементы.ЭкранСтрока2.Заголовок = "ВасяВасилек";
|
||
Элементы.ПодсказкаКадра.Заголовок = "Откройте список запущенных приложений (свайп вверх или кнопка приложений).";
|
||
Элементы.ИндикаторКадра.Заголовок = "○ ● ○ ○ ○ ○ ○";
|
||
ИначеЕсли НомерКадра = 2 Тогда
|
||
Элементы.ЭкранСтрока1.Заголовок = "Удерживайте";
|
||
Элементы.ЭкранСтрока2.Заголовок = "карточку базы";
|
||
Элементы.ПодсказкаКадра.Заголовок = "Нажмите и удерживайте карточку нужной базы, пока не появятся действия.";
|
||
Элементы.ИндикаторКадра.Заголовок = "○ ○ ● ○ ○ ○ ○";
|
||
ИначеЕсли НомерКадра = 3 Тогда
|
||
Элементы.ЭкранСтрока1.Заголовок = "Действия";
|
||
Элементы.ЭкранСтрока2.Заголовок = "";
|
||
Элементы.ЭкранКнопка.Видимость = Истина;
|
||
Элементы.ПодсказкаКадра.Заголовок = "Нажмите «Обновить». Это штатная команда мобильной платформы 1С.";
|
||
Элементы.ИндикаторКадра.Заголовок = "○ ○ ○ ● ○ ○ ○";
|
||
ИначеЕсли НомерКадра = 4 Тогда
|
||
Элементы.ЭкранСтрока1.Заголовок = "Информация";
|
||
Элементы.ЭкранСтрока2.Заголовок = "Обнаружена новая версия приложения";
|
||
Элементы.ПодсказкаКадра.Заголовок = "Платформа сравнивает публикацию с установленной конфигурацией.";
|
||
Элементы.ИндикаторКадра.Заголовок = "○ ○ ○ ○ ● ○ ○";
|
||
ИначеЕсли НомерКадра = 5 Тогда
|
||
Элементы.ЭкранСтрока1.Заголовок = "Загрузка";
|
||
Элементы.ЭкранСтрока2.Заголовок = "████████░░";
|
||
Элементы.ПодсказкаКадра.Заголовок = "Конфигурация скачивается с публикации. Не закрывайте приложение до конца загрузки.";
|
||
Элементы.ИндикаторКадра.Заголовок = "○ ○ ○ ○ ○ ● ○";
|
||
Иначе
|
||
Элементы.ЭкранСтрока1.Заголовок = "Готово";
|
||
Элементы.ЭкранСтрока2.Заголовок = "Версия обновлена";
|
||
Элементы.ПодсказкаКадра.Заголовок = "Приложение перезапускается уже на новой версии.";
|
||
Элементы.ИндикаторКадра.Заголовок = "○ ○ ○ ○ ○ ○ ●";
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаКлиенте
|
||
Процедура ЗакрытьФормуПоТаймеру()
|
||
|
||
ОтключитьОбработчикОжидания("ЗакрытьФормуПоТаймеру");
|
||
Если Открыта() Тогда
|
||
Закрыть();
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаКлиенте
|
||
Процедура ЗакрытьФорму(Команда)
|
||
|
||
ОтключитьОбработчикОжидания("ЗакрытьФормуПоТаймеру");
|
||
ОтключитьОбработчикОжидания("СледующийКадрАнимации");
|
||
Если Открыта() Тогда
|
||
Закрыть();
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаКлиенте
|
||
Процедура ЗагрузитьОбновление(Команда)
|
||
|
||
ОтключитьОбработчикОжидания("ЗакрытьФормуПоТаймеру");
|
||
Элементы.ЗагрузитьОбновление.Доступность = Ложь;
|
||
Элементы.Закрыть.Доступность = Ложь;
|
||
ТекстСообщения = "Загрузка обновления..."
|
||
+ Символы.ПС + "Приложение будет перезапущено.";
|
||
ЗаполнитьСписокСообщений();
|
||
|
||
ПодготовитьЗагрузкуОбновленияНаСервере();
|
||
ЗафиксироватьОбновлениеНаСервере();
|
||
Оповестить("ЗагрузитьОбновлениеТСД");
|
||
ПодключитьОбработчикОжидания("ПерезапуститьДляОбновления", 1);
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаКлиенте
|
||
Процедура ПерезапуститьДляОбновления()
|
||
|
||
ОтключитьОбработчикОжидания("ПерезапуститьДляОбновления");
|
||
ЗавершитьРаботуСистемы(Ложь, Истина);
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаСервере
|
||
Процедура ПодготовитьЗагрузкуОбновленияНаСервере()
|
||
|
||
Синхронизация.ПодготовитьЗагрузкуОбновления();
|
||
|
||
КонецПроцедуры
|
||
|
||
&НаСервере
|
||
Процедура ЗафиксироватьОбновлениеНаСервере()
|
||
|
||
Синхронизация.ЗафиксироватьИдентификаторПубликации(ИдентификаторПубликации);
|
||
|
||
КонецПроцедуры
|