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