#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если ПустаяСтрока(Параметры.ТекстПояснения) Тогда
ТекстПояснения = ВнешниеКомпонентыСлужебный.ПредставлениеКомпоненты(Параметры.Идентификатор, Параметры.Версия);
Иначе
ТекстПояснения = Параметры.ТекстПояснения;
КонецЕсли;
Элементы.ДекорацияПояснение.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1
|
|Компонента не загружена в приложение.
|Загрузить?'"),
ТекстПояснения);
ДанныеАутентификацииПорталаСохранены = ДанныеАутентификацииПорталаСохранены();
ДоступнаЗагрузкаСПортала = ВнешниеКомпонентыСлужебный.ДоступнаЗагрузкаСПортала();
Элементы.ПодключитьИнтернетПоддержку.Видимость = Не ДанныеАутентификацииПорталаСохранены;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если Не ДоступнаЗагрузкаСПортала Тогда
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ПодключитьИнтернетПоддержку(Команда = Неопределено)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей") Тогда
МодульИнтернетПоддержкаПользователейКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтернетПоддержкаПользователейКлиент");
Оповещение = Новый ОписаниеОповещения("ПослеПодключенияИнтернетПоддержки", ЭтотОбъект);
МодульИнтернетПоддержкаПользователейКлиент.ПодключитьИнтернетПоддержкуПользователей(Оповещение, ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Загрузить(Команда)
Если Не ДанныеАутентификацииПорталаСохранены Тогда
ПодключитьИнтернетПоддержку();
Возврат;
КонецЕсли;
Элементы.Загрузить.Доступность = Ложь;
Элементы.Страницы.ТекущаяСтраница = Элементы.ДлительнаяОперация;
ДлительнаяОперация = НачатьПолучениеКомпонентыСПортала(Параметры.Идентификатор, Параметры.Версия, Параметры.ОбновлятьАвтоматически);
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ПараметрыОжидания.ФормаВладелец = ЭтотОбъект;
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
Оповещение = Новый ОписаниеОповещения("ПослеПолученияКомпонентыСПортала", ЭтотОбъект);
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, Оповещение, ПараметрыОжидания);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура ПослеПодключенияИнтернетПоддержки(Результат, Параметр) Экспорт
Если ТипЗнч(Результат) = Тип("Структура") Тогда
Элементы.ПодключитьИнтернетПоддержку.Видимость = Ложь;
ДанныеАутентификацииПорталаСохранены = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ДанныеАутентификацииПорталаСохранены()
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей") Тогда
МодульИнтернетПоддержкаПользователей = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователей");
Возврат МодульИнтернетПоддержкаПользователей.ЗаполненыДанныеАутентификацииПользователяИнтернетПоддержки();
КонецЕсли;
Возврат Ложь;
КонецФункции
&НаСервере
Функция НачатьПолучениеКомпонентыСПортала(Знач Идентификатор, Знач Версия, Знач ОбновлятьАвтоматически)
ПараметрыПроцедуры = ВнешниеКомпонентыСлужебный.ПараметрыКомпонентаСПортала();
ПараметрыПроцедуры.Идентификатор = Идентификатор;
ПараметрыПроцедуры.Версия = Версия;
ПараметрыПроцедуры.ОбновлятьАвтоматически = ОбновлятьАвтоматически;
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Получение внешней компоненты.'");
Возврат ДлительныеОперации.ВыполнитьВФоне("ВнешниеКомпонентыСлужебный.НоваяКомпонентаСПортала",
ПараметрыПроцедуры, ПараметрыВыполнения);
КонецФункции
&НаКлиенте
Процедура ПослеПолученияКомпонентыСПортала(Результат, ДополнительныеПараметры) Экспорт
Элементы.Загрузить.Доступность = Истина;
Элементы.Страницы.ТекущаяСтраница = Элементы.Начальная;
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат.Статус = "Ошибка" Тогда
СтандартныеПодсистемыКлиент.ВывестиИнформациюОбОшибке(
Результат.ИнформацияОбОшибке);
Возврат;
КонецЕсли;
Если Результат.Статус = "Выполнено" Тогда
Закрыть(Истина);
КонецЕсли;
КонецПроцедуры
#КонецОбласти