Документооборот с контролирующими органами / Групповая отправка результат / Модуль формы

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

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

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

	ПараметрыГрупповойОтправки = Параметры.ПараметрыГрупповойОтправки;
	ВыполняетсяОтправка = Параметры.ВыполняетсяОтправка;
	ВыполняетсяПроверка = Параметры.ВыполняетсяПроверка;
	
	ИзменитьОформлениеФормы(ПараметрыГрупповойОтправки);
	
КонецПроцедуры

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

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

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


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

&НаКлиенте
Процедура Показать(Команда)
	
	Закрыть(НСтр("ru = 'Показать неотправленные'"));
	
КонецПроцедуры

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

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

&НаСервере
Процедура ИзменитьОформлениеФормы(ПараметрыГрупповойОтправки)
	
	ИзменитьОформлениеНадписей(ПараметрыГрупповойОтправки);
	ИзменитьОформлениеДлительности(ПараметрыГрупповойОтправки);
	
КонецПроцедуры

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

&НаСервере
Процедура ИзменитьОформлениеНадписейКогдаВсеОтправилисьДляНескольких(ПараметрыГрупповойОтправки)
	
	ОтправленоОтчетовСтрокой = ДлительнаяОтправкаКлиентСервер.ЧислоИПредметИсчисления(
			ПараметрыГрупповойОтправки.УспешноОбработанныхОтчетов,
			НСтр("ru = 'отчет'"),
			НСтр("ru = 'отчета'"),
			НСтр("ru = 'отчетов'"),
			"м");

	Элементы.ПоясняющийТекст.Заголовок = СтрШаблон(
		НСтр("ru = 'Отправлено: %1 из %2.'"),
		ОтправленоОтчетовСтрокой,
		ПараметрыГрупповойОтправки.Всего);
	
КонецПроцедуры

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

&НаСервере
Процедура ИзменитьОформлениеНадписейКогдаЧастичноОтправились(ПараметрыГрупповойОтправки)
	
	Заголовок = НСтр("ru = 'Не все отчеты были отправлены'");
	Шаблон = НСтр("ru = 'Отправлено: %1 из %2.'");
	КоличествоОтчетов = ПараметрыГрупповойОтправки.УспешноОбработанныхОтчетов;
	
	КоличествоОтчетовСтрокой = ДлительнаяОтправкаКлиентСервер.ЧислоИПредметИсчисления(
		КоличествоОтчетов,
		НСтр("ru = 'отчет'"),
		НСтр("ru = 'отчета'"),
		НСтр("ru = 'отчетов'"),
		"м");
		
	Элементы.ПоясняющийТекст.Заголовок = СтрШаблон(
		Шаблон,
		КоличествоОтчетовСтрокой,
		ПараметрыГрупповойОтправки.Всего);
		
	Элементы.Картинка.Картинка = БиблиотекаКартинок.ЗаявлениеПо1СОтчетностиВнимание;
	Элементы.Показать.КнопкаПоУмолчанию = Истина;
	
КонецПроцедуры

&НаСервере
Процедура ИзменитьОформлениеНадписейКогдаНиОдинНеОтправилсяДляОдного(ПараметрыГрупповойОтправки)
	
	Заголовок = НСтр("ru = 'Отчет не отправлен'");
	Элементы.ПоясняющийТекст.Заголовок = НСтр("ru = 'Отчет не был отправлен.'");
		
КонецПроцедуры

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

&НаСервере
Процедура ИзменитьОформлениеНадписейКогдаНиОдинНеОтправилсяДляНескольких(ПараметрыГрупповойОтправки)
	
	Заголовок = НСтр("ru = 'Отчеты не отправлены'");
	
	Элементы.ПоясняющийТекст.Заголовок = СтрШаблон(
		НСтр("ru = 'Ни один отчет из %1 не был отправлен.'"),
		ПараметрыГрупповойОтправки.Всего);
		
КонецПроцедуры

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

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

&НаСервере
Функция ВсеУспешные(ПараметрыГрупповойОтправки)
	
	Возврат ПараметрыГрупповойОтправки.УспешноОбработанныхОтчетов = ПараметрыГрупповойОтправки.Всего;
	
КонецФункции

&НаСервере
Функция ЧастичноУспешно(ПараметрыГрупповойОтправки)
	
	Возврат ПараметрыГрупповойОтправки.УспешноОбработанныхОтчетов < ПараметрыГрупповойОтправки.Всего
		И ПараметрыГрупповойОтправки.УспешноОбработанныхОтчетов > 0;
	
КонецФункции
	
&НаСервере
Функция НеУспешно(ПараметрыГрупповойОтправки)
	
	Возврат ПараметрыГрупповойОтправки.УспешноОбработанныхОтчетов = 0;
	
КонецФункции

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

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