#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ИндексыСПАРКРиски = Параметры.ИндексыСПАРКРиски;
Заголовок = НСтр("ru = '1СПАРК Риски:'") + " " + Строка(ИндексыСПАРКРиски.Контрагент);
ОтобразитьЗначенияИндексов(Параметры.ИндексыСПАРКРиски);
КлючСохраненияПоложенияОкна = Строка(Элементы.ДекорацияСтатусИСобытие.Видимость)
+ Строка(Элементы.ГруппаСводныйИндикатор.Видимость)
+ Строка(Элементы.ГруппаИДО.Видимость)
+ Строка(Элементы.ГруппаИФР.Видимость)
+ Строка(Элементы.ГруппаИПД.Видимость)
+ Строка(Элементы.ГруппаОшибкаПодключенияКСервису.Видимость);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "СПАРКРиски:ИзмененоСостояниеФоновогоЗадания" И Параметр.Статус = "Выполнено" Тогда
ОтобразитьРезультатыФоновогоЗадания(Параметр.АдресХранилищаФоновогоЗадания);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ДекорацияОписаниеОшибкиОбработкаНавигационнойСсылки(
Элемент,
НавигационнаяСсылкаФорматированнойСтроки,
СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если НавигационнаяСсылкаФорматированнойСтроки = "SPARK:About" Тогда
СПАРКРискиКлиент.ОбработкаНавигационнойСсылки(
ЭтотОбъект,
Элемент,
НавигационнаяСсылкаФорматированнойСтроки,
СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура ОтобразитьРезультатыФоновогоЗадания(Знач АдресХранилища)
Результаты = ПолучитьИзВременногоХранилища(АдресХранилища);
Если Результаты = Неопределено Тогда
Возврат;
КонецЕсли;
СтрокаРезультат = Результаты.ЗначенияИндексов.Найти(ИндексыСПАРКРиски.ИНН, "ИНН");
Если СтрокаРезультат <> Неопределено Тогда
ИндексыСПАРКРиски = ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(СтрокаРезультат);
ИндексыСПАРКРиски.Вставить(
"СостояниеВыводаДанных",
ПредопределенноеЗначение("Перечисление.СостоянияВыводаИндексовСПАРКРиски.ПолученоИзФоновогоЗадания"));
ИндексыСПАРКРиски.Вставить(
"СостояниеЗагрузкиДанных",
ПредопределенноеЗначение("Перечисление.СостоянияЗагрузкиИндексовСПАРКРиски.ПустаяСсылка"));
ОтобразитьЗначенияИндексов(ИндексыСПАРКРиски);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОтобразитьЗначенияИндексов(РезультатИндексыКонтрагента)
ЦветаСтилей = СПАРКРискиВызовСервера.ЦветаСтилей();
Элементы.КартинкаОжиданиеЗагрузкиИндексовСПАРКРиски.Видимость = Ложь;
Элементы.ДекорацияСтатусИСобытие.Видимость = Ложь;
Элементы.ДекорацияСтатусИСобытие.ЦветТекста = ЦветаСтилей.ЦветОсобогоТекста;
Элементы.ГруппаСводныйИндикатор.Видимость = Ложь;
Элементы.ГруппаИДО.Видимость = Ложь;
Элементы.ГруппаИФР.Видимость = Ложь;
Элементы.ГруппаИПД.Видимость = Ложь;
Элементы.ГруппаОшибкаПодключенияКСервису.Видимость = Ложь;
ВидОшибки = РезультатИндексыКонтрагента.ВидОшибки;
СостояниеВыводаДанных = РезультатИндексыКонтрагента.СостояниеВыводаДанных;
СостояниеЗагрузкиДанных = РезультатИндексыКонтрагента.СостояниеЗагрузкиДанных;
Если Не ЗначениеЗаполнено(ВидОшибки) Тогда
ОшибкаПолученияДанных = Ложь;
ТекстОшибки = "";
Если СостояниеВыводаДанных = ПредопределенноеЗначение("Перечисление.СостоянияВыводаИндексовСПАРКРиски.ВКэшеНетДанных") Тогда
ОшибкаПолученияДанных = Истина;
Если СостояниеЗагрузкиДанных = ПредопределенноеЗначение("Перечисление.СостоянияЗагрузкиИндексовСПАРКРиски.ЗапущеноФоновоеЗадание") Тогда
ТекстОшибки = НСтр("ru='Получение данных...'");
ИначеЕсли СостояниеЗагрузкиДанных = ПредопределенноеЗначение("Перечисление.СостоянияЗагрузкиИндексовСПАРКРиски.ОтменаФоновогоЗадания") Тогда
ТекстОшибки = НСтр("ru='Ошибка получения данных (слишком медленное соединение или отменено администратором)'");
ИначеЕсли СостояниеЗагрузкиДанных = ПредопределенноеЗначение("Перечисление.СостоянияЗагрузкиИндексовСПАРКРиски.ОшибкаФоновогоЗадания") Тогда
ТекстОшибки = НСтр("ru='Ошибка получения данных'");
Иначе
ТекстОшибки = НСтр("ru='Ошибка получения данных (данные не получены)'");
КонецЕсли;
ИначеЕсли СостояниеВыводаДанных = ПредопределенноеЗначение("Перечисление.СостоянияВыводаИндексовСПАРКРиски.НеправильныйИНН") Тогда
ОшибкаПолученияДанных = Истина;
ТекстОшибки = НСтр("ru='Нет информации о контрагенте'");
ИначеЕсли Не ЗначениеЗаполнено(СостояниеВыводаДанных) Тогда
ОшибкаПолученияДанных = Истина;
ТекстОшибки = НСтр("ru='Неопределенная ошибка'");
КонецЕсли;
Если СостояниеЗагрузкиДанных = ПредопределенноеЗначение("Перечисление.СостоянияЗагрузкиИндексовСПАРКРиски.ЗапущеноФоновоеЗадание") Тогда
Элементы.КартинкаОжиданиеЗагрузкиИндексовСПАРКРиски.Видимость = Истина;
КонецЕсли;
Если ОшибкаПолученияДанных = Истина Тогда
Элементы.ДекорацияСтатусИСобытие.Заголовок = ТекстОшибки;
Элементы.ДекорацияСтатусИСобытие.Видимость = Истина;
Возврат;
КонецЕсли;
Если (РезультатИндексыКонтрагента.Активен <> Истина) Тогда
Элементы.ДекорацияСтатусИСобытие.Заголовок =
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Контрагент прекратил деятельность %1'"),
Формат(РезультатИндексыКонтрагента.ДатаСтатуса, "ДЛФ=D"));
Элементы.ДекорацияСтатусИСобытие.Видимость = Истина;
Возврат;
КонецЕсли;
Если РезультатИндексыКонтрагента.ОтображатьСтатус
И НЕ ПустаяСтрока(РезультатИндексыКонтрагента.СтатусНазвание) Тогда
Элементы.ДекорацияСтатусИСобытие.Заголовок =
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='%1 %2'"),
РезультатИндексыКонтрагента.СтатусНазвание,
Формат(РезультатИндексыКонтрагента.ДатаСтатуса, "ДЛФ=D"));
Элементы.ДекорацияСтатусИСобытие.Видимость = Истина;
КонецЕсли;
Если (РезультатИндексыКонтрагента.СводныйИндикатор >= 1)
И (РезультатИндексыКонтрагента.СводныйИндикатор <= 3) Тогда
Элементы.ГруппаСводныйИндикатор.Видимость = Истина;
Элементы.ДекорацияСводныйИндикаторЗначение.Заголовок = Новый ФорматированнаяСтрока(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='%1'"),
РезультатИндексыКонтрагента.СводныйИндикаторГрадация),
,
СПАРКРискиКлиентСервер.ЦветИндекса(
РезультатИндексыКонтрагента.СводныйИндикатор,
"СводныйИндикатор"));
КонецЕсли;
Если (РезультатИндексыКонтрагента.ИндексДолжнойОсмотрительности >= 0)
И (РезультатИндексыКонтрагента.ИндексДолжнойОсмотрительности <= 100) Тогда
Элементы.ГруппаИДО.Видимость = Истина;
Элементы.ДекорацияИДОЗначение.Заголовок = Новый ФорматированнаяСтрока(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='%1 (%2)'"),
РезультатИндексыКонтрагента.ИндексДолжнойОсмотрительности,
НРег(РезультатИндексыКонтрагента.ИДОГрадация)),
,
СПАРКРискиКлиентСервер.ЦветИндекса(
РезультатИндексыКонтрагента.ИндексДолжнойОсмотрительности,
"ИндексДолжнойОсмотрительности"));
КонецЕсли;
Если (РезультатИндексыКонтрагента.ИндексФинансовогоРиска >= 0)
И (РезультатИндексыКонтрагента.ИндексФинансовогоРиска <= 100) Тогда
Элементы.ГруппаИФР.Видимость = Истина;
Элементы.ДекорацияИФРЗначение.Заголовок = Новый ФорматированнаяСтрока(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='%1 (%2)'"),
РезультатИндексыКонтрагента.ИндексФинансовогоРиска,
НРег(РезультатИндексыКонтрагента.ИФРГрадация)),
,
СПАРКРискиКлиентСервер.ЦветИндекса(
РезультатИндексыКонтрагента.ИндексФинансовогоРиска,
"ИндексФинансовогоРиска"));
КонецЕсли;
Если (РезультатИндексыКонтрагента.ИндексПлатежнойДисциплины >= 0)
И (РезультатИндексыКонтрагента.ИндексПлатежнойДисциплины <= 100) Тогда
Элементы.ГруппаИПД.Видимость = Истина;
Элементы.ДекорацияИПДЗначение.Заголовок = Новый ФорматированнаяСтрока(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='%1 (%2)'"),
РезультатИндексыКонтрагента.ИндексПлатежнойДисциплины,
НРег(РезультатИндексыКонтрагента.ИПДГрадация)),
,
СПАРКРискиКлиентСервер.ЦветИндекса(
РезультатИндексыКонтрагента.ИндексПлатежнойДисциплины,
"ИндексПлатежнойДисциплины"));
КонецЕсли;
ИначеЕсли ВидОшибки = ПредопределенноеЗначение("Перечисление.ВидыОшибокСПАРКРиски.НеизвестныйИНН")
Или ВидОшибки = ПредопределенноеЗначение("Перечисление.ВидыОшибокСПАРКРиски.НекорректныйИНН") Тогда
Элементы.ДекорацияСтатусИСобытие.Заголовок = НСтр("ru='Нет информации о контрагенте'");
Элементы.ДекорацияСтатусИСобытие.Видимость = Истина;
Иначе
Элементы.ГруппаОшибкаПодключенияКСервису.Видимость = Истина;
Элементы.ДекорацияОписаниеОшибки.Заголовок =
СтроковыеФункции.ФорматированнаяСтрока(
НСтр("ru='Оценка надежности контрагентов.
|
|<a href=""SPARK:About"">Подробнее о сервисе</a>'"));
КонецЕсли;
КонецПроцедуры
#КонецОбласти