Документооборот с контролирующими органами / Просмотр протокола ПФР / Модуль формы

файл
&НаКлиенте
Перем КонтекстЭДОКлиент;

&НаСервере
Перем КонтекстЭДОСервер Экспорт;

#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	// Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест".
	Если Параметры.Свойство("АвтоТест") Тогда
		Возврат;
	КонецЕсли;
	
	СообщениеПротокол = Параметры.СообщениеПротокол;
	
	// инициализируем контекст ЭДО - модуль обработки
	КонтекстЭДОСервер = ДокументооборотСКО.ПолучитьОбработкуЭДО();

	// считываем текст из файла уведомления
	Попытка
		ПутьКФайлу = ПолучитьИмяВременногоФайла();
		ПолучитьИзВременногоХранилища(Параметры.Протокол).Записать(ПутьКФайлу);
		СтрокаXML = КонтекстЭДОСервер.ПрочитатьТекстИзФайла(ПутьКФайлу, , Истина);
		ОперацииСФайламиЭДКО.УдалитьВременныйФайл(ПутьКФайлу); // xml-файл
	Исключение
		Отказ = Истина;
		ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			НСтр("ru='Ошибка чтения содержимого подтверждения из файла: %1'"), Символы.ПС + Символы.ПС + ИнформацияОбОшибке().Описание);
		ОбщегоНазначения.СообщитьПользователю(ТекстСообщения);
		Возврат;
	КонецПопытки;
	
	// загружаем XML из строки в дерево
	ДеревоXML = КонтекстЭДОСервер.ЗагрузитьСтрокуXMLВДеревоЗначений(СтрокаXML);
	Если ДеревоXML = Неопределено Тогда
		Отказ = Истина;
		Возврат;
	КонецЕсли;
	
	// определяем дату-время получения
	ЭтоУведомлениеОНевозможностиДоставки = Ложь;
	ЭтоПрочийПоложительныйПротокол = Ложь;
	ЭтоПрочийОтрицательныйПротокол = Ложь;
	УзлыДатаВремяОтправки = ДеревоXML.Строки.НайтиСтроки(Новый Структура("Имя, Тип", "датаВремяОтправки", "Э"), Истина);
	Если УзлыДатаВремяОтправки.Количество() = 0 Тогда
		// УОРР, УППО, УУОН-ПУ, УОНД, АДИ-РЕГ, АДИ-8, АВП-ПУ, РПОП-ПУ, РОПОП-ПУ, ТУФС-ПУ
		КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(ДеревоXML,,
			УзлыДатаВремяОтправки, "ДатаВремя", "Э"); 
		ИмяУзлаСлужебнаяИнформацияВРег = ВРег("СлужебнаяИнформация");
		ИндексУзла = 0;
		Пока ИндексУзла < УзлыДатаВремяОтправки.Количество() Цикл
			ИмяУзлаРодителяВРег = ?(УзлыДатаВремяОтправки[ИндексУзла].Родитель = Неопределено, "",
				ВРег(УзлыДатаВремяОтправки[ИндексУзла].Родитель.Имя));
			ИмяУзлаРодителяВРег = СокрЛП(ИмяУзлаРодителяВРег);
			Если СтрЗаканчиваетсяНа(ИмяУзлаРодителяВРег, ИмяУзлаСлужебнаяИнформацияВРег) Тогда
				ИндексУзла = ИндексУзла + 1;
			Иначе
				УзлыДатаВремяОтправки.Удалить(ИндексУзла);
			КонецЕсли;
		КонецЦикла;
		УзелУУОНПУ = Неопределено;
		УзелУОНД = Неопределено;
		УзелАДИ_РЕГ = Неопределено;
		УзелАДИ_8 = Неопределено;
		УзелАВП_ПУ = Неопределено;
		УзелРПОП_ПУ = Неопределено;
		УзелРОПОП_ПУ = Неопределено;
		УзелТУФС_ПУ = Неопределено;
		Для каждого УзелДатаВремяОтправки Из УзлыДатаВремяОтправки Цикл
			РодительРодителяУзла = ?(УзелДатаВремяОтправки.Родитель = Неопределено, Неопределено,
				УзелДатаВремяОтправки.Родитель.Родитель);
			Если ЗначениеЗаполнено(РодительРодителяУзла) Тогда
				УзелУУОНПУ = КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(РодительРодителяУзла,,, "УУОН-ПУ", "Э", Ложь);
				Если ЗначениеЗаполнено(УзелУУОНПУ) Тогда
					Прервать;
				КонецЕсли;
				УзелУОНД = КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(РодительРодителяУзла,,, "УОНД", "Э", Ложь);
				Если ЗначениеЗаполнено(УзелУОНД) Тогда
					ЭтоУведомлениеОНевозможностиДоставки = Истина;
					Прервать;
				КонецЕсли;
				УзелАДИ_РЕГ = КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(РодительРодителяУзла,,, "АДИ-РЕГ", "Э", Ложь);
				Если ЗначениеЗаполнено(УзелАДИ_РЕГ) Тогда
					ЭтоПрочийПоложительныйПротокол = Истина;
					Прервать;
				КонецЕсли;
				УзелАДИ_8 = КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(РодительРодителяУзла,,, "АДИ-8", "Э", Ложь);
				Если ЗначениеЗаполнено(УзелАДИ_8) Тогда
					ЭтоПрочийОтрицательныйПротокол = Истина;
					Прервать;
				КонецЕсли;
				УзелАВП_ПУ = КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(РодительРодителяУзла,,, "АВП-ПУ", "Э", Ложь);
				Если ЗначениеЗаполнено(УзелАВП_ПУ) Тогда
					ЭтоПрочийОтрицательныйПротокол = Истина;
					Прервать;
				КонецЕсли;
				УзелРПОП_ПУ = КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(РодительРодителяУзла,,, "РПОП-ПУ", "Э", Ложь);
				Если ЗначениеЗаполнено(УзелРПОП_ПУ) Тогда
					ЭтоПрочийОтрицательныйПротокол = Истина;
					Прервать;
				КонецЕсли;
				УзелРОПОП_ПУ = КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(РодительРодителяУзла,,, "РОПОП-ПУ", "Э", Ложь);
				Если ЗначениеЗаполнено(УзелРОПОП_ПУ) Тогда
					ЭтоПрочийОтрицательныйПротокол = Истина;
					Прервать;
				КонецЕсли;
				УзелТУФС_ПУ = КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(РодительРодителяУзла,,, "ТУФС-ПУ", "Э", Ложь);
				Если ЗначениеЗаполнено(УзелТУФС_ПУ) Тогда
					ЭтоПрочийОтрицательныйПротокол = Истина;
					Прервать;
				КонецЕсли;
			КонецЕсли;
		КонецЦикла;
		
		Если ЗначениеЗаполнено(УзелУУОНПУ) ИЛИ ЗначениеЗаполнено(УзелУОНД)
			ИЛИ ЗначениеЗаполнено(УзелАДИ_РЕГ) ИЛИ ЗначениеЗаполнено(УзелАДИ_8) ИЛИ ЗначениеЗаполнено(УзелАВП_ПУ)
			ИЛИ ЗначениеЗаполнено(УзелРПОП_ПУ) ИЛИ ЗначениеЗаполнено(УзелРОПОП_ПУ) ИЛИ ЗначениеЗаполнено(УзелТУФС_ПУ) Тогда
			
			ИндексУзла = 0;
			Пока ИндексУзла < УзлыДатаВремяОтправки.Количество() Цикл
				РодительРодителяУзла = ?(УзелДатаВремяОтправки.Родитель = Неопределено, Неопределено,
					УзелДатаВремяОтправки.Родитель.Родитель);
				Если ЗначениеЗаполнено(РодительРодителяУзла) Тогда
					УзелУУОНПУ = КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(РодительРодителяУзла,,, "УУОН-ПУ", "Э", Ложь);
					Если ЗначениеЗаполнено(УзелУУОНПУ) Тогда
						ИндексУзла = ИндексУзла + 1;
					Иначе
						УзелУОНД = КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(РодительРодителяУзла,,, "УОНД", "Э", Ложь);
						Если ЗначениеЗаполнено(УзелУОНД) Тогда
							ИндексУзла = ИндексУзла + 1;
						Иначе
							УзелАДИ_РЕГ = КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(РодительРодителяУзла,,, "АДИ-РЕГ", "Э", Ложь);
							Если ЗначениеЗаполнено(УзелАДИ_РЕГ) Тогда
								ИндексУзла = ИндексУзла + 1;
							Иначе
								УзелАДИ_8 = КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(РодительРодителяУзла,,, "АДИ-8", "Э", Ложь);
								Если ЗначениеЗаполнено(УзелАДИ_8) Тогда
									ИндексУзла = ИндексУзла + 1;
								Иначе
									УзелАВП_ПУ = КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(РодительРодителяУзла,,, "АВП-ПУ", "Э", Ложь);
									Если ЗначениеЗаполнено(УзелАВП_ПУ) Тогда
										ИндексУзла = ИндексУзла + 1;
									Иначе
										УзелРПОП_ПУ = КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(РодительРодителяУзла,,, "РПОП-ПУ", "Э", Ложь);
										Если ЗначениеЗаполнено(УзелРПОП_ПУ) Тогда
											ИндексУзла = ИндексУзла + 1;
										Иначе
											УзелРОПОП_ПУ = КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(РодительРодителяУзла,,, "РОПОП-ПУ", "Э", Ложь);
											Если ЗначениеЗаполнено(УзелРОПОП_ПУ) Тогда
												ИндексУзла = ИндексУзла + 1;
											Иначе
												УзелТУФС_ПУ = КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(РодительРодителяУзла,,, "ТУФС-ПУ", "Э", Ложь);
												Если ЗначениеЗаполнено(УзелТУФС_ПУ) Тогда
													ИндексУзла = ИндексУзла + 1;
												Иначе
													УзлыДатаВремяОтправки.Удалить(ИндексУзла);
												КонецЕсли;
											КонецЕсли;
										КонецЕсли;
									КонецЕсли;
								КонецЕсли;
							КонецЕсли;
						КонецЕсли;
					КонецЕсли;
				КонецЕсли;
			КонецЦикла;
		КонецЕсли;
	КонецЕсли;
	Если УзлыДатаВремяОтправки.Количество() = 0 Тогда
		ДатаВремяОтправки = "";
	Иначе
		ДатаВремяОтправки = Формат(ДатаВремяИзСтрокиXML(УзлыДатаВремяОтправки[0].Значение), "ДЛФ=ДДВ; ДП=-");
	КонецЕсли;
	
	// получаем признак того, что протокол положительный
	ЭтоУведомлениеОРезультатахРассмотрения = Ложь;
	ЭтоУниверсальныйПротокол = Ложь;
	Если ЭтоУведомлениеОНевозможностиДоставки ИЛИ ЭтоПрочийОтрицательныйПротокол Тогда
		ПротоколЯвляетсяПоложительным = НСтр("ru = 'Нет'");
	ИначеЕсли ЭтоПрочийПоложительныйПротокол Тогда
		ПротоколЯвляетсяПоложительным = НСтр("ru = 'Да'");
	Иначе
		УзлыЯвляетсяПоложительным = ДеревоXML.Строки.НайтиСтроки(Новый Структура("Имя, Тип", "являетсяПоложительным", "Э"), Истина);
		Если УзлыЯвляетсяПоложительным.Количество() = 0 Тогда
			КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(ДеревоXML,, УзлыЯвляетсяПоложительным,
				"РезультатРассмотрения", "Э"); // УОРР
			Если УзлыЯвляетсяПоложительным.Количество() > 0 Тогда
				ЭтоУведомлениеОРезультатахРассмотрения = Истина;
			КонецЕсли;
		КонецЕсли;
		Если УзлыЯвляетсяПоложительным.Количество() = 0 Тогда
			ПротоколЯвляетсяПоложительным = "";
			ЕстьПредупреждения = Неопределено;
			УзлыУППКодРезультата = Новый Массив;
			КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(ДеревоXML,, УзлыУППКодРезультата, "КодРезультата", "Э"); // УППО, УУОН-ПУ
			Для каждого УзелУППКодРезультата Из УзлыУППКодРезультата Цикл
				ЭтоУниверсальныйПротокол = Истина;
				ЗначениеКодаРезультата = СокрЛП(УзелУППКодРезультата.Значение);
				Если ЗначениеКодаРезультата = "30" ИЛИ ЗначениеКодаРезультата = "40" Тогда
					ЕстьПредупреждения = Истина;
				ИначеЕсли ЗначениеКодаРезультата = "50" Тогда
					ПротоколЯвляетсяПоложительным = НСтр("ru = 'Нет'");
					Прервать;
				Иначе
					ЕстьПредупреждения = ?(ЕстьПредупреждения = Неопределено, Ложь, ЕстьПредупреждения);
				КонецЕсли;
			КонецЦикла;
			Если НЕ ЗначениеЗаполнено(ПротоколЯвляетсяПоложительным) И ЕстьПредупреждения <> Неопределено Тогда
				ПротоколЯвляетсяПоложительным = ?(ЕстьПредупреждения, НСтр("ru = 'Сдан частично'"), НСтр("ru = 'Да'"));
			КонецЕсли;
			
		Иначе
			ЗначениеСтр = УзлыЯвляетсяПоложительным[0].Значение;
			Если ЭтоУведомлениеОРезультатахРассмотрения Тогда
				ЗначениеБулево = (ЗначениеСтр <> "2");
				ПротоколЯвляетсяПоложительным = ?(ЗначениеСтр = "1", НСтр("ru = 'Да'"), ?(ЗначениеСтр = "2", НСтр("ru = 'Нет'"),
					?(ЗначениеЗаполнено(ЗначениеСтр), НСтр("ru = 'Код'") + " ", "") + ЗначениеСтр));
			Иначе
				ЗначениеБулево = XMLЗначение(Тип("Булево"), ЗначениеСтр);
				ПротоколЯвляетсяПоложительным = ?(ЗначениеБулево, НСтр("ru = 'Да'"), НСтр("ru = 'Нет'"));
			КонецЕсли;
			Если НЕ ЗначениеБулево Тогда
				Элементы.НадписьПротоколЯвляетсяПоложительным.ЦветТекста = Новый Цвет(255, 0, 0);
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;
	
	// определяем дату регистрации обращения
	УзелДатаРегистрацииОбращения = КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(ДеревоXML,,,
		"ДатаРегистрацииОбращения", "Э"); // УОРР
	Если ЗначениеЗаполнено(УзелДатаРегистрацииОбращения) Тогда
		ДатаРегистрацииОбращения = Формат(ДатаВремяИзСтрокиXML(УзелДатаРегистрацииОбращения.Значение), "ДЛФ=ДД; ДП=-");
	Иначе
		Элементы.ГруппаДатаРегистрацииОбращения.Видимость = Ложь;
	КонецЕсли;
	
	// определяем регистрационный номер обращения
	УзелРегистрационныйНомерОбращения = КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(ДеревоXML,,,
		"РегистрационныйНомерОбращения", "Э"); // УОРР
	Если НЕ ЗначениеЗаполнено(УзелРегистрационныйНомерОбращения) Тогда
		УзелРегистрационныйНомерОбращения = КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(ДеревоXML,,,
			"РегНомерОбращ", "Э"); // УОНД
	КонецЕсли;
	Если ЗначениеЗаполнено(УзелРегистрационныйНомерОбращения) Тогда
		РегистрационныйНомерОбращения = XMLЗначение(Тип("Строка"), УзелРегистрационныйНомерОбращения.Значение);
	Иначе
		Элементы.ГруппаРегистрационныйНомерОбращения.Видимость = Ложь;
	КонецЕсли;
	
	// определяем наименование документа
	УзелДокумент = ?(ЭтоУведомлениеОНевозможностиДоставки,
		КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(ДеревоXML,,, "Документ", "Э"), Неопределено);
	УзелНаименованиеДокумента = ?(ЗначениеЗаполнено(УзелДокумент),
		КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(УзелДокумент,,, "Наименование", "Э"), Неопределено);
	Если ЗначениеЗаполнено(УзелНаименованиеДокумента) Тогда
		НаименованиеДокумента = XMLЗначение(Тип("Строка"), УзелНаименованиеДокумента.Значение);
	Иначе
		Элементы.ГруппаНаименованиеДокумента.Видимость = Ложь;
	КонецЕсли;
	
	// определяем код документа
	УзелКодДокумента = ?(ЗначениеЗаполнено(УзелДокумент),
		КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(ДеревоXML,,, "Код", "Э", Истина), Неопределено);
	Если ЗначениеЗаполнено(УзелКодДокумента) Тогда
		КодДокумента = XMLЗначение(Тип("Строка"), УзелКодДокумента.Значение);
	Иначе
		Элементы.ГруппаКодДокумента.Видимость = Ложь;
	КонецЕсли;
	
	// определяем в ответ на
	УзелВОтветНа = ?(ЗначениеЗаполнено(УзелДокумент),
		КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(ДеревоXML,,, "ВОтветНа", "Э", Истина), Неопределено);
	Если ЗначениеЗаполнено(УзелВОтветНа) Тогда
		ВОтветНа = XMLЗначение(Тип("Строка"), УзелВОтветНа.Значение);
	Иначе
		Элементы.ГруппаВОтветНа.Видимость = Ложь;
	КонецЕсли;
	
	// определяем код причины отказа
	УзелКодПричиныОтказа = КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(ДеревоXML,,, "КодПричиныОтказа", "Э"); // УОРР
	Если ЗначениеЗаполнено(УзелКодПричиныОтказа) Тогда
		КодПричиныОтказа = XMLЗначение(Тип("Строка"), УзелКодПричиныОтказа.Значение);
	Иначе
		Элементы.ГруппаКодПричиныОтказа.Видимость = Ложь;
	КонецЕсли;
	
	// определяем причину отказа
	УзелПричинаОтказа = КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(ДеревоXML,,, "ПричинаОтказа", "Э"); // УОРР, АДИ-8
	УзелКомментарий = Неопределено;
	Если НЕ ЗначениеЗаполнено(УзелПричинаОтказа) И ЭтоУведомлениеОНевозможностиДоставки Тогда
		УзелПричинаОтказа = КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(ДеревоXML,,, "Причина", "Э"); // УОНД
		УзелКомментарий = КонтекстЭДОСервер.НайтиСтрокиДереваЗначений(ДеревоXML,,, "Комментарий", "Э"); // УОНД
	КонецЕсли;
	Если ЗначениеЗаполнено(УзелПричинаОтказа) Тогда
		ПричинаОтказа = XMLЗначение(Тип("Строка"), УзелПричинаОтказа.Значение)
			+ ?(ЗначениеЗаполнено(УзелКомментарий), "
			|" + XMLЗначение(Тип("Строка"), УзелКомментарий.Значение), "");
	Иначе
		Элементы.ГруппаПричинаОтказа.Видимость = Ложь;
	КонецЕсли;
	
	// находим узел "протокол"
	УзелПротокол = ДеревоXML.Строки.Найти("протокол", "Имя");
	Если УзелПротокол <> Неопределено Тогда
	
		// находим информацию о приложениях в XML
		УзлыОписаниеПриложений = УзелПротокол.Строки.НайтиСтроки(Новый Структура("Имя, Тип", "описаниеПриложений", "Э"));
		Если УзлыОписаниеПриложений.Количество() > 0 Тогда
			
			УзелОписаниеПриложений = УзлыОписаниеПриложений[0];
			
			// перебираем приложения
			УзлыПриложение = УзелОписаниеПриложений.Строки.НайтиСтроки(Новый Структура("Имя", "приложение"));
			Если УзлыПриложение.Количество() > 0 Тогда
				
				Для Каждого УзелПриложение Из УзлыПриложение Цикл
					
					СтрПриложение = Приложения.ПолучитьЭлементы().Добавить();
					
					// находим подчиненный узел имяФайла
					УзелИмяФайла = УзелПриложение.Строки.Найти("имяФайла");
					Если УзелИмяФайла <> Неопределено Тогда
						СтрПриложение.Имя = УзелИмяФайла.Значение;
					КонецЕсли;
					
					// находим подчиненный узел идентификаторДокумента
					УзелИдентификаторДокумента = УзелПриложение.Строки.Найти("идентификаторДокумента");
					Если УзелИдентификаторДокумента <> Неопределено Тогда
						СтрПриложение.Идентификатор = УзелИдентификаторДокумента.Значение;
					КонецЕсли;
					
				КонецЦикла;
				
			КонецЕсли;
			
		КонецЕсли;
		
	ИначеЕсли ЭтоУведомлениеОРезультатахРассмотрения ИЛИ ЭтоУведомлениеОНевозможностиДоставки
		ИЛИ ЭтоУниверсальныйПротокол ИЛИ ЭтоПрочийПоложительныйПротокол ИЛИ ЭтоПрочийОтрицательныйПротокол Тогда
		
		Элементы.ГруппаСодержимое.Видимость = Ложь;
	КонецЕсли;
	
	Заголовок = ?(ЭтоУведомлениеОРезультатахРассмотрения, НСтр("ru = 'Уведомление о результате рассмотрения'"),
		?(ЭтоУведомлениеОНевозможностиДоставки, НСтр("ru = 'Уведомление о невозможности доставки'"),
		НСтр("ru = 'Протокол'"))) + " " + Параметры.ИмяФайла;
	
	Элементы.КнопкаПечать.Видимость = Параметры.ПечатьВозможна;
	Если Параметры.ПечатьВозможна Тогда
		ЦиклОбмена = Параметры.ЦиклОбмена;
		ФорматДокументооборота = Параметры.ЦиклОбмена.ФорматДокументооборота;
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	// инициализируем контекст формы - контейнера клиентских методов
	ОписаниеОповещения = Новый ОписаниеОповещения("ПриОткрытииЗавершение", ЭтотОбъект);
	
	ДокументооборотСКОКлиент.ПолучитьКонтекстЭДО(ОписаниеОповещения);

КонецПроцедуры

#КонецОбласти

#Область ОбработчикиСобытийЭлементовТаблицыФормы

&НаКлиенте
Процедура ПриложенияВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	
	ИмяФайлаДокумента = Элемент.ТекущиеДанные.Имя;
	
	Вложение = ПолучитьСтрокуВложенияНаСервере(СообщениеПротокол, ИмяФайлаДокумента);
	Если Вложение.Свойство("Предупреждение") Тогда 
		ПоказатьПредупреждение(, Вложение.Предупреждение);
		Возврат;
	КонецЕсли;
	КонтекстЭДОКлиент.ПоказатьПриложениеПФР(СообщениеПротокол, Вложение);

КонецПроцедуры


#КонецОбласти

#Область ОбработчикиКомандФормы

&НаКлиенте
Процедура Печать(Команда)
	
	ОписаниеОповещения = Новый ОписаниеОповещения("ПечатьЗавершение", ЭтотОбъект);
	ДокументооборотСКОКлиент.ПолучитьКонтекстЭДО(ОписаниеОповещения);
	
КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

&НаСервереБезКонтекста
Функция ДатаВремяИзСтрокиXML(ЗначениеСтр)
	
	Попытка
		Возврат XMLЗначение(Тип("Дата"), ЗначениеСтр);
	Исключение
		Возврат '00010101';
	КонецПопытки;
	
КонецФункции

&НаКлиенте
Функция ПолучитьСтрокуВложенияНаСервере(СообщениеПротокол, ИмяФайлаДокумента)
	
	Возврат КонтекстЭДОКлиент.ПолучитьСтрокуВложенияНаСервере(СообщениеПротокол, ИмяФайлаДокумента);
	
КонецФункции

&НаКлиенте
Процедура ПриОткрытииЗавершение(Результат, ДополнительныеПараметры) Экспорт
	
	КонтекстЭДОКлиент = Результат.КонтекстЭДО;
	
КонецПроцедуры

&НаКлиенте
Процедура ПечатьЗавершение(Результат, ДополнительныеПараметры) Экспорт
	
	КонтекстЭДОКлиент = Результат.КонтекстЭДО;
	РезультатНастройки = Новый Структура("ПечататьПротокол, ФорматДокументооборота", Истина, ФорматДокументооборота);
	КонтекстЭДОКлиент.СформироватьИПоказатьПечатныеДокументы(ЦиклОбмена, РезультатНастройки);
	
КонецПроцедуры

#КонецОбласти

Связанные материалы