Бизнес-сеть / Просмотр документа / Модуль формы

файл

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

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

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

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

&НаКлиенте
Процедура ОтправительНажатие(Элемент, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	ПараметрыОткрытия = БизнесСетьКлиентСервер.ОписаниеИдентификацииОрганизацииКонтрагентов();
	ПараметрыОткрытия.ИНН = КонтрагентИНН;
	ПараметрыОткрытия.КПП = КонтрагентКПП;
	БизнесСетьСлужебныйКлиент.ОткрытьПрофильУчастника(ПараметрыОткрытия);

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

&НаКлиенте
Процедура РежимЗагрузкиПриИзменении(Элемент)
	
	РежимЗаполненияДокумента = СпособЗагрузкиДокумента = 1;
	ИзменитьРежимЗагрузки(Элементы, РежимЗаполненияДокумента);
	
КонецПроцедуры

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

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

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

&НаКлиенте
Процедура КомандаЗагрузить(Команда)
	
	ОчиститьСообщения();
	
	Если Не ОрганизацияПодключенаБС Тогда
		ПодключитьОрганизациюКСервисуБизнесСеть();
		Возврат;
	КонецЕсли;
	
	ЗагрузитьДокументЭДО();
	
КонецПроцедуры

&НаКлиенте
Процедура ОтображатьДополнительнуюИнформацию(Команда)
	
	ОтключитьВыводДопДанных = Не ОтключитьВыводДопДанных;
	ПерезаполнитьТабличныйДокумент();
	ОбновитьОтображениеДанных();
	Элементы.КомандаОтображатьДополнительнуюИнформацию.Пометка = Не ОтключитьВыводДопДанных;
	
КонецПроцедуры

&НаКлиенте
Процедура ОтображатьОбластьКопияВерна(Команда)
	
	ОтключитьВыводКопияВерна = Не ОтключитьВыводКопияВерна;
	ПерезаполнитьТабличныйДокумент();
	ОбновитьОтображениеДанных();
	Элементы.КомандаОтображатьОбластьКопияВерна.Пометка = Не ОтключитьВыводКопияВерна;
	
КонецПроцедуры

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

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

&НаСервере
Процедура ПерезаполнитьТабличныйДокумент()

	Если ЗначениеЗаполнено(АдресСтруктурыЭД) Тогда
		СтруктураЭД = ПолучитьИзВременногоХранилища(АдресСтруктурыЭД);
		ПоказатьПредставлениеФайлаЭлектронногоДокумента(СтруктураЭД, Ложь);
	КонецЕсли;
	
КонецПроцедуры

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

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

&НаСервереБезКонтекста
Функция ДокументПроведен(ДокументИБ)
	
	Проведен = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументИБ, "Проведен");
	Возврат Проведен;
	
КонецФункции

&НаСервере
Процедура СоздатьКонтрагента(Отказ)
	
	РеквизитыКонтрагента = Новый Структура;
	РеквизитыКонтрагента.Вставить("ИНН", КонтрагентИНН);
	РеквизитыКонтрагента.Вставить("КПП", КонтрагентКПП);
	РеквизитыКонтрагента.Вставить("Наименование", КонтрагентНаименование);
	
	БизнесСетьПереопределяемый.СоздатьКонтрагентаПоРеквизитам(РеквизитыКонтрагента, Контрагент, Отказ);
	
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ОбновитьИнформациюОКонтрагенте(Контрагент, УчастникИНН, УчастникКПП, ДатаДокумента)
	
	Контрагент = ОбменСКонтрагентамиИнтеграция.СсылкаНаОбъектПоИННКПП("Контрагенты", УчастникИНН, УчастникКПП, ДатаДокумента)
	
КонецПроцедуры

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

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

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

&НаСервереБезКонтекста
Функция УстановитьСтатусЗагруженВФоне(Организация, Идентификатор, ДокументСсылка)
	
	НаименованиеЗадания = НСтр("ru = 'Установка статуса ""Загружен"" для документа 1С:Бизнес-сеть'", 
		ОбщегоНазначения.КодОсновногоЯзыка());
	ИмяМетода = "БизнесСеть.УстановитьСтатусЗагружен";
	
	ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияПроцедуры();
	ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
	ПараметрыВыполнения.ЗапуститьВФоне = Истина;
	
	Возврат ДлительныеОперации.ВыполнитьПроцедуру(ПараметрыВыполнения, ИмяМетода, Организация, Идентификатор, 
		ДокументСсылка);
	
КонецФункции

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

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

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

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

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

	ИзменитьРежимЗагрузки(Элементы, РежимЗаполненияДокумента);
	
КонецПроцедуры

&НаСервере
Процедура УстановитьЗаголовокФормы()
	
	// Инициализация режима, состояния.
	Если ЭтоВходящийДокумент Тогда
		Шаблон = НСтр("ru = '%1 (электронный документ)'");
		Заголовок = СтрШаблон(Шаблон, Источник.documentTitle);
		РежимЗаполненияДокумента = ЗначениеЗаполнено(ДокументИБ);
		СпособЗагрузкиДокумента = ?(РежимЗаполненияДокумента, 1, 0);
	Иначе
		Если Источник = Неопределено Тогда
			Заголовок = ДокументИБ;
		Иначе
			Шаблон = НСтр("ru = '%1 (электронный документ)'");
			Заголовок = СтрШаблон(Шаблон, Источник.documentTitle);
		КонецЕсли;
		Если ВРЕГ(Статус) = "ОТПРАВЛЕН" Тогда
			Шаблон = НСтр("ru = 'отправлен %1'");
			Состояние = СтрШаблон(Шаблон, 
				БизнесСетьКлиентСервер.ДатаИзUnixTime(Источник.sentDate));
		ИначеЕсли ВРЕГ(Статус) = "ДОСТАВЛЕН" Тогда
			Шаблон = НСтр("ru = 'отправлен %1, доставлен %2'");
			Состояние = СтрШаблон(Шаблон, 
				БизнесСетьКлиентСервер.ДатаИзUnixTime(Источник.sentDate),
				БизнесСетьКлиентСервер.ДатаИзUnixTime(Источник.receivedDate));
		ИначеЕсли ВРЕГ(Статус) = "ОТКЛОНЕН" Тогда
			Шаблон = НСтр("ru = 'отправлен %1, отклонен %2'");
			Состояние = СтрШаблон(Шаблон, 
				БизнесСетьКлиентСервер.ДатаИзUnixTime(Источник.sentDate),
				БизнесСетьКлиентСервер.ДатаИзUnixTime(Источник.receivedDate));
		КонецЕсли;
	КонецЕсли;
	
	Если Статус = "Отклонен" Тогда
		Элементы.ФормаОтклонитьДокумент.Доступность = Ложь;
		Заголовок = Заголовок + " (" + НСтр("ru = 'отклонен'") + ")";
	КонецЕсли;
	
КонецПроцедуры

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

&НаКлиенте
Процедура ОткрытьПредставлениеДокумента(Команда)
	
	Если ЗначениеЗаполнено(Идентификатор) Тогда

		БизнесСетьКлиент.ПолучитьПредставлениеДокументаСервиса(Идентификатор,
																Представление,
																Организация,
																Не ЭтоВходящийДокумент,
																УникальныйИдентификатор);
	ИначеЕсли ЗначениеЗаполнено(АдресХранилищаПредставления) Тогда

		БизнесСетьКлиент.ОткрытьФайлПредставленияДокумента(АдресХранилищаПредставления, Представление);
		
	КонецЕсли;

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

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

&НаСервере
Процедура ПодключитьОрганизациюПродолжениеНаСервере(ЗагрузитьДокумент)
	
	ОрганизацияПодключенаБС = Истина;

	ОбновитьЗагружаемыйДокумент(ЗагрузитьДокумент);
	
КонецПроцедуры

&НаСервере
Процедура ОбновитьЗагружаемыйДокумент(ЗагрузитьДокумент)
	
	Отказ       = Ложь;
	СтруктураЭД = ПолучитьИзВременногоХранилища(АдресСтруктурыЭД);
	
	БизнесСеть.ПолучитьПоИдентификаторуИсходящегоДокументаВходящийДокументПоQRКоду(Организация, СтруктураЭД.Идентификатор, СтруктураЭД, Отказ, ДокументИБ);
	
	ДокументИБ       = СтруктураЭД.ВладелецЭД;
	ДатаДокумента    = СтруктураЭД.Дата;
	АдресСтруктурыЭД = ПоместитьВоВременноеХранилище(СтруктураЭД, УникальныйИдентификатор);

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

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

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