#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УзелИнформационнойБазы = ОбменДаннымиСервер.ГлавныйУзел();
ЭтоАвтономноеРабочееМесто = ОбменДаннымиСервер.ЭтоАвтономноеРабочееМесто();
ИмяПользователя = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
Если УзелИнформационнойБазы = Неопределено Тогда
ВызватьИсключение НСтр("ru = 'Эта информационная база не является распределенной или автономным рабочим местом.'", ОбщегоНазначения.КодОсновногоЯзыка());
КонецЕсли;
Если ЭтоАвтономноеРабочееМесто Тогда
Элементы.СтраницыПараметрыПодключения.ТекущаяСтраница = Элементы.СтраницаАРМ;
МодульАвтономнаяРабота = ОбщегоНазначения.ОбщийМодуль("АвтономнаяРабота");
АдресДляВосстановленияПароляУчетнойЗаписи = МодульАвтономнаяРабота.АдресДляВосстановленияПароляУчетнойЗаписи();
ДлительнаяОперацияРазрешена = Истина;
Если ТранспортСообщенийОбмена.ПарольСинхронизацииДанныхЗадан(УзелИнформационнойБазы) Тогда
ДанныеАутентификации = ТранспортСообщенийОбмена.ПарольСинхронизацииДанных(УзелИнформационнойБазы);
Пароль = ДанныеАутентификации.Пароль;
КонецЕсли;
КонецЕсли;
ЗаполнитьИнформациюОСообщенииИзАрхиваНаСервере();
НадписьИмяУзла = НСтр("ru = 'Не удалось установить обновление программы, полученное из
|""%1"".
|Техническую информацию см. в <a href = ""%2"">Журнале регистрации</a>.'");
Элементы.ИнформационнаяНадписьИмяУзла.Заголовок =
СтроковыеФункции.ФорматированнаяСтрока(НадписьИмяУзла, Строка(УзелИнформационнойБазы), "ЖурналРегистрации");
УстановитьОтображениеЭлементовФормы();
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПодключитьОбработчикОжидания("ЗаполнитьИнформациюОСообщенииИзАрхива", 60, Ложь);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ИнформационнаяНадписьИмяУзлаОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура;
ОткрытьФорму("Обработка.ЖурналРегистрации.Форма.ЖурналРегистрации", ПараметрыФормы,,,,,,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ПродолжитьЗагрузкуСообщениемИзАрхиваПриИзменении(Элемент)
Элементы.СтраницыПараметрыПодключения.Видимость = Не ПродолжитьЗагрузкуСообщениемИзАрхива;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура СинхронизироватьИПродолжить(Команда)
ТекстПредупреждения = "";
ЕстьОшибки = Ложь;
ПроверитьНеобходимостьОбновления();
Если СтатусОбновления = "ОбновлениеНеТребуется" Тогда
СинхронизироватьИПродолжитьБезОбновленияИБ();
ИначеЕсли СтатусОбновления = "ОбновлениеИнформационнойБазы" Тогда
СинхронизироватьИПродолжитьСОбновлениемИБ();
ИначеЕсли СтатусОбновления = "ОбновлениеКонфигурации" Тогда
ТекстПредупреждения = НСтр("ru = 'Из главного узла получены изменения, которые еще не применены.
|Требуется открыть конфигуратор и обновить конфигурацию базы данных.'");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НеСинхронизироватьИПродолжить(Команда)
НеСинхронизироватьИПродолжитьНаСервере();
Закрыть("Продолжить");
КонецПроцедуры
&НаКлиенте
Процедура ЗавершитьРаботу(Команда)
Если ЗначениеЗаполнено(ПараметрыОбработчикаОбмена) Тогда
ОтменитьВыполнениеЗадания(ПараметрыОбработчикаОбмена.ИдентификаторОперации);
КонецЕсли;
ОтключитьОбработчикОжидания("ПриОжиданииЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБ");
ОтключитьОбработчикОжидания("ПриОжиданииЗагрузкиСообщенияОбменаДаннымиСОбновлением");
Закрыть();
КонецПроцедуры
&НаКлиенте
Процедура ПараметрыПодключения(Команда)
ПараметрыФормы = Новый Структура("Корреспондент", УзелИнформационнойБазы);
ОткрытьФорму("Справочник.НастройкиТранспортаСообщенийОбмена.Форма.ПанельНастроекТранспорта",
ПараметрыФормы,,,,,, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ЗабылиПароль(Команда)
ТранспортСообщенийОбменаКлиент.ОткрытьИнструкциюКакИзменитьПарольСинхронизацииДанных(АдресДляВосстановленияПароляУчетнойЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьСообщениеИзАрхива(Команда)
Если Не ЗначениеЗаполнено(ПериодЗаписиАрхивногоСообщения) Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Архивное сообщение отсутствует'"));
Возврат;
КонецЕсли;
СтруктураЗаписи = Новый Структура("Период, УзелИнформационнойБазы", ПериодЗаписиАрхивногоСообщения, УзелИнформационнойБазы);
ТипЗначения = Тип("РегистрСведенийКлючЗаписи.АрхивСообщенийОбменов");
ПараметрыЗаписи = Новый Массив(1);
ПараметрыЗаписи[0] = СтруктураЗаписи;
КлючЗаписи = Новый(ТипЗначения, ПараметрыЗаписи);
ПараметрыЗаписи = Новый Структура;
ПараметрыЗаписи.Вставить("Ключ", КлючЗаписи);
ОткрытьФорму("РегистрСведений.АрхивСообщенийОбменов.Форма.ФормаЗаписи",
ПараметрыЗаписи,
ЭтотОбъект,
УникальныйИдентификатор);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура СинхронизироватьИПродолжитьБезОбновленияИБ()
ПодключитьОбработчикОжидания("ПриНачалеЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБ", 0.1, Истина);
НастройкаЭлементовФормыДлительнойОперации(Истина);
КонецПроцедуры
&НаКлиенте
Процедура ПриНачалеЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБ()
ПродолжитьОжидание = Истина;
ПриНачалеЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБНаСервере(ПродолжитьОжидание);
Если ПродолжитьОжидание Тогда
ОбменДаннымиКлиент.ИнициализироватьПараметрыОбработчикаОжидания(
ПараметрыОбработчикаОжиданияОбмена);
ПодключитьОбработчикОжидания("ПриОжиданииЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБ",
ПараметрыОбработчикаОжиданияОбмена.ТекущийИнтервал, Истина);
Иначе
ПодключитьОбработчикОжидания("ПриЗавершенииЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБ", 0.1, Истина);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриНачалеЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБНаСервере(ПродолжитьОжидание)
ДанныеАутентификации = Новый Структура;
Если ЭтоАвтономноеРабочееМесто Тогда
ДанныеАутентификации.Вставить("ИмяПользователя", ИмяПользователя);
ДанныеАутентификации.Вставить("Пароль", Пароль);
КонецЕсли;
ПараметрыПроцедуры = Новый Структура;
ПараметрыПроцедуры.Вставить("ПродолжитьЗагрузкуСообщениемИзАрхива", ПродолжитьЗагрузкуСообщениемИзАрхива);
ПараметрыПроцедуры.Вставить("УзелИнформационнойБазы", УзелИнформационнойБазы);
ПараметрыПроцедуры.Вставить("ДанныеАутентификации", ДанныеАутентификации);
ПараметрыПроцедуры.Вставить("ЕстьОшибки", Ложь);
ДатаНачалаОперации = ТекущаяДатаСеанса();
ПараметрыОбработчикаОбмена = Неопределено;
МодульПомощникСозданияОбменаДанными = ОбменДаннымиСервер.МодульПомощникСозданияОбменаДанными();
МодульПомощникСозданияОбменаДанными.ПриНачалеЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБ(ПараметрыПроцедуры,
ПараметрыОбработчикаОбмена, ПродолжитьОжидание);
КонецПроцедуры
&НаКлиенте
Процедура ПриОжиданииЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБ()
ПродолжитьОжидание = Ложь;
ПриОжиданииЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБНаСервере(ПараметрыОбработчикаОбмена, ПродолжитьОжидание);
Если ПродолжитьОжидание Тогда
ОбменДаннымиКлиент.ОбновитьПараметрыОбработчикаОжидания(ПараметрыОбработчикаОжиданияОбмена);
ПодключитьОбработчикОжидания("ПриОжиданииЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБ",
ПараметрыОбработчикаОжиданияОбмена.ТекущийИнтервал, Истина);
Иначе
ПодключитьОбработчикОжидания("ПриЗавершенииЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБ", 0.1, Истина);
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ПриОжиданииЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБНаСервере(ПараметрыОбработчика, ПродолжитьОжидание)
МодульПомощникСозданияОбменаДанными = ОбменДаннымиСервер.МодульПомощникСозданияОбменаДанными();
МодульПомощникСозданияОбменаДанными.ПриОжиданииЗагрузкиСообщенияПередОбновлениемИнформационнойБазы(ПараметрыОбработчика, ПродолжитьОжидание);
КонецПроцедуры
&НаКлиенте
Процедура ПриЗавершенииЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБ()
СообщениеОбОшибке = "";
ПриЗавершенииЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБНаСервере(ПараметрыОбработчикаОбмена, СообщениеОбОшибке);
Если Не ПустаяСтрока(СообщениеОбОшибке) Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(СообщениеОбОшибке,,,, ЕстьОшибки);
КонецЕсли;
СинхронизироватьИПродолжитьБезОбновленияИБЗавершение();
СинхронизироватьИПродолжитьЗавершение();
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ПриЗавершенииЗагрузкиСообщенияОбменаДаннымиБезОбновленияИБНаСервере(ПараметрыОбработчика, СообщениеОбОшибке)
СтатусЗавершения = Неопределено;
МодульПомощникСозданияОбменаДанными = ОбменДаннымиСервер.МодульПомощникСозданияОбменаДанными();
МодульПомощникСозданияОбменаДанными.ПриЗавершенииЗагрузкиСообщенияПередОбновлениемИнформационнойБазы(ПараметрыОбработчика, СтатусЗавершения);
Если СтатусЗавершения.Отказ Тогда
СообщениеОбОшибке = СтатусЗавершения.СообщениеОбОшибке;
Иначе
Если СтатусЗавершения.Результат <> Неопределено И СтатусЗавершения.Результат.Отказ Тогда
СообщениеОбОшибке = СтатусЗавершения.Результат.СообщениеОбОшибке;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СинхронизироватьИПродолжитьБезОбновленияИБЗавершение()
УстановитьПривилегированныйРежим(Истина);
Если Не ЕстьОшибки Тогда
Возврат;
ИначеЕсли КонфигурацияИзменена() Тогда
Если НЕ Константы.ЗагрузитьСообщениеОбменаДанными.Получить() Тогда
Константы.ЗагрузитьСообщениеОбменаДанными.Установить(Истина);
КонецЕсли;
ТекстПредупреждения = НСтр("ru = 'Из главного узла получены изменения, которые нужно применить.
|Требуется открыть конфигуратор и обновить конфигурацию базы данных.'");
Иначе
Если ОбновлениеИнформационнойБазы.НеобходимоОбновлениеИнформационнойБазы() Тогда
ВключитьПовторениеЗагрузкиСообщенияОбменаДаннымиПередЗапуском();
КонецЕсли;
ТекстПредупреждения = НСтр("ru = 'Получение данных из главного узла завершилось с ошибками.
|Подробности см. в журнале регистрации.'");
ОбменДаннымиСервер.УстановитьРежимЗагрузкиСообщенияОбменаДаннымиПередЗапуском("ЗагрузкаРазрешена", Ложь);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СинхронизироватьИПродолжитьСОбновлениемИБ()
ПодключитьОбработчикОжидания("ПриНачалеЗагрузкиСообщенияОбменаДаннымиСОбновлением", 0.1, Истина);
НастройкаЭлементовФормыДлительнойОперации(Истина);
КонецПроцедуры
&НаКлиенте
Процедура ПриНачалеЗагрузкиСообщенияОбменаДаннымиСОбновлением()
ПродолжитьОжидание = Истина;
ПриНачалеЗагрузкиСообщенияОбменаДаннымиСОбновлениемНаСервере(ПродолжитьОжидание);
Если ПродолжитьОжидание Тогда
ОбменДаннымиКлиент.ИнициализироватьПараметрыОбработчикаОжидания(
ПараметрыОбработчикаОжиданияОбмена);
ПодключитьОбработчикОжидания("ПриОжиданииЗагрузкиСообщенияОбменаДаннымиСОбновлением",
ПараметрыОбработчикаОжиданияОбмена.ТекущийИнтервал, Истина);
Иначе
ПодключитьОбработчикОжидания("ПриЗавершенииЗагрузкиСообщенияОбменаДаннымиСОбновлением", 0.1, Истина);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриНачалеЗагрузкиСообщенияОбменаДаннымиСОбновлениемНаСервере(ПродолжитьОжидание)
ДанныеАутентификации = Новый Структура;
Если ЭтоАвтономноеРабочееМесто Тогда
ДанныеАутентификации.Вставить("ИмяПользователя", ИмяПользователя);
ДанныеАутентификации.Вставить("Пароль", Пароль);
КонецЕсли;
ПараметрыПроцедуры = Новый Структура;
ПараметрыПроцедуры.Вставить("ПродолжитьЗагрузкуСообщениемИзАрхива", ПродолжитьЗагрузкуСообщениемИзАрхива);
ПараметрыПроцедуры.Вставить("УзелИнформационнойБазы", УзелИнформационнойБазы);
ПараметрыПроцедуры.Вставить("ДанныеАутентификации", ДанныеАутентификации);
ПараметрыПроцедуры.Вставить("ЕстьОшибки", ЕстьОшибки);
ДатаНачалаОперации = ТекущаяДатаСеанса();
ПараметрыОбработчикаОбмена = Неопределено;
МодульПомощникСозданияОбменаДанными = ОбменДаннымиСервер.МодульПомощникСозданияОбменаДанными();
МодульПомощникСозданияОбменаДанными.ПриНачалеЗагрузкиСообщенияОбменаДаннымиСОбновлением(ПараметрыПроцедуры,
ПараметрыОбработчикаОбмена, ПродолжитьОжидание);
КонецПроцедуры
&НаКлиенте
Процедура ПриОжиданииЗагрузкиСообщенияОбменаДаннымиСОбновлением()
ПродолжитьОжидание = Ложь;
ПриОжиданииЗагрузкиСообщенияОбменаДаннымиСОбновлениемНаСервере(ПараметрыОбработчикаОбмена, ПродолжитьОжидание);
Если ПродолжитьОжидание Тогда
ОбменДаннымиКлиент.ОбновитьПараметрыОбработчикаОжидания(ПараметрыОбработчикаОжиданияОбмена);
ПодключитьОбработчикОжидания("ПриОжиданииЗагрузкиСообщенияОбменаДаннымиСОбновлением",
ПараметрыОбработчикаОжиданияОбмена.ТекущийИнтервал, Истина);
Иначе
ПодключитьОбработчикОжидания("ПриЗавершенииЗагрузкиСообщенияОбменаДаннымиСОбновлением", 0.1, Истина);
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ПриОжиданииЗагрузкиСообщенияОбменаДаннымиСОбновлениемНаСервере(ПараметрыОбработчика, ПродолжитьОжидание)
МодульПомощникСозданияОбменаДанными = ОбменДаннымиСервер.МодульПомощникСозданияОбменаДанными();
МодульПомощникСозданияОбменаДанными.ПриОжиданииЗагрузкиСообщенияОбменаДаннымиСОбновлением(ПараметрыОбработчика, ПродолжитьОжидание);
КонецПроцедуры
&НаКлиенте
Процедура ПриЗавершенииЗагрузкиСообщенияОбменаДаннымиСОбновлением()
СообщениеОбОшибке = "";
ПриЗавершенииЗагрузкиСообщенияОбменаДаннымиСОбновлениемНаСервере(ПараметрыОбработчикаОбмена, СообщениеОбОшибке);
Если Не ПустаяСтрока(СообщениеОбОшибке) Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(СообщениеОбОшибке,,,, ЕстьОшибки);
КонецЕсли;
СинхронизироватьИПродолжитьСОбновлениемИБЗавершение();
СинхронизироватьИПродолжитьЗавершение();
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ПриЗавершенииЗагрузкиСообщенияОбменаДаннымиСОбновлениемНаСервере(ПараметрыОбработчика, СообщениеОбОшибке)
СтатусЗавершения = Неопределено;
МодульПомощникСозданияОбменаДанными = ОбменДаннымиСервер.МодульПомощникСозданияОбменаДанными();
МодульПомощникСозданияОбменаДанными.ПриЗавершенииЗагрузкиСообщенияОбменаДаннымиСОбновлением(ПараметрыОбработчика, СтатусЗавершения);
Если СтатусЗавершения.Отказ Тогда
СообщениеОбОшибке = СтатусЗавершения.СообщениеОбОшибке;
Иначе
Если СтатусЗавершения.Результат <> Неопределено И СтатусЗавершения.Результат.Отказ Тогда
СообщениеОбОшибке = СтатусЗавершения.Результат.СообщениеОбОшибке;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СинхронизироватьИПродолжитьСОбновлениемИБЗавершение()
УстановитьПривилегированныйРежим(Истина);
Если Не ЕстьОшибки Тогда
ОбменДаннымиСервер.УстановитьРежимЗагрузкиСообщенияОбменаДаннымиПередЗапуском("ЗагрузкаРазрешена", Ложь);
Если НЕ Константы.ЗагрузитьСообщениеОбменаДанными.Получить() Тогда
Константы.ЗагрузитьСообщениеОбменаДанными.Установить(Истина);
КонецЕсли;
ОбменДаннымиСервер.УстановитьРежимЗагрузкиСообщенияОбменаДаннымиПередЗапуском(
"ПропуститьЗагрузкуПриоритетныхДанныхПередЗапуском", Истина);
ИначеЕсли КонфигурацияИзменена() Тогда
Если НЕ Константы.ЗагрузитьСообщениеОбменаДанными.Получить() Тогда
Константы.ЗагрузитьСообщениеОбменаДанными.Установить(Истина);
КонецЕсли;
ТекстПредупреждения = НСтр("ru = 'Из главного узла получены изменения, которые нужно применить.
|Требуется открыть конфигуратор и обновить конфигурацию базы данных.'");
Иначе
ОбменДаннымиСервер.УстановитьРежимЗагрузкиСообщенияОбменаДаннымиПередЗапуском("ЗагрузкаРазрешена", Ложь);
ВключитьПовторениеЗагрузкиСообщенияОбменаДаннымиПередЗапуском();
ТекстПредупреждения = НСтр("ru = 'Получение данных из главного узла завершилось с ошибками.
|Подробности см. в журнале регистрации.'");
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура НеСинхронизироватьИПродолжитьНаСервере()
УстановитьПривилегированныйРежим(Истина);
Если НЕ ОбновлениеИнформационнойБазы.НеобходимоОбновлениеИнформационнойБазы() Тогда
Если Константы.ЗагрузитьСообщениеОбменаДанными.Получить() Тогда
Константы.ЗагрузитьСообщениеОбменаДанными.Установить(Ложь);
ОбменДаннымиСервер.ОчиститьСообщениеОбменаДаннымиИзГлавногоУзла();
КонецЕсли;
КонецЕсли;
ОбменДаннымиСервер.УстановитьРежимЗагрузкиСообщенияОбменаДаннымиПередЗапуском(
"ПропуститьЗагрузкуСообщенияОбменаДаннымиПередЗапуском", Истина);
КонецПроцедуры
&НаСервере
Процедура ПроверитьНеобходимостьОбновления()
УстановитьПривилегированныйРежим(Истина);
Если КонфигурацияИзменена() Тогда
СтатусОбновления = "ОбновлениеКонфигурации";
ИначеЕсли ОбновлениеИнформационнойБазы.НеобходимоОбновлениеИнформационнойБазы() Тогда
СтатусОбновления = "ОбновлениеИнформационнойБазы";
Иначе
СтатусОбновления = "ОбновлениеНеТребуется";
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СинхронизироватьИПродолжитьЗавершение()
УстановитьОтображениеЭлементовФормы();
Если ПустаяСтрока(ТекстПредупреждения) Тогда
ПоказатьОповещениеПользователя(НСтр("ru = 'Автономная работа'"),
,
НСтр("ru = 'Повторная синхронизация данных завершена.'"),
БиблиотекаКартинок.Информация32,
СтатусОповещенияПользователя.Важное);
Закрыть("Продолжить");
Иначе
ПоказатьПредупреждение(, ТекстПредупреждения);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ВключитьПовторениеЗагрузкиСообщенияОбменаДаннымиПередЗапуском()
ОбменДаннымиСервер.ОчиститьСообщениеОбменаДаннымиИзГлавногоУзла();
Константы.ПовторитьЗагрузкуСообщенияОбменаДаннымиПередЗапуском.Установить(Истина);
КонецПроцедуры
&НаСервере
Процедура УстановитьОтображениеЭлементовФормы()
Если ОбменДаннымиСервер.ЗагрузитьСообщениеОбменаДанными()
И ОбновлениеИнформационнойБазы.НеобходимоОбновлениеИнформационнойБазы() Тогда
Элементы.ФормаНеСинхронизироватьИПродолжить.Видимость = Ложь;
Элементы.ИнформационнаяНадписьНеСинхронизировать.Видимость = Ложь;
Иначе
Элементы.ФормаНеСинхронизироватьИПродолжить.Видимость = Истина;
Элементы.ИнформационнаяНадписьНеСинхронизировать.Видимость = Истина;
КонецЕсли;
Элементы.ПанельОсновная.ТекущаяСтраница = ?(ДлительнаяОперация, Элементы.ДлительнаяОперация, Элементы.Начало);
Элементы.ГруппаКнопокДлительнаяОперация.Видимость = ДлительнаяОперация;
Элементы.ГруппаКнопокОсновная.Видимость = Не ДлительнаяОперация;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьИнформациюОСообщенииИзАрхива()
ЗаполнитьИнформациюОСообщенииИзАрхиваНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьИнформациюОСообщенииИзАрхиваНаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| АрхивСообщенийОбменовСрезПоследних.Период КАК Период
|ИЗ
| РегистрСведений.АрхивСообщенийОбменов.СрезПоследних(, УзелИнформационнойБазы = &УзелИнформационнойБазы) КАК АрхивСообщенийОбменовСрезПоследних";
Запрос.УстановитьПараметр("УзелИнформационнойБазы", УзелИнформационнойБазы);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Элементы.ОткрытьСообщениеИзАрхива.Заголовок = НСтр("ru = '<Сообщение в архиве отсутствует>'");
Элементы.ПродолжитьЗагрузкуСообщениемИзАрхива.ТолькоПросмотр = Истина;
ПродолжитьЗагрузкуСообщениемИзАрхива = Ложь;
ПериодЗаписиАрхивногоСообщения = Дата(1,1,1);
Иначе
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
Элементы.ОткрытьСообщениеИзАрхива.Заголовок = СтрШаблон(НСтр("ru = 'Архивное сообщение от %1.'"), Формат(Выборка.Период, "ДЛФ=DT"));
Элементы.ПродолжитьЗагрузкуСообщениемИзАрхива.ТолькоПросмотр = Ложь;
ПериодЗаписиАрхивногоСообщения = Выборка.Период;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НастройкаЭлементовФормыДлительнойОперации(ДлительнаяОперацияВыполняется)
Если ДлительнаяОперацияВыполняется Тогда
Элементы.ПанельОсновная.ТекущаяСтраница = Элементы.ДлительнаяОперация;
Элементы.ГруппаКнопокОсновная.Видимость = Ложь;
Элементы.ГруппаКнопокДлительнаяОперация.Видимость = Истина;
Иначе
Элементы.ПанельОсновная.ТекущаяСтраница = Элементы.Начало;
Элементы.ГруппаКнопокОсновная.Видимость = Истина;
Элементы.ГруппаКнопокДлительнаяОперация.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ОтменитьВыполнениеЗадания(Знач ИДЗадания)
ДлительныеОперации.ОтменитьВыполнениеЗадания(ИДЗадания);
КонецПроцедуры
#КонецОбласти