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