#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область ДляВызоваИзДругихПодсистем
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Обработчик = "УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати";
КомандаПечати.Идентификатор = ИмяАктуальногоМакета();
КомандаПечати.Представление = НСтр("ru = 'Заявление о возмещении расходов'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КонецПроцедуры
Процедура Печать(МассивСсылок, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
ИмяАктуальногоМакета = ИмяАктуальногоМакета();
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, ИмяАктуальногоМакета) Тогда
ТабличныйДокумент = ТабличныйДокументДополнительныеДниОтпуска(МассивСсылок, ОбъектыПечати);
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
ИмяАктуальногоМакета,
НСтр("ru = 'Заявление о возмещении расходов'"),
ТабличныйДокумент);
КонецЕсли;
КонецПроцедуры
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ДляВсехСтрок( ЗначениеРазрешено(ФизическиеЛица.ФизическоеЛицо, NULL КАК ИСТИНА)
| ) И ЗначениеРазрешено(Организация)";
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
#Область ЗащитаПерсональныхДанных
Процедура ЗаполнитьСведенияОПерсональныхДанных(ТаблицаСведений) Экспорт
Объект = Метаданные().ПолноеИмя();
НовыеСведения = ТаблицаСведений.Добавить();
НовыеСведения.Объект = Объект;
НовыеСведения.ПоляРегистрации = "Оплаты.Сотрудник";
НовыеСведения.ПоляДоступа = "Оплаты.СотрудникФамилия,Оплаты.СотрудникИмя,Оплаты.СотрудникОтчество,Оплаты.СотрудникСНИЛС";
НовыеСведения.ОбластьДанных = "ЛичныеДанные";
НовыеСведения = ТаблицаСведений.Добавить();
НовыеСведения.Объект = Объект;
НовыеСведения.ПоляРегистрации = "Оплаты.Ребенок";
НовыеСведения.ПоляДоступа = "Оплаты.РебенокФамилия,Оплаты.РебенокИмя,Оплаты.РебенокОтчество,
|Оплаты.РебенокДатаРождения,Оплаты.РебенокСНИЛС,Оплаты.Статус,
|Оплаты.СправкаНомер,Оплаты.СправкаДатаВыдачи,Оплаты.СправкаДатаОкончания,Оплаты.СправкаДатаУстановления";
НовыеСведения.ПоляДоступа = СтрЗаменить(НовыеСведения.ПоляДоступа, Символы.ПС, "");
НовыеСведения.ОбластьДанных = "ЛичныеДанные";
НовыеСведения = ТаблицаСведений.Добавить();
НовыеСведения.Объект = Объект;
НовыеСведения.ПоляРегистрации = "Оплаты.Сотрудник";
НовыеСведения.ПоляДоступа = "Оплаты.СреднедневнойЗаработок,Оплаты.СуммаПособия,Оплаты.СуммаВзносов,Оплаты.КоличествоДней,
|Оплаты.КоличествоЧасовЗаМесяц,Оплаты.НакопленоДнейЗаМесяц,Оплаты.НакопленоЧасовЗаМесяц,Оплаты.КоличествоДнейЗаГод,
|Оплаты.СреднедневнойЗаработокЗаГод,Оплаты.КоличествоЧасовЗаГод";
НовыеСведения.ПоляДоступа = СтрЗаменить(НовыеСведения.ПоляДоступа, Символы.ПС, "");
НовыеСведения.ОбластьДанных = "Доходы";
КонецПроцедуры
#КонецОбласти
#Область СоставДокументов
Функция Метаданные() Экспорт
Возврат Метаданные.Документы.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов;
КонецФункции
Функция ОписаниеСоставаОбъекта() Экспорт
Возврат ЗарплатаКадрыСоставДокументов.ОписаниеСоставаОбъектаПоМетаданнымФизическиеЛицаВТабличныхЧастях(
Метаданные());
КонецФункции
#КонецОбласти
#Область ИсправлениеДокументов
Функция СвойстваИсправляемогоДокумента(ДокументСсылка) Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыРасширеннаяПодсистемы.ИсправленияДокументов") Тогда
МодульИсправлениеДокументовЗарплатаКадры = ОбщегоНазначения.ОбщийМодуль("ИсправлениеДокументовЗарплатаКадры");
Реквизиты = МодульИсправлениеДокументовЗарплатаКадры.РеквизитыИсправляемогоДокумента();
Возврат ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДокументСсылка, Реквизиты);
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
Функция ПараметрыИсправляемогоДокумента(ДокументСсылка) Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыРасширеннаяПодсистемы.ИсправленияДокументов") Тогда
МодульИсправлениеДокументовЗарплатаКадры = ОбщегоНазначения.ОбщийМодуль("ИсправлениеДокументовЗарплатаКадры");
Возврат МодульИсправлениеДокументовЗарплатаКадры.ПараметрыИсправляемогоДокумента(ДокументСсылка,
СвойстваИсправляемогоДокумента(ДокументСсылка));
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
#КонецОбласти
#Область ФиксацияВторичныхДанныхВДокументах
Функция ПараметрыФиксацииВторичныхДанных() Экспорт
Возврат ФиксацияВторичныхДанныхВДокументах.ПараметрыФиксации(ФиксируемыеРеквизиты(), ФиксируемыеТаблицы());
КонецФункции
Функция ОбъектЗафиксирован(Документ) Экспорт
Возврат Документ.Исправлен
Или ?(Документ.ОтправлятьЧерезСЭДО,
Не Документ.ПометкаУдаления И ЗначениеЗаполнено(Документ.ДатаОтправки),
Не ПрямыеВыплатыПособийСоциальногоСтрахования.СтатусПозволяетРедактироватьДокумент(Документ.СтатусДокумента));
КонецФункции
#КонецОбласти
#Область ОбновлениеИнформационнойБазы
Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.23.59";
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.Идентификатор = Новый УникальныйИдентификатор("6a09a8e5-e73d-11ec-8107-5cf3709cf896");
Обработчик.Процедура = "Документы.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов.АдаптироватьКФорме2022";
Обработчик.Комментарий = НСтр("ru = 'Заполнение вторичных данных документа ""Заявление в ФСС о возмещении выплат родителям детей-инвалидов"" необходимых для печати.'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.31.7";
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.Идентификатор = Новый УникальныйИдентификатор("21ff1e6d-5a39-11ef-812d-4cedfb43b11a");
Обработчик.Процедура = "Документы.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов.ЗаполнитьКраткийСостав";
Обработчик.Комментарий = НСтр("ru = 'Заполнение сведений о сотрудниках в документе ""Заявление в ФСС о возмещении выплат родителям детей-инвалидов"" необходимых для вывода в списке.'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.34.108";
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.Идентификатор = Новый УникальныйИдентификатор("d0526966-9d1d-11f0-8166-c84d4423fb75");
Обработчик.Процедура = "Документы.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов.ПовторноОбработатьСообщения12110";
Обработчик.Комментарий = НСтр("ru = 'СЭДО ЕЦП: Обработка сообщений типа 12110 ""Результат обработки заявления о возмещении выплат родителям детей-инвалидов"".'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.34.108";
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.Идентификатор = Новый УникальныйИдентификатор("d0526967-9d1d-11f0-8166-c84d4423fb75");
Обработчик.Процедура = "Документы.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов.ПовторноОбработатьСообщения12210";
Обработчик.Комментарий = НСтр("ru = 'СЭДО ЕЦП: Обработка сообщений типа 12210 ""Отказ в возмещении выплат родителям детей инвалидов"".'");
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "3.1.34.108";
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.Идентификатор = Новый УникальныйИдентификатор("d0526968-9d1d-11f0-8166-c84d4423fb75");
Обработчик.Процедура = "Документы.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов.ПовторноОбработатьСообщенияПослеПереходаНаЕЦП";
Обработчик.Комментарий = НСтр("ru = 'СЭДО ЕЦП: Обработка документов ""Заявление в ФСС о возмещении выплат родителям детей-инвалидов"".'");
КонецПроцедуры
Процедура АдаптироватьКФорме2022(ПараметрыОбновления = Неопределено) Экспорт
ОбработкаЗавершена = Истина;
ОбработчикОтложенный = (ПараметрыОбновления <> Неопределено);
МетаданныеДокумента = Метаданные();
ПолеБлокировки = "Ссылка";
ТаблицаБлокировки = МетаданныеДокумента.ПолноеИмя();
НастройкиЗапроса = ЗапросыБЗК.НастройкиЗапросаКТаблице();
НастройкиЗапроса.Порядок = "Дата УБЫВ, Проведен УБЫВ, Ссылка УБЫВ";
НастройкиЗапроса.Количество = ?(ОбработчикОтложенный, 1000, 0);
ЗапросыБЗК.ДобавитьОтбор(НастройкиЗапроса.Отбор, "СтраховательНаименование", "=", "");
ЗапросыБЗК.ДобавитьОтбор(НастройкиЗапроса.Отбор, "Организация", "<>", Справочники.Организации.ПустаяСсылка());
Запрос = ЗапросыБЗК.ЗапросКТаблице(ТаблицаБлокировки, ПолеБлокировки, НастройкиЗапроса);
МассивСсылок = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(ПолеБлокировки);
Если ОбработчикОтложенный И МассивСсылок.Количество() = НастройкиЗапроса.Количество Тогда
ОбработкаЗавершена = Ложь;
КонецЕсли;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("МассивСсылок", МассивСсылок);
СоздатьВТКадровыхДанных(Запрос);
Запрос.Текст =
"ВЫБРАТЬ
| Шапка.Ссылка КАК Ссылка,
| Шапка.Дата КАК Дата,
| ВЫБОР
| КОГДА (ВЫРАЗИТЬ(Организации.НаименованиеПолное КАК СТРОКА(1000))) = """"
| ТОГДА Организации.НаименованиеСокращенное
| ИНАЧЕ ВЫРАЗИТЬ(Организации.НаименованиеПолное КАК СТРОКА(1000))
| КОНЕЦ КАК СтраховательНаименование,
| ЕСТЬNULL(КадровыеДанныеРуководителей.ФИОПолные, """") КАК РуководительФИО,
| ЕСТЬNULL(ТЧОплаты.НомерСтроки, 0) КАК НомерСтроки,
| ЕСТЬNULL(ТЧОплаты.Сотрудник, НЕОПРЕДЕЛЕНО) КАК Сотрудник,
| ЕСТЬNULL(ВТКадровыеДанныеСотрудников.Фамилия, """") КАК СотрудникФамилия,
| ЕСТЬNULL(ВТКадровыеДанныеСотрудников.Имя, """") КАК СотрудникИмя,
| ЕСТЬNULL(ВТКадровыеДанныеСотрудников.Отчество, """") КАК СотрудникОтчество,
| ЕСТЬNULL(ТЧОплаты.Сотрудник.ФизическоеЛицо.СтраховойНомерПФР, """") КАК СотрудникСНИЛС
|ИЗ
| Документ.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов КАК Шапка
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКадровыеДанныеФизическихЛиц КАК КадровыеДанныеРуководителей
| ПО Шапка.Руководитель = КадровыеДанныеРуководителей.ФизическоеЛицо
| И Шапка.Дата = КадровыеДанныеРуководителей.Период
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов.Оплаты КАК ТЧОплаты
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКадровыеДанныеСотрудников КАК ВТКадровыеДанныеСотрудников
| ПО ТЧОплаты.Сотрудник = ВТКадровыеДанныеСотрудников.Сотрудник
| И ТЧОплаты.Ссылка.Дата = ВТКадровыеДанныеСотрудников.Период
| ПО Шапка.Ссылка = ТЧОплаты.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
| ПО Шапка.Организация = Организации.Ссылка
|ГДЕ
| Шапка.Ссылка В(&МассивСсылок)
|
|УПОРЯДОЧИТЬ ПО
| Ссылка УБЫВ,
| НомерСтроки";
Выборка = Запрос.Выполнить().Выбрать();
ТаблицаСтрок = Новый ТаблицаЗначений;
ИменаКолонок = Новый Массив;
Для Каждого КолонкаРезультатаЗапроса Из Выборка.Владелец().Колонки Цикл
ТаблицаСтрок.Колонки.Добавить(КолонкаРезультатаЗапроса.Имя, КолонкаРезультатаЗапроса.ТипЗначения);
ИменаКолонок.Добавить(КолонкаРезультатаЗапроса.Имя);
КонецЦикла;
ИменаКолонок = СтрСоединить(ИменаКолонок, ",");
Пока Выборка.СледующийПоЗначениюПоля("Ссылка") Цикл
Если ОбработчикОтложенный Тогда
Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(
ПараметрыОбновления,
ТаблицаБлокировки,
ПолеБлокировки,
Выборка.Ссылка) Тогда
ОбработкаЗавершена = Ложь;
Продолжить;
КонецЕсли;
КонецЕсли;
ЕстьИзменения = Ложь;
Документ = Выборка.Ссылка.ПолучитьОбъект();
Если РеквизитШапкиЗаполненИНеЗафкисирован(Документ, "НомерЛицевогоСчета")
Или РеквизитШапкиЗаполненИНеЗафкисирован(Документ, "КБК") Тогда
ЕстьИзменения = Истина;
ФиксацияВторичныхДанныхВДокументах.ЗафиксироватьРеквизитШапки(Документ, "НомерЛицевогоСчета");
ФиксацияВторичныхДанныхВДокументах.ЗафиксироватьРеквизитШапки(Документ, "КБК");
КонецЕсли;
Пока Выборка.Следующий() Цикл
Если ЗначениеЗаполнено(Выборка.СтраховательНаименование)
И РеквизитШапкиНеЗаполненИНеЗафкисирован(Документ, "СтраховательНаименование") Тогда
ЕстьИзменения = Истина;
Документ.СтраховательНаименование = Выборка.СтраховательНаименование;
ФиксацияВторичныхДанныхВДокументах.ЗафиксироватьРеквизитШапки(Документ, "СтраховательНаименование");
КонецЕсли;
Если ЗначениеЗаполнено(Выборка.РуководительФИО)
И РеквизитШапкиНеЗаполненИНеЗафкисирован(Документ, "РуководительФИО") Тогда
ЕстьИзменения = Истина;
Документ.РуководительФИО = Выборка.РуководительФИО;
ФиксацияВторичныхДанныхВДокументах.ЗафиксироватьРеквизитШапки(Документ, "РуководительФИО");
КонецЕсли;
Если ЗначениеЗаполнено(Выборка.Сотрудник) Тогда
Фильтр = Новый Структура("НомерСтроки, Сотрудник", Выборка.НомерСтроки, Выборка.Сотрудник);
Найденные = Документ.Оплаты.НайтиСтроки(Фильтр);
Для Каждого Строка Из Найденные Цикл
Если ЗначениеЗаполнено(Выборка.СотрудникФамилия)
И ЗначениеЗаполнено(Выборка.СотрудникИмя)
И Не ЗначениеЗаполнено(Строка.СотрудникФамилия)
И Не ЗначениеЗаполнено(Строка.СотрудникИмя) Тогда
ЕстьИзменения = Истина;
Строка.СотрудникФамилия = Выборка.СотрудникФамилия;
Строка.СотрудникИмя = Выборка.СотрудникИмя;
Строка.СотрудникОтчество = Выборка.СотрудникОтчество;
ФиксацияВторичныхДанныхВДокументах.ЗафиксироватьРеквизитТаблицы(Документ, "Оплаты", Строка, "СотрудникФамилия");
ФиксацияВторичныхДанныхВДокументах.ЗафиксироватьРеквизитТаблицы(Документ, "Оплаты", Строка, "СотрудникИмя");
ФиксацияВторичныхДанныхВДокументах.ЗафиксироватьРеквизитТаблицы(Документ, "Оплаты", Строка, "СотрудникОтчество");
КонецЕсли;
Если ЗначениеЗаполнено(Выборка.СотрудникСНИЛС)
И Не ЗначениеЗаполнено(Строка.СотрудникСНИЛС) Тогда
ЕстьИзменения = Истина;
Строка.СотрудникСНИЛС = Выборка.СотрудникСНИЛС;
ФиксацияВторичныхДанныхВДокументах.ЗафиксироватьРеквизитТаблицы(Документ, "Оплаты", Строка, "СотрудникСНИЛС");
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
Для Каждого Строка Из Документ.Оплаты Цикл
Если ЗначениеЗаполнено(Строка.Статус)
И Не ЗначениеЗаполнено(Строка.Ребенок)
И Не ФиксацияВторичныхДанныхВДокументах.РеквизитТаблицыЗафиксирован(Документ, "Оплаты", Строка, "Статус") Тогда
ЕстьИзменения = Истина;
ФиксацияВторичныхДанныхВДокументах.ЗафиксироватьРеквизитТаблицы(Документ, "Оплаты", Строка, "Статус");
КонецЕсли;
КонецЦикла;
Если ЕстьИзменения Тогда
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(Документ);
КонецЕсли;
Если ОбработчикОтложенный Тогда
Если ЕстьИзменения Тогда
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
Иначе
ОтменитьТранзакцию();
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если ОбработчикОтложенный Тогда
ПараметрыОбновления.ОбработкаЗавершена = ОбработкаЗавершена;
КонецЕсли;
КонецПроцедуры
Функция АктуальнаяВерсия() Экспорт
Возврат 1;
КонецФункции
Процедура ЗаполнитьКраткийСостав(ПараметрыОбновления = Неопределено) Экспорт
ОбработчикОтложенный = (ПараметрыОбновления <> Неопределено);
МетаданныеДокумента = Метаданные();
ПолеБлокировки = "Ссылка";
ТаблицаБлокировки = МетаданныеДокумента.ПолноеИмя();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 1000
| Шапка.Ссылка КАК Ссылка,
| Шапка.Дата КАК Дата,
| Шапка.Проведен КАК Проведен
|ИЗ
| Документ.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов.Оплаты КАК ТЧОплаты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов КАК Шапка
| ПО ТЧОплаты.Ссылка = Шапка.Ссылка
|ГДЕ
| Шапка.КраткийСоставДокумента = """"
| И ТЧОплаты.НомерСтроки = 1
|
|УПОРЯДОЧИТЬ ПО
| Дата УБЫВ,
| Проведен УБЫВ,
| Ссылка УБЫВ";
Если ОбработчикОтложенный Тогда
Таблица = Запрос.Выполнить().Выгрузить();
ОбработкаЗавершена = Таблица.Количество() < 1000;
Иначе
Запрос.Текст = СтрЗаменить(Запрос.Текст, "ПЕРВЫЕ 1000", "");
Таблица = Запрос.Выполнить().Выгрузить();
ОбработкаЗавершена = Истина;
КонецЕсли;
ОписаниеДокумента = ОписаниеСоставаОбъекта();
Для Каждого СтрокаТаблицы Из Таблица Цикл
Если ОбработчикОтложенный Тогда
Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(
ПараметрыОбновления,
ТаблицаБлокировки,
ПолеБлокировки,
СтрокаТаблицы.Ссылка) Тогда
ОбработкаЗавершена = Ложь;
Продолжить;
КонецЕсли;
КонецЕсли;
ЕстьИзменения = Ложь;
ДокументОбъект = СтрокаТаблицы.Ссылка.ПолучитьОбъект();
СотрудникиФизическиеЛица = ЗарплатаКадрыСоставДокументов.СотрудникиФизическиеЛица(ДокументОбъект, ОписаниеДокумента);
ЗарплатаКадрыСоставДокументов.ЗаполнитьКраткийСоставДокумента(ДокументОбъект, ОписаниеДокумента, СотрудникиФизическиеЛица);
Если ЗначениеЗаполнено(ДокументОбъект.КраткийСоставДокумента) Тогда
ЕстьИзменения = Истина;
КонецЕсли;
Если ЕстьИзменения Тогда
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ДокументОбъект);
КонецЕсли;
Если ОбработчикОтложенный Тогда
Если ЕстьИзменения Тогда
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
Иначе
ОтменитьТранзакцию();
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если ОбработчикОтложенный Тогда
ПараметрыОбновления.ОбработкаЗавершена = ОбработкаЗавершена;
КонецЕсли;
КонецПроцедуры
Процедура ПовторноОбработатьСообщения12110(ПараметрыОбновления = Неопределено) Экспорт
СЭДОФСС.ПовторноОбработатьВходящиеСообщенияСЭДО(ПараметрыОбновления, 12110);
КонецПроцедуры
Процедура ПовторноОбработатьСообщения12210(ПараметрыОбновления = Неопределено) Экспорт
СЭДОФСС.ПовторноОбработатьВходящиеСообщенияСЭДО(ПараметрыОбновления, 12210);
КонецПроцедуры
Процедура ПовторноОбработатьСообщенияПослеПереходаНаЕЦП(ПараметрыОбновления = Неопределено) Экспорт
ОбработкаЗавершена = Истина;
КлючОбъекта = "Пособия.СЭДО.Тип12010.СоставительФИО";
КлючиНастроек = ХранилищеОбщихНастроек.ПолучитьСписок(КлючОбъекта, "").ВыгрузитьЗначения();
Для Каждого КлючНастройки Из КлючиНастроек Цикл
Попытка
СоставительФИО = ХранилищеОбщихНастроек.Загрузить(КлючОбъекта, КлючНастройки, , "");;
ДокументСсылка = ПолучитьСсылку(Новый УникальныйИдентификатор(КлючНастройки));
ДокументОбъект = ДокументСсылка.ПолучитьОбъект();
Если ДокументОбъект <> Неопределено И Не ДокументОбъект.ЭтоНовый() Тогда
ДокументОбъект.ТипСообщения = 12010;
ДокументОбъект.СоставительФИО = СоставительФИО;
СЭДОФСС.ЗаписатьДокумент(ДокументОбъект, Истина, Ложь);
КонецЕсли;
ХранилищеОбщихНастроек.Удалить(КлючОбъекта, КлючНастройки, "");
Исключение
ОбработкаЗавершена = Ложь;
Текст = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
УчетПособийСоциальногоСтрахования.ЗаписатьОшибкуВЖурнал(Текст, , Метаданные());
КонецПопытки;
КонецЦикла;
Если ПараметрыОбновления <> Неопределено Тогда
ПараметрыОбновления.ОбработкаЗавершена = ОбработкаЗавершена;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СЭДО
Функция ТекстXML(Документ) Экспорт
Если ТипСообщения(Документ) = 120 Тогда
Возврат ТекстXML_120(Документ);
ИначеЕсли ТипСообщения(Документ) = 12010 Тогда
Возврат ТекстXML_12010(Документ);
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
Функция ТекстXML_120(Документ) Экспорт
ПрограммаНаименование = Лев(РегламентированнаяОтчетность.НазваниеПрограммы(), 255);
ПрограммаВерсия = Лев(Метаданные.Версия, 15);
НомерСтрахователяФСС = УчетПособийСоциальногоСтрахованияКлиентСервер.РегистрационныйНомерДляОбменаФСС(Документ);
ПредставлениеТелефона = КонтактнаяИнформацияБЗК.ПредставлениеТелефона(Документ.ТелефонСоставителя);
ТаблицаСтрок = Документ.Оплаты.Выгрузить();
ДобавитьКолонкиНаличияДней(ТаблицаСтрок);
Для Каждого СтрокаТаблицы Из ТаблицаСтрок Цикл
ЗаполнитьФлажкиНаличияДней(СтрокаТаблицы);
КонецЦикла;
ВсегоПособий = ТаблицаСтрок.Итог("СуммаПособия");
ВсегоВзносов = ТаблицаСтрок.Итог("СуммаВзносов");
МассивСотрудников = КоллекцииБЗК.УникальныеЗначенияКолонки(ТаблицаСтрок, "Сотрудник");
КоллекцииБЗК.УдалитьПустыеЗначенияМассива(МассивСотрудников);
КоличествоПолучателей = МассивСотрудников.Количество();
ЛистовПриказов = ТаблицаСтрок.Итог("КоличествоСтраниц");
МенеджерXML = Обработки.ПостроительXML.Создать();
МенеджерXML.ФорматДат = "ДФ=yyyy-MM-dd";
КореньXML = МенеджерXML.ДобавитьУзел(МенеджерXML.ДеревоXML, "disabilityChildrenRequest");
МенеджерXML.ДобавитьПространствоИмен(КореньXML, "", "http://www.fss.ru/integration/types/pvso/disabilitychildren/v01");
МенеджерXML.ДобавитьПространствоИмен(КореньXML, "xsi", "http://www.w3.org/2001/XMLSchema-instance");
МенеджерXML.ДобавитьПространствоИмен(КореньXML, "person", "http://www.fss.ru/integration/types/person/v02");
МенеджерXML.ДобавитьАтрибут(КореньXML, "software", ПрограммаНаименование, Ложь);
МенеджерXML.ДобавитьАтрибут(КореньXML, "version_software", ПрограммаВерсия, Ложь);
МенеджерXML.ДобавитьАтрибут(КореньXML, "author", Документ.СоставительФИО, Ложь);
МенеджерXML.ДобавитьАтрибут(КореньXML, "phone", ПредставлениеТелефона, Ложь);
МенеджерXML.ДобавитьАтрибут(КореньXML, "email", Документ.АдресЭлектроннойПочтыОрганизации, Ложь);
МенеджерXML.ДобавитьАтрибут(КореньXML, "emplRegNo", НомерСтрахователяФСС, Истина);
МенеджерXML.ДобавитьАтрибут(КореньXML, "regNumSFR", Документ.РегистрационныйНомерСФР, Истина);
МенеджерXML.ДобавитьУзел(КореньXML, "batch_no", Документ.ИдентификаторРеестра);
Если Документ.Перерасчет Тогда
МенеджерXML.ДобавитьУзел(КореньXML, "changeRecalcFlag", Документ.Перерасчет);
МенеджерXML.ДобавитьУзел(КореньXML, "prim_batch_no", Документ.ИдентификаторПервичногоРеестра);
МенеджерXML.ДобавитьУзел(КореньXML, "recalc_reason", 1);
КонецЕсли;
СтраховательXML = МенеджерXML.ДобавитьУзел(КореньXML, "insurerInfo");
Если ЗначениеЗаполнено(Документ.РегистрационныйНомерСФР) Тогда
МенеджерXML.ДобавитьУзел(СтраховательXML, "regNumSFR", Документ.РегистрационныйНомерСФР);
Иначе
МенеджерXML.ДобавитьУзел(СтраховательXML, "regNum", НомерСтрахователяФСС);
КонецЕсли;
МенеджерXML.ДобавитьУзел(СтраховательXML, "emplKPP", Документ.КПП, Ложь, Истина);
МенеджерXML.ДобавитьУзел(СтраховательXML, "emplINN", Документ.ИНН);
МенеджерXML.ДобавитьУзел(СтраховательXML, "refNumber", Документ.КодПодчиненностиФСС);
МенеджерXML.ДобавитьУзел(СтраховательXML, "Empl_Flag", Документ.ОсновноеМестоРаботы);
БанкXML = МенеджерXML.ДобавитьУзел(СтраховательXML, "bankInfo");
МенеджерXML.ДобавитьУзел(БанкXML, "bik", Документ.БИКБанка);
МенеджерXML.ДобавитьУзел(БанкXML, "accountNum", Документ.НомерСчета, Истина, Ложь);
МенеджерXML.ДобавитьУзел(БанкXML, "accountNumInFederalExchequer", Документ.НомерЛицевогоСчета, Истина, Ложь);
МенеджерXML.ДобавитьУзел(БанкXML, "kbk", Документ.КБК, Истина, Ложь);
СуммаXML = МенеджерXML.ДобавитьУзел(КореньXML, "refundSum");
МенеджерXML.ДобавитьУзел(СуммаXML, "totalSum", ВсегоПособий + ВсегоВзносов);
МенеджерXML.ДобавитьУзел(СуммаXML, "sumForNonBudgetFunds", ВсегоВзносов);
МенеджерXML.ДобавитьУзел(СуммаXML, "sumForAdditionalDays", ВсегоПособий);
МенеджерXML.ДобавитьУзел(КореньXML, "numberRecipients", КоличествоПолучателей, Истина, Ложь);
МенеджерXML.ДобавитьУзел(КореньXML, "certifiedCopiesOrders", ЛистовПриказов, Истина, Ложь);
Если Не Документ.Перерасчет Тогда
ВыгрузитьСтрокиПоСотрудникам(120, МенеджерXML, КореньXML, ТаблицаСтрок);
КонецЕсли;
МенеджерXML.ДобавитьУзел(КореньXML, "addInfo", Документ.Примечание, Истина, Ложь);
МенеджерXML.НачатьЗаписьВСтрокуXML(Истина, "UTF-8");
Возврат МенеджерXML.СтрокаXML();
КонецФункции
Функция ТекстXML_12010(Документ) Экспорт
ПрограммаНаименование = Лев(РегламентированнаяОтчетность.НазваниеПрограммы(), 255);
ПрограммаВерсия = Лев(Метаданные.Версия, 15);
НомерСтрахователяФСС = УчетПособийСоциальногоСтрахованияКлиентСервер.РегистрационныйНомерДляОбменаФСС(Документ);
ПредставлениеТелефона = КонтактнаяИнформацияБЗК.ПредставлениеТелефона(Документ.ТелефонСоставителя, 30);
ТаблицаСтрок = Документ.Оплаты.Выгрузить();
ДобавитьКолонкиНаличияДней(ТаблицаСтрок);
Для Каждого СтрокаТаблицы Из ТаблицаСтрок Цикл
ЗаполнитьФлажкиНаличияДней(СтрокаТаблицы);
КонецЦикла;
ВсегоПособий = ТаблицаСтрок.Итог("СуммаПособия");
ВсегоВзносов = ТаблицаСтрок.Итог("СуммаВзносов");
МассивСотрудников = КоллекцииБЗК.УникальныеЗначенияКолонки(ТаблицаСтрок, "Сотрудник");
КоллекцииБЗК.УдалитьПустыеЗначенияМассива(МассивСотрудников);
КоличествоПолучателей = МассивСотрудников.Количество();
ЛистовПриказов = ТаблицаСтрок.Итог("КоличествоСтраниц");
МенеджерXML = Обработки.ПостроительXML.Создать();
МенеджерXML.ФорматДат = "ДФ=yyyy-MM-dd";
КореньXML = МенеджерXML.ДобавитьУзел(МенеджерXML.ДеревоXML, "disabilityChildrenStatement");
МенеджерXML.ДобавитьПространствоИмен(КореньXML, "", "urn:ru:ecp:integration:wozm:refund:disabilitychildren:sttmnt:v3.0");
МенеджерXML.ДобавитьПространствоИмен(КореньXML, "xsi", "http://www.w3.org/2001/XMLSchema-instance");
МенеджерXML.ДобавитьПространствоИмен(КореньXML, "person", "urn:ru:ecp:integration:types:person:v3.0");
МенеджерXML.ДобавитьАтрибут(КореньXML, "specVersion", "3.0", Ложь);
МенеджерXML.ДобавитьАтрибут(КореньXML, "software", ПрограммаНаименование, Ложь);
МенеджерXML.ДобавитьАтрибут(КореньXML, "version_software", ПрограммаВерсия, Ложь);
МенеджерXML.ДобавитьАтрибут(КореньXML, "author", Документ.СоставительФИО, Ложь);
МенеджерXML.ДобавитьАтрибут(КореньXML, "phone", ПредставлениеТелефона, Ложь);
МенеджерXML.ДобавитьАтрибут(КореньXML, "email", Документ.АдресЭлектроннойПочтыОрганизации, Истина);
МенеджерXML.ДобавитьАтрибут(КореньXML, "emplRegNo", НомерСтрахователяФСС, Истина);
МенеджерXML.ДобавитьАтрибут(КореньXML, "regNumSFR", Документ.РегистрационныйНомерСФР, Истина);
МенеджерXML.ДобавитьУзел(КореньXML, "batch_no", Документ.ИдентификаторРеестра);
Если Документ.Перерасчет Тогда
МенеджерXML.ДобавитьУзел(КореньXML, "changeRecalcFlag", Документ.Перерасчет);
МенеджерXML.ДобавитьУзел(КореньXML, "prim_batch_no", Документ.ИдентификаторПервичногоРеестра);
МенеджерXML.ДобавитьУзел(КореньXML, "recalc_reason", 1);
КонецЕсли;
СтраховательXML = МенеджерXML.ДобавитьУзел(КореньXML, "insurerInfo");
Если ЗначениеЗаполнено(Документ.РегистрационныйНомерСФР) Тогда
МенеджерXML.ДобавитьУзел(СтраховательXML, "regNumSFR", Документ.РегистрационныйНомерСФР);
Иначе
МенеджерXML.ДобавитьУзел(СтраховательXML, "regNum", НомерСтрахователяФСС);
КонецЕсли;
МенеджерXML.ДобавитьУзел(СтраховательXML, "emplKPP", Документ.КПП, Истина, Истина);
МенеджерXML.ДобавитьУзел(СтраховательXML, "emplINN", Документ.ИНН);
МенеджерXML.ДобавитьУзел(СтраховательXML, "Empl_Flag", Документ.ОсновноеМестоРаботы);
БанкXML = МенеджерXML.ДобавитьУзел(СтраховательXML, "bankInfo");
МенеджерXML.ДобавитьУзел(БанкXML, "bik", Документ.БИКБанка);
МенеджерXML.ДобавитьУзел(БанкXML, "accountNum", Документ.НомерСчета);
МенеджерXML.ДобавитьУзел(БанкXML, "accountNumInFederalExchequer", Документ.НомерЛицевогоСчета, Истина, Ложь);
МенеджерXML.ДобавитьУзел(БанкXML, "kbk", Документ.КБК, Истина, Ложь);
СуммаXML = МенеджерXML.ДобавитьУзел(КореньXML, "refundSum");
МенеджерXML.ДобавитьУзел(СуммаXML, "totalSum", ВсегоПособий + ВсегоВзносов);
МенеджерXML.ДобавитьУзел(СуммаXML, "sumForNonBudgetFunds", ВсегоВзносов);
МенеджерXML.ДобавитьУзел(СуммаXML, "sumForAdditionalDays", ВсегоПособий);
МенеджерXML.ДобавитьУзел(КореньXML, "numberRecipients", КоличествоПолучателей, Истина, Ложь);
МенеджерXML.ДобавитьУзел(КореньXML, "certifiedCopiesOrders", ЛистовПриказов, Истина, Ложь);
Если Не Документ.Перерасчет Тогда
ВыгрузитьСтрокиПоСотрудникам(12010, МенеджерXML, КореньXML, ТаблицаСтрок);
КонецЕсли;
МенеджерXML.ДобавитьУзел(КореньXML, "addInfo", Документ.Примечание, Истина, Ложь);
МенеджерXML.НачатьЗаписьВСтрокуXML(Истина, "UTF-8");
Возврат МенеджерXML.СтрокаXML();
КонецФункции
Функция ТипСообщения(Документ = Неопределено) Экспорт
Возврат ?(Документ = Неопределено Или Документ.ТипСообщения = 0, 120, Документ.ТипСообщения);
КонецФункции
Процедура ПриЗаполненииПараметровОтправки(МассивСсылок, ТаблицаОтправки) Экспорт
ИменаРеквизитовСтроки = "Ссылка, Номер, Дата, Организация";
ИменаРеквизитов = "Ссылка, Номер, Дата, ОтправлятьЧерезСЭДО, ДатаОтправки, Организация,
|ТипСообщения, КраткийСоставДокумента, ХранилищеXML, ПометкаУдаления, Проведен";
Соответствие = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(МассивСсылок, ИменаРеквизитов);
Для Каждого КлючИЗначение Из Соответствие Цикл
Документ = КлючИЗначение.Значение;
СтрокаОтправки = ТаблицаОтправки.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаОтправки, Документ, ИменаРеквизитовСтроки);
СтрокаОтправки.ФизическоеЛицо = Документ.КраткийСоставДокумента;
СтрокаОтправки.ТипСообщения = ТипСообщения(Документ);
СтрокаОтправки.ТекстXML = Документ.ХранилищеXML.Получить();
СтрокаОтправки.Отправить = Ложь;
СтрокаОтправки.ШаблонОшибки = СтрШаблон(
НСтр("ru = 'Не удалось отправить %1:%2'"),
Строка(Документ.Ссылка),
"%1");
Если Документ.ПометкаУдаления Тогда
СтрокаОтправки.ИндексКартинки = СЭДОФССКлиентСервер.ИндексКартинкиУдален();
СтрокаОтправки.Результат = НСтр("ru = 'Документ помечен на удаление'");
Продолжить;
КонецЕсли;
Если Не Документ.ОтправлятьЧерезСЭДО Тогда
СтрокаОтправки.ИндексКартинки = СЭДОФССКлиентСервер.ИндексКартинкиПредупреждение();
СтрокаОтправки.Результат = НСтр("ru = 'Не включен флажок отправки через СЭДО'");
Продолжить;
КонецЕсли;
Если ЗначениеЗаполнено(Документ.ДатаОтправки) Тогда
СтрокаОтправки.ИндексКартинки = СЭДОФССКлиентСервер.ИндексКартинкиОтправлен();
Если НачалоДня(Документ.ДатаОтправки) <= ТекущаяДатаСеанса() Тогда
Текст = НСтр("ru = 'Документ уже отправлен %1'");
СтрокаОтправки.Результат = СтрШаблон(Текст, Формат(Документ.ДатаОтправки, "ДЛФ=D"));
Иначе
Текст = НСтр("ru = 'Документ уже отправлен в %1'");
СтрокаОтправки.Результат = СтрШаблон(Текст, Формат(Документ.ДатаОтправки, "ДФ=HH:mm"));
КонецЕсли;
Продолжить;
КонецЕсли;
ДокументОбъект = Документ.Ссылка.ПолучитьОбъект();
Если Не ДокументОбъект.ПроверитьЗаполнение() Тогда
СтрокаОтправки.ИндексКартинки = СЭДОФССКлиентСервер.ИндексКартинкиПредупреждение();
ЗаполнитьТекстОшибкиПроверкиЗаполнения(СтрокаОтправки, "");
Если Не ДокументОбъект.ОтключитьПроверкиПроведения Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
ЕстьИзменения = ДокументОбъект.ОбновитьВторичныеДанные();
СтрокаОтправки.Отправить = Истина;
Если ЕстьИзменения Или Не ДокументОбъект.Проведен Тогда
Попытка
СтрокаОтправки.ИндексКартинки = СЭДОФССКлиентСервер.ИндексКартинкиПроведен();
ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
ЗаполнитьЗначенияСвойств(СтрокаОтправки, ДокументОбъект, ИменаРеквизитовСтроки);
СтрокаОтправки.ТекстXML = ДокументОбъект.ХранилищеXML.Получить();
Исключение
СтрокаОтправки.Отправить = Ложь;
СтрокаОтправки.ИндексКартинки = СЭДОФССКлиентСервер.ИндексКартинкиОстановлен();
СтрокаОтправки.ЗначениеРасшифровки = Документ.Ссылка;
ТекстИсключения = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ЗаполнитьТекстОшибкиПроверкиЗаполнения(СтрокаОтправки, ТекстИсключения);
КонецПопытки;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ПриПодготовкеВыбранныхДокументовКОтправке(МассивСсылок, ТаблицаОтправки) Экспорт
КонецПроцедуры
Процедура ЗарегистрироватьРезультатОтправки(РезультатОтправки) Экспорт
УстановитьПривилегированныйРежим(Истина);
Регистр = РегистрыСведений.РегистрацииЗаявленийОВозмещенииВыплатРодителямДетейИнвалидов;
ДокументОбъект = РезультатОтправки.Ссылка.ПолучитьОбъект();
Если ЗначениеЗаполнено(ДокументОбъект.ИдентификаторСообщения)
И ДокументОбъект.ИдентификаторСообщения <> РезультатОтправки.ИдентификаторСообщения Тогда
НаборДляОтвязкиОтДокумента = Регистр.НачатьЗаписьНабора(ДокументОбъект.ИдентификаторСообщения);
Если НаборДляОтвязкиОтДокумента.Количество() > 0 Тогда
Запись = НаборДляОтвязкиОтДокумента[0];
Запись.ИсходящийДокумент = Неопределено;
Регистр.ЗавершитьЗаписьНабора(НаборДляОтвязкиОтДокумента);
Иначе
Регистр.ОтменитьЗаписьНабора(НаборДляОтвязкиОтДокумента);
КонецЕсли;
КонецЕсли;
ДокументОбъект.ДатаОтправки = РезультатОтправки.ДатаОтправки;
ДокументОбъект.ИдентификаторСообщения = РезультатОтправки.ИдентификаторСообщения;
Если ДокументОбъект.Страхователь <> РезультатОтправки.Страхователь Тогда
ДокументОбъект.Страхователь = РезультатОтправки.Страхователь;
ДокументОбъект.ГоловнаяОрганизация = РезультатОтправки.ГоловнаяОрганизация;
КонецЕсли;
Набор = 0;
Если ЗначениеЗаполнено(РезультатОтправки.ИдентификаторСообщения) Тогда
Набор = Регистр.НачатьЗаписьНабора(РезультатОтправки.ИдентификаторСообщения);
Если Набор.Количество() = 0 Тогда
Запись = Набор.Добавить();
Иначе
Запись = Набор[0];
КонецЕсли;
Регистр.ЗаполнитьПоДокументу(Запись, ДокументОбъект);
Запись.ОтправленОператору = РезультатОтправки.ОтправленоОператору;
Запись.ДоставкаУспех = РезультатОтправки.ДоставленоФонду;
Запись.ДатаОтправкиОператору = РезультатОтправки.ДатаОтправкиОператору;
Запись.ДоставкаДата = РезультатОтправки.ДатаОтправкиФонду;
Запись.ДоставкаТекстОшибки = РезультатОтправки.ТекстОшибки;
Запись.ИдентификаторСообщения = РезультатОтправки.ИдентификаторСообщения;
Запись.ДоставкаИдентификаторПакета = РезультатОтправки.ИдентификаторПакета;
Регистр.ЗаполнитьСостояниеРегистрации(Запись);
Регистр.ЗавершитьЗаписьНабора(Набор);
КонецЕсли;
ДокументОбъект.ЗаполнитьСтатусДокумента(Набор);
СЭДОФСС.ЗаписатьДокумент(ДокументОбъект, Истина, Ложь, РежимЗаписиДокумента.Запись);
РезультатОтправки.Измененные.Добавить(ДокументОбъект.Ссылка);
КонецПроцедуры
Процедура ЗагрузитьРезультатДоставкиСообщения(Страхователь, Сообщение, Результат) Экспорт
Таблица = РегистрыСведений.РегистрацииЗаявленийОВозмещенииВыплатРодителямДетейИнвалидов.НайтиПоИдентификаторуСообщения(
Страхователь,
Сообщение.Идентификатор,
Результат);
Регистр = РегистрыСведений.РегистрацииЗаявленийОВозмещенииВыплатРодителямДетейИнвалидов;
Для Каждого СтрокаТаблицы Из Таблица Цикл
Набор = Регистр.НачатьЗаписьНабора(СтрокаТаблицы.ИдентификаторСообщения);
Если Не ЗначениеЗаполнено(СтрокаТаблицы.ИсходящийДокумент) Тогда
Набор.Очистить();
Иначе
ДокументОбъект = СтрокаТаблицы.ИсходящийДокумент.ПолучитьОбъект();
Если Не Сообщение.ДоставленоФонду Тогда
ДокументОбъект.ДатаОтправки = '00010101';
ДокументОбъект.ИдентификаторСообщения = "";
Набор.Очистить();
Иначе
Если Набор.Количество() = 0 Тогда
Запись = Набор.Добавить();
Запись.ИдентификаторСообщения = СтрокаТаблицы.ИдентификаторСообщения;
Иначе
Запись = Набор[0];
КонецЕсли;
Запись.ДоставкаУспех = Сообщение.ДоставленоФонду;
Запись.ДоставкаДата = Сообщение.ДатаОтправкиФонду;
Запись.ДоставкаТекстОшибки = Сообщение.ТекстОшибки;
Регистр.ЗаполнитьСостояниеРегистрации(Запись);
КонецЕсли;
ДокументОбъект.ЗаполнитьСтатусДокумента(Набор);
СЭДОФСС.ЗаписатьДокумент(ДокументОбъект, Истина, Ложь, РежимЗаписиДокумента.Запись);
КонецЕсли;
Регистр.ЗавершитьЗаписьНабора(Набор);
Результат.Обработано = Истина;
КонецЦикла;
КонецПроцедуры
Функция ЗаголовокФормыОтправкиСведенийВФСС() Экспорт
Возврат НСтр("ru = 'Отправка заявлений о возмещении выплат родителям детей-инвалидов через СЭДО'");
КонецФункции
Функция СтатусДокумента(Документ, НаборЗаписейИлиЗапись = 0) Экспорт
Если Не Документ.ОтправлятьЧерезСЭДО Тогда
Возврат Документ.СтатусДокумента;
КонецЕсли;
Если Документ.ПометкаУдаления Тогда
Возврат Перечисления.СтатусыЗаявленийИРеестровНаВыплатуПособий.Аннулирован;
КонецЕсли;
БудетПроведен = ОбщегоНазначенияБЗК.ЗначениеСвойства(Документ.ДополнительныеСвойства, "БудетПроведен");
Если БудетПроведен = Неопределено Тогда
БудетПроведен = Документ.Проведен;
КонецЕсли;
Если Не БудетПроведен Тогда
Возврат Перечисления.СтатусыЗаявленийИРеестровНаВыплатуПособий.ВРаботе;
КонецЕсли;
Если Не ЗначениеЗаполнено(Документ.ДатаОтправки) Тогда
Возврат Перечисления.СтатусыЗаявленийИРеестровНаВыплатуПособий.Подготовлен;
КонецЕсли;
Если НаборЗаписейИлиЗапись = 0 Тогда
Если Не ЗначениеЗаполнено(Документ.ИдентификаторСообщения) Тогда
Возврат Перечисления.СтатусыЗаявленийИРеестровНаВыплатуПособий.ПереданВФСС;
КонецЕсли;
НаборЗаписейИлиЗапись = РегистрыСведений.РегистрацииЗаявленийОВозмещенииВыплатРодителямДетейИнвалидов.СоздатьНаборЗаписей();
НаборЗаписейИлиЗапись.Отбор.ИдентификаторСообщения.Установить(Документ.ИдентификаторСообщения);
НаборЗаписейИлиЗапись.Прочитать();
КонецЕсли;
Если ТипЗнч(НаборЗаписейИлиЗапись) = Тип("РегистрСведенийНаборЗаписей.РегистрацииЗаявленийОВозмещенииВыплатРодителямДетейИнвалидов") Тогда
Если НаборЗаписейИлиЗапись.Количество() > 0 Тогда
Запись = НаборЗаписейИлиЗапись[0];
Иначе
Запись = Неопределено;
КонецЕсли;
Иначе
Запись = НаборЗаписейИлиЗапись;
КонецЕсли;
ВариантыСостояний = Перечисления.СостоянияДокументаСЭДОФСС;
Состояние = ?(Запись = Неопределено, ВариантыСостояний.ПустаяСсылка(), Запись.Состояние);
Если Не ЗначениеЗаполнено(Состояние)
Или Состояние = ВариантыСостояний.ВПроцессеПодготовки
Или Состояние = ВариантыСостояний.ПодготовленКОтправке
Или Состояние = ВариантыСостояний.ОшибкаПриОтправке Тогда
Возврат Перечисления.СтатусыЗаявленийИРеестровНаВыплатуПособий.Подготовлен;
ИначеЕсли Состояние = ВариантыСостояний.ОтправленОператору
Или Состояние = ВариантыСостояний.Отправлен Тогда
Возврат Перечисления.СтатусыЗаявленийИРеестровНаВыплатуПособий.ПереданВФСС;
ИначеЕсли Состояние = ВариантыСостояний.ОшибкаЛогическогоКонтроля
Или Состояние = ВариантыСостояний.НеПринят
Или Состояние = ВариантыСостояний.ЧастичноПринят Тогда
Возврат Перечисления.СтатусыЗаявленийИРеестровНаВыплатуПособий.НеПринятФСС;
ИначеЕсли Состояние = ВариантыСостояний.Принят Тогда
Возврат Перечисления.СтатусыЗаявленийИРеестровНаВыплатуПособий.ПринятФСС;
Иначе
Возврат Перечисления.СтатусыЗаявленийИРеестровНаВыплатуПособий.Подготовлен;
КонецЕсли;
КонецФункции
Функция КоличествоОжидаемыхСообщений(ГоловнаяОрганизация, Организации) Экспорт
ДатаНачалаАктуальности = НачалоДня(ДобавитьМесяц(ТекущаяДатаСеанса(), -1));
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| 1 КАК Поле1
|ИЗ
| РегистрСведений.РегистрацииЗаявленийОВозмещенииВыплатРодителямДетейИнвалидов КАК Регистрации
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
| ПО Регистрации.ГоловнаяОрганизация = Организации.Ссылка
|ГДЕ
| Регистрации.Состояние В (ЗНАЧЕНИЕ(Перечисление.СостоянияДокументаСЭДОФСС.Отправлен), ЗНАЧЕНИЕ(Перечисление.СостоянияДокументаСЭДОФСС.ОтправленОператору))
| И Регистрации.ГоловнаяОрганизация = &ГоловнаяОрганизация
| И Организации.Ссылка В(&Организации)
| И Регистрации.ДатаОтправкиОператору > &ДатаНачалаАктуальности";
Запрос.УстановитьПараметр("ДатаНачалаАктуальности", ДатаНачалаАктуальности);
Если ЗначениеЗаполнено(ГоловнаяОрганизация) Тогда
Запрос.УстановитьПараметр("ГоловнаяОрганизация", ГоловнаяОрганизация);
Иначе
Запрос.Текст = СтрЗаменить(Запрос.Текст, "И Регистрации.ГоловнаяОрганизация = &ГоловнаяОрганизация", "");
КонецЕсли;
Если ЗначениеЗаполнено(Организации) Тогда
Запрос.УстановитьПараметр("Организации", Организации);
Иначе
Запрос.Текст = СтрЗаменить(Запрос.Текст, "ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации", "");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "ПО Регистрации.ГоловнаяОрганизация = Организации.Ссылка", "");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "И Организации.Ссылка В(&Организации)", "");
КонецЕсли;
Возврат Запрос.Выполнить().Выбрать().Количество();
КонецФункции
#КонецОбласти
Функция ИмяАктуальногоМакета() Экспорт
Если ТекущаяДатаСеанса() > ДатаФорм2024() Тогда
Возврат "ПФ_MXL_ДополнительныеДниОтпуска_2024";
ИначеЕсли ТекущаяДатаСеанса() > ДатаФорм2022() Тогда
Возврат "ПФ_MXL_ДополнительныеДниОтпуска_2022";
Иначе
Возврат "ЗаявлениеВФССДополнительныеДниОтпуска_2021";
КонецЕсли;
КонецФункции
Функция ДатаФорм2022() Экспорт
Возврат ЗарплатаКадрыПовтИсп.ДатаВступленияВСилуНА("ФормаВозмещенияВыплатРодителямДетейИнвалидов2022");
КонецФункции
Функция ДатаФорм2024() Экспорт
Возврат '20240426';
КонецФункции
Функция ВидимостьОснования() Экспорт
ОпределяемыйТип = Метаданные.ОпределяемыеТипы.ДокументыОснованияЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов;
Возврат Не ОпределяемыйТип.Тип.СодержитТип(Тип("Строка"));
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область ФиксацияВторичныхДанныхВДокументах
Функция ФиксируемыеРеквизиты()
ФиксируемыеРеквизиты = Новый Соответствие;
Шаблон = ФиксацияВторичныхДанныхВДокументах.ОписаниеФиксируемогоРеквизита();
Шаблон.ИмяГруппы = "Организация";
Шаблон.ОснованиеЗаполнения = "Организация";
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ГоловнаяОрганизация");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "Страхователь");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "НаименованиеТерриториальногоОрганаФСС");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "РегистрационныйНомерСФР");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "РегномерСФРГоловнойОрганизации");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "РегистрационныйНомерФСС");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ДополнительныйКодФСС");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "КодПодчиненностиФСС");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "СтраховательНаименование");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ИНН");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "КПП");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "АдресОрганизации");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "Банк", Ложь);
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "НаименованиеБанка", Ложь);
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "НомерСчета", Ложь);
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "БИКБанка", Ложь);
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "НомерЛицевогоСчета", Ложь);
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "КБК", Ложь);
Шаблон = ФиксацияВторичныхДанныхВДокументах.ОписаниеФиксируемогоРеквизита();
Шаблон.ОснованиеЗаполнения = "Организация";
Шаблон.ИмяГруппы = "Руководитель";
Шаблон.ФиксацияГруппы = Истина;
Шаблон.ОтображатьПредупреждение = Ложь;
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "Руководитель");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ДолжностьРуководителя");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОснованиеПодписиРуководителя");
Шаблон = ФиксацияВторичныхДанныхВДокументах.ОписаниеФиксируемогоРеквизита();
Шаблон.ОснованиеЗаполнения = "Организация";
Шаблон.ИмяГруппы = "ПредставительСФР";
Шаблон.ФиксацияГруппы = Истина;
Шаблон.ОтображатьПредупреждение = Ложь;
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ПредставительСФР");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ДолжностьПредставителяСФР");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОснованиеПодписиПредставителяСФР");
Шаблон = ФиксацияВторичныхДанныхВДокументах.ОписаниеФиксируемогоРеквизита();
Шаблон.ОснованиеЗаполнения = "ПредставительСФР";
Шаблон.ИмяГруппы = "ПредставительСФРКадровыеДанные";
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "СоставительФИО");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "АдресЭлектроннойПочтыОрганизации");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ТелефонСоставителя");
Шаблон = ФиксацияВторичныхДанныхВДокументах.ОписаниеФиксируемогоРеквизита();
Шаблон.ИмяГруппы = "СведенияОДокументе";
Шаблон.ОснованиеЗаполнения = "СведенияОДокументе";
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "СтатусДокумента", Ложь);
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "Перерасчет", Ложь);
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ИдентификаторРеестра");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ИдентификаторПервичногоРеестра", Ложь);
Шаблон = ФиксацияВторичныхДанныхВДокументах.ОписаниеФиксируемогоРеквизита();
Шаблон.ИмяГруппы = "СведенияОбОплатах";
Шаблон.ОснованиеЗаполнения = "СведенияОбОплатах";
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ВнешнееСовместительство", Ложь);
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсновноеМестоРаботы", Ложь);
Шаблон = ФиксацияВторичныхДанныхВДокументах.ОписаниеФиксируемогоРеквизита();
Шаблон.ОснованиеЗаполнения = "ДокументОснование";
Шаблон.ИмяГруппы = "ДокументОснование";
Шаблон.РеквизитСтроки = Истина;
Шаблон.Путь = "Оплаты";
Шаблон.ОтображатьПредупреждение = Ложь;
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "Сотрудник");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ПриказНомер");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ПриказДата");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "КоличествоСтраниц");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "КоличествоДней");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "КоличествоЧасовЗаМесяц");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "СреднедневнойЗаработок");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "НакопленоДнейЗаМесяц");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "НакопленоЧасовЗаМесяц");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "КоличествоДнейЗаГод");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "КоличествоЧасовЗаГод");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "СреднедневнойЗаработокЗаГод");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "СуммаПособия");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "СуммаВзносов");
Шаблон = ФиксацияВторичныхДанныхВДокументах.ОписаниеФиксируемогоРеквизита();
Шаблон.ОснованиеЗаполнения = "Сотрудник";
Шаблон.ИмяГруппы = "СотрудникКадровыеДанные";
Шаблон.РеквизитСтроки = Истина;
Шаблон.Путь = "Оплаты";
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "СотрудникФамилия");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "СотрудникИмя");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "СотрудникОтчество");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "СотрудникСНИЛС");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ВидЗанятости");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ФизическоеЛицо");
Шаблон = ФиксацияВторичныхДанныхВДокументах.ОписаниеФиксируемогоРеквизита();
Шаблон.ОснованиеЗаполнения = "Ребенок";
Шаблон.ИмяГруппы = "РебенокКадровыеДанные";
Шаблон.РеквизитСтроки = Истина;
Шаблон.Путь = "Оплаты";
Шаблон.ОтображатьПредупреждение = Ложь;
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "РебенокФамилия");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "РебенокИмя");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "РебенокОтчество");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "РебенокДатаРождения");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "РебенокСНИЛС");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "Статус", Ложь);
Шаблон = ФиксацияВторичныхДанныхВДокументах.ОписаниеФиксируемогоРеквизита();
Шаблон.ОснованиеЗаполнения = "Ребенок";
Шаблон.ИмяГруппы = "Справка";
Шаблон.РеквизитСтроки = Истина;
Шаблон.Путь = "Оплаты";
Шаблон.ОтображатьПредупреждение = Ложь;
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "СправкаНомер");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "СправкаСерия");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "СправкаДатаВыдачи");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "СправкаДатаОкончания");
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "СправкаДатаУстановления");
РеквизитыРучногоЗаполнения = "Дата, Ответственный, Комментарий,
|ИсправленныйДокумент, Примечание";
РеквизитыРучногоЗаполнения = Новый Структура(РеквизитыРучногоЗаполнения);
Группа = ФиксацияВторичныхДанныхВДокументах.ОписаниеФиксируемогоРеквизита();
Группа.ИмяГруппы = "СлужебныеРеквизиты";
Группа.ОтображатьПредупреждение = Ложь;
Для Каждого Реквизит Из Метаданные().Реквизиты Цикл
Если Не РеквизитыРучногоЗаполнения.Свойство(Реквизит.Имя) И ФиксируемыеРеквизиты[Реквизит.Имя] = Неопределено Тогда
ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Группа, Реквизит.Имя);
КонецЕсли;
КонецЦикла;
Возврат Новый ФиксированноеСоответствие(ФиксируемыеРеквизиты);
КонецФункции
Функция ФиксируемыеТаблицы()
Возврат Новый Структура("Оплаты", СтрРазделить("ДокументОснование,Сотрудник,Месяц", ","));
КонецФункции
Процедура ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Группа, ИмяРеквизита, ОтображатьПредупреждение = Неопределено) Экспорт
ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(
ФиксируемыеРеквизиты,
Группа,
ИмяРеквизита,
ОтображатьПредупреждение);
КонецПроцедуры
#КонецОбласти
#Область ОбновлениеИнформационнойБазы
Процедура СоздатьВТКадровыхДанных(Запрос)
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| Оплаты.Сотрудник КАК Сотрудник,
| Оплаты.Ссылка.Дата КАК Период
|ПОМЕСТИТЬ ВТСотрудникиОбщийСписок
|ИЗ
| Документ.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов.Оплаты КАК Оплаты
|ГДЕ
| Оплаты.Ссылка В(&МассивСсылок)
|;
|
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов.Руководитель КАК ФизическоеЛицо,
| ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов.Дата КАК Период
|ПОМЕСТИТЬ ВТФизическиеЛицаОбщийСписок
|ИЗ
| Документ.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов КАК ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов
|ГДЕ
| ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов.Ссылка В(&МассивСсылок)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов.ПредставительСФР,
| ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов.Дата
|ИЗ
| Документ.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов КАК ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов
|ГДЕ
| ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов.Ссылка В(&МассивСсылок)
|;
|
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ВТСотрудникиОбщийСписок.Сотрудник КАК Сотрудник,
| ВТСотрудникиОбщийСписок.Период КАК Период
|ПОМЕСТИТЬ ВТСотрудники
|ИЗ
| ВТСотрудникиОбщийСписок КАК ВТСотрудникиОбщийСписок
|;
|
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ВТФизическиеЛицаОбщийСписок.ФизическоеЛицо КАК ФизическоеЛицо,
| ВТФизическиеЛицаОбщийСписок.Период КАК Период
|ПОМЕСТИТЬ ВТФизическиеЛица
|ИЗ
| ВТФизическиеЛицаОбщийСписок КАК ВТФизическиеЛицаОбщийСписок";
Запрос.Выполнить();
Описатель = КадровыйУчет.ОписательВременныхТаблицДляСоздатьВТКадровыеДанныеСотрудников(Запрос.МенеджерВременныхТаблиц, "ВТСотрудники");
КадровыйУчет.СоздатьВТКадровыеДанныеСотрудников(Описатель, Истина, "ФИОПолные,Фамилия,Имя,Отчество");
Описатель = КадровыйУчет.ОписательВременныхТаблицДляСоздатьВТКадровыеДанныеФизическихЛиц(Запрос.МенеджерВременныхТаблиц, "ВТФизическиеЛица");
КадровыйУчет.СоздатьВТКадровыеДанныеФизическихЛиц(Описатель, Истина, "ФИОПолные,ФамилияИО");
КонецПроцедуры
Функция РеквизитШапкиЗаполненИНеЗафкисирован(ДокументОбъект, ИмяРеквизита)
Возврат ЗначениеЗаполнено(ДокументОбъект[ИмяРеквизита])
И Не ФиксацияВторичныхДанныхВДокументах.РеквизитШапкиЗафиксирован(ДокументОбъект, ИмяРеквизита);
КонецФункции
Функция РеквизитШапкиНеЗаполненИНеЗафкисирован(ДокументОбъект, ИмяРеквизита)
Возврат Не ЗначениеЗаполнено(ДокументОбъект[ИмяРеквизита])
И Не ФиксацияВторичныхДанныхВДокументах.РеквизитШапкиЗафиксирован(ДокументОбъект, ИмяРеквизита);
КонецФункции
#КонецОбласти
#Область ТекстXML
Функция УбратьПробелы(Строка, УбратьТире = Истина)
Возврат СтроковыеФункцииБЗККлиентСервер.УбратьПробелы(Строка, УбратьТире);
КонецФункции
Процедура ВыгрузитьСтрокиПоСотрудникам(ТипСообщения, МенеджерXML, КореньXML, ТаблицаСтрок)
ИменаПолейШапки = "СотрудникФамилия, СотрудникИмя, СотрудникОтчество, СотрудникСНИЛС, Статус,
|РебенокФамилия, РебенокИмя, РебенокОтчество, РебенокСНИЛС, РебенокДатаРождения";
ТаблицаСотрудников = ТаблицаСтрок.Скопировать(, ИменаПолейШапки);
ТаблицаСотрудников.Свернуть(ИменаПолейШапки);
ФильтрПоДаннымШапки = Новый Структура(ИменаПолейШапки);
Для Каждого ДанныеШапкиПоСотруднику Из ТаблицаСотрудников Цикл
ЗаполнитьЗначенияСвойств(ФильтрПоДаннымШапки, ДанныеШапкиПоСотруднику);
ТаблицаСтрокПоСотруднику = ТаблицаСтрок.Скопировать(ФильтрПоДаннымШапки);
ТаблицыПоСотруднику = ВложенныеТаблицыПоСотруднику(ТаблицаСтрокПоСотруднику);
УзелПолучатель = МенеджерXML.ДобавитьУзел(КореньXML, "receiversRow");
УзелСотрудник = МенеджерXML.ДобавитьУзел(УзелПолучатель, "parentInfo");
УзелФИО = МенеджерXML.ДобавитьУзел(УзелСотрудник, "fullName");
МенеджерXML.ДобавитьУзел(УзелФИО, "person:firstName", ДанныеШапкиПоСотруднику.СотрудникИмя);
МенеджерXML.ДобавитьУзел(УзелФИО, "person:lastName", ДанныеШапкиПоСотруднику.СотрудникФамилия);
МенеджерXML.ДобавитьУзел(УзелФИО, "person:middleName", ДанныеШапкиПоСотруднику.СотрудникОтчество, Истина);
МенеджерXML.ДобавитьУзел(УзелСотрудник, "snils", УбратьПробелы(ДанныеШапкиПоСотруднику.СотрудникСНИЛС));
МенеджерXML.ДобавитьУзел(УзелСотрудник, "childRelType", ДанныеШапкиПоСотруднику.Статус);
УзелРебенок = МенеджерXML.ДобавитьУзел(УзелПолучатель, "childInfo");
УзелФИО = МенеджерXML.ДобавитьУзел(УзелРебенок, "fullName");
МенеджерXML.ДобавитьУзел(УзелФИО, "person:firstName", ДанныеШапкиПоСотруднику.РебенокИмя);
МенеджерXML.ДобавитьУзел(УзелФИО, "person:lastName", ДанныеШапкиПоСотруднику.РебенокФамилия);
МенеджерXML.ДобавитьУзел(УзелФИО, "person:middleName", ДанныеШапкиПоСотруднику.РебенокОтчество, Истина);
МенеджерXML.ДобавитьУзел(УзелРебенок, "snils", УбратьПробелы(ДанныеШапкиПоСотруднику.РебенокСНИЛС));
МенеджерXML.ДобавитьУзел(УзелРебенок, "birthDate", ДанныеШапкиПоСотруднику.РебенокДатаРождения);
Для Каждого СтрокаСправки Из ТаблицыПоСотруднику.Справки Цикл
УзелСправка = МенеджерXML.ДобавитьУзел(УзелРебенок, "certificateOfDisability");
МенеджерXML.ДобавитьУзел(УзелСправка, "series", СтрокаСправки.СправкаСерия);
МенеджерXML.ДобавитьУзел(УзелСправка, "number", СтрокаСправки.СправкаНомер);
МенеджерXML.ДобавитьУзел(УзелСправка, "certificateDate", СтрокаСправки.СправкаДатаВыдачи);
МенеджерXML.ДобавитьУзел(УзелСправка, "disabilityBeginDate", СтрокаСправки.СправкаДатаУстановления);
УзелДатаОкончания = МенеджерXML.ДобавитьУзел(УзелСправка, "disabilityEndDate");
Если Не ЗначениеЗаполнено(СтрокаСправки.СправкаДатаОкончания) Тогда
Если ТипСообщения = 120 Тогда
МенеджерXML.ДобавитьУзел(УзелДатаОкончания, "notLimited", 1);
Иначе
МенеджерXML.ДобавитьУзел(УзелДатаОкончания, "notLimited", Истина);
КонецЕсли;
Иначе
МенеджерXML.ДобавитьУзел(УзелДатаОкончания, "endDate", СтрокаСправки.СправкаДатаОкончания);
КонецЕсли;
КонецЦикла;
Для Каждого СтрокаПриказа Из ТаблицыПоСотруднику.Приказы Цикл
УзелПриказ = МенеджерXML.ДобавитьУзел(УзелПолучатель, "ORD");
МенеджерXML.ДобавитьУзел(УзелПриказ, "number", СтрокаПриказа.ПриказНомер);
МенеджерXML.ДобавитьУзел(УзелПриказ, "date", СтрокаПриказа.ПриказДата);
КонецЦикла;
УзелПериоды = МенеджерXML.ДобавитьУзел(УзелПолучатель, "periods");
УзелПериодыЗаМесяц = МенеджерXML.ДобавитьУзел(УзелПериоды, "additionalPeriods", , Истина, Ложь);
Для Каждого ВложеннаяСтрока Из ТаблицыПоСотруднику.ДниЗаМесяц Цикл
УзелДниЗаМесяц = МенеджерXML.ДобавитьУзел(УзелПериодыЗаМесяц, "periodAndCalculationData");
МенеджерXML.ДобавитьУзел(УзелДниЗаМесяц, "year", Год(ВложеннаяСтрока.Месяц));
МенеджерXML.ДобавитьУзел(УзелДниЗаМесяц, "month", Месяц(ВложеннаяСтрока.Месяц));
МенеджерXML.ДобавитьУзел(УзелДниЗаМесяц, "daysAmount", ВложеннаяСтрока.КоличествоДней);
МенеджерXML.ДобавитьУзел(УзелДниЗаМесяц, "dailyAverageSal", ВложеннаяСтрока.СреднедневнойЗаработок);
КонецЦикла;
МенеджерXML.ДобавитьУзел(УзелПериодыЗаМесяц, "providedDays", ТаблицыПоСотруднику.ДниЗаМесяц.Итог("КоличествоДней"));
МенеджерXML.ДобавитьУзел(УзелПериодыЗаМесяц, "providedTotalHour", ТаблицыПоСотруднику.ДниЗаМесяц.Итог("КоличествоЧасовЗаМесяц"));
УзелПериодыЗаГод = МенеджерXML.ДобавитьУзел(УзелПериоды, "accumulatedPeriods", , Истина, Ложь);
Накопленные = ТаблицыПоСотруднику.Накопленные;
Для Каждого ВложеннаяСтрока Из Накопленные Цикл
УзелНакопленныеДни = МенеджерXML.ДобавитьУзел(УзелПериодыЗаГод, "accumulatedPeriodData");
МенеджерXML.ДобавитьУзел(УзелНакопленныеДни, "year", Год(ВложеннаяСтрока.Месяц));
МенеджерXML.ДобавитьУзел(УзелНакопленныеДни, "month", Месяц(ВложеннаяСтрока.Месяц));
МенеджерXML.ДобавитьУзел(УзелНакопленныеДни, "daysAmount", ВложеннаяСтрока.НакопленоДнейЗаМесяц);
КонецЦикла;
МенеджерXML.ДобавитьУзел(УзелПериодыЗаГод, "accumulatedDays", Накопленные.Итог("НакопленоДнейЗаМесяц"));
МенеджерXML.ДобавитьУзел(УзелПериодыЗаГод, "accumulatedTotalHour", Накопленные.Итог("НакопленоЧасовЗаМесяц"));
ДниЗаГод = ТаблицыПоСотруднику.ДниЗаГод;
Для Каждого ВложеннаяСтрока Из ДниЗаГод Цикл
УзелДниЗаГод = МенеджерXML.ДобавитьУзел(УзелПериодыЗаГод, "accumulatedProvidedPeriodData");
МенеджерXML.ДобавитьУзел(УзелДниЗаГод, "year", Год(ВложеннаяСтрока.Месяц));
МенеджерXML.ДобавитьУзел(УзелДниЗаГод, "month", Месяц(ВложеннаяСтрока.Месяц));
МенеджерXML.ДобавитьУзел(УзелДниЗаГод, "daysAmount", ВложеннаяСтрока.КоличествоДнейЗаГод);
МенеджерXML.ДобавитьУзел(УзелДниЗаГод, "dailyAverageSal", ВложеннаяСтрока.СреднедневнойЗаработокЗаГод);
КонецЦикла;
МенеджерXML.ДобавитьУзел(УзелПериодыЗаГод, "accumulatedProvidedDays", ДниЗаГод.Итог("КоличествоДнейЗаГод"));
МенеджерXML.ДобавитьУзел(УзелПериодыЗаГод, "accumulatedProvidedTotalHour", ДниЗаГод.Итог("КоличествоЧасовЗаГод"));
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#Область ПриЗаполненииПараметровОтправки
Функция ЗаполнитьТекстОшибкиПроверкиЗаполнения(СтрокаОтправки, ТекстИсключенияПриПроведении)
СтрокаОтправки.Ошибки = ПолучитьСообщенияПользователю(Истина);
Количество = СтрокаОтправки.Ошибки.Количество();
Если Количество = 1 Тогда
СтрокаОтправки.Результат = СтрокаОтправки.Ошибки[0].Текст;
ИначеЕсли Количество > 1 Тогда
СтрокаОтправки.Результат = СтроковыеФункцииКлиентСервер.СтрокаСЧисломДляЛюбогоЯзыка(
НСтр("ru = ';%1 ошибка заполнения;;%1 ошибки заполнения;%1 ошибок заполнения;'"),
Количество);
КонецЕсли;
Если ЗначениеЗаполнено(ТекстИсключенияПриПроведении) Тогда
Если СтрокаОтправки.Результат = "" Тогда
СтрокаОтправки.Результат = СтрШаблон(НСтр("ru = 'Ошибка проведения: %1'"), ТекстИсключенияПриПроведении);
Иначе
СтрокаОтправки.Результат = СтрокаОтправки.Результат + ";" + Символы.ПС + СтрШаблон(НСтр("ru = 'И ошибка проведения: %1'"), ТекстИсключенияПриПроведении);
КонецЕсли;
КонецЕсли;
КонецФункции
#КонецОбласти
#Область Печать
Функция ТабличныйДокументДополнительныеДниОтпуска(МассивСсылок, ОбъектыПечати)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("МассивСсылок", МассивСсылок);
Запрос.УстановитьПараметр("ДатаФорм2017", ПрямыеВыплатыПособийСоциальногоСтрахования.ДатаВступленияВСилуФорм2017Года());
Запрос.УстановитьПараметр("ДатаФорм2021", ПрямыеВыплатыПособийСоциальногоСтрахования.ДатаВступленияВСилуФорм2021Года());
Запрос.УстановитьПараметр("ДатаФорм2022", ДатаФорм2022());
Запрос.УстановитьПараметр("ДатаФорм2024", ДатаФорм2024());
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
СоздатьВТКадровыхДанных(Запрос);
Запрос.Текст =
"ВЫБРАТЬ
| Шапка.Ссылка КАК Ссылка,
| Шапка.Номер КАК Номер,
| Шапка.Дата КАК Дата,
| ВЫБОР
| КОГДА Шапка.Дата < &ДатаФорм2017
| ТОГДА ""ЗаявлениеВФССДополнительныеДниОтпуска_2012""
| КОГДА Шапка.Дата < &ДатаФорм2021
| ТОГДА ""ЗаявлениеВФССДополнительныеДниОтпуска_2017""
| КОГДА Шапка.Дата < &ДатаФорм2022
| ТОГДА ""ЗаявлениеВФССДополнительныеДниОтпуска_2021""
| КОГДА Шапка.Дата < &ДатаФорм2024
| ТОГДА ""ПФ_MXL_ДополнительныеДниОтпуска_2022""
| ИНАЧЕ ""ПФ_MXL_ДополнительныеДниОтпуска_2024""
| КОНЕЦ КАК ИмяМакета,
| Шапка.Проведен КАК Проведен,
| Шапка.Организация КАК Организация,
| Шапка.НаименованиеТерриториальногоОрганаФСС КАК НаименованиеТерриториальногоОрганаФСС,
| Шапка.РегистрационныйНомерСФР КАК РегистрационныйНомерСФР,
| Шапка.РегномерСФРГоловнойОрганизации КАК РегномерСФРГоловнойОрганизации,
| Шапка.РегистрационныйНомерФСС КАК РегистрационныйНомерФСС,
| Шапка.ДополнительныйКодФСС КАК ДополнительныйКодФСС,
| Шапка.КодПодчиненностиФСС КАК КодПодчиненностиФСС,
| Шапка.СтраховательНаименование КАК СтраховательНаименование,
| Шапка.ИНН КАК ИНН,
| Шапка.КПП КАК КПП,
| Шапка.Руководитель КАК Руководитель,
| ЕСТЬNULL(ВТКадровыеДанныеРуководителя.ФИОПолные, """") КАК РуководительФИО,
| Шапка.ДолжностьРуководителя КАК ДолжностьРуководителя,
| Шапка.ПредставительСФР КАК ПредставительСФР,
| ЕСТЬNULL(ВТКадровыеДанныеПредставителя.ФИОПолные, """") КАК ПредставительФИО,
| Шапка.ДолжностьПредставителяСФР КАК ДолжностьПредставителяСФР,
| Шапка.АдресОрганизации КАК АдресОрганизации,
| Шапка.НаименованиеБанка КАК НаименованиеБанка,
| Шапка.НомерЛицевогоСчета КАК НомерЛицевогоСчета,
| Шапка.КБК КАК КБК,
| Шапка.ДополнительныеСведенияДляПеречисления КАК ДополнительныеСведенияДляПеречисления,
| Шапка.НомерСчета КАК НомерСчета,
| Шапка.БИКБанка КАК БИКБанка,
| Шапка.СтатусДокумента КАК СтатусДокумента,
| Шапка.ТелефонСоставителя КАК ТелефонСоставителя,
| Шапка.АдресЭлектроннойПочтыОрганизации КАК АдресЭлектроннойПочтыОрганизации,
| Шапка.ТелефонСоставителя КАК СтраховательТелефон,
| Шапка.АдресЭлектроннойПочтыОрганизации КАК СтраховательПочта,
| Шапка.ЗаявлениеСоставил КАК ЗаявлениеСоставил,
| ЕСТЬNULL(ТЧОплаты.НомерСтроки, 0) КАК НомерСтроки,
| ЕСТЬNULL(ТЧОплаты.Сотрудник, НЕОПРЕДЕЛЕНО) КАК Сотрудник,
| ЕСТЬNULL(ТЧОплаты.СотрудникФамилия, """") КАК СотрудникФамилия,
| ЕСТЬNULL(ТЧОплаты.СотрудникИмя, """") КАК СотрудникИмя,
| ЕСТЬNULL(ТЧОплаты.СотрудникОтчество, """") КАК СотрудникОтчество,
| ЕСТЬNULL(ТЧОплаты.СотрудникСНИЛС, """") КАК СотрудникСНИЛС,
| ЕСТЬNULL(ТЧОплаты.РебенокФамилия, """") КАК РебенокФамилия,
| ЕСТЬNULL(ТЧОплаты.РебенокИмя, """") КАК РебенокИмя,
| ЕСТЬNULL(ТЧОплаты.РебенокОтчество, """") КАК РебенокОтчество,
| ЕСТЬNULL(ТЧОплаты.РебенокСНИЛС, """") КАК РебенокСНИЛС,
| ЕСТЬNULL(ТЧОплаты.РебенокДатаРождения, """") КАК РебенокДатаРождения,
| ЕСТЬNULL(ТЧОплаты.Статус, НЕОПРЕДЕЛЕНО) КАК Статус,
| ЕСТЬNULL(ТЧОплаты.СреднедневнойЗаработок, 0) КАК СреднедневнойЗаработок,
| ЕСТЬNULL(ТЧОплаты.ДокументОснование, НЕОПРЕДЕЛЕНО) КАК ДокументОснование,
| ЕСТЬNULL(ТЧОплаты.КоличествоСтраниц, 0) КАК КоличествоСтраниц,
| ЕСТЬNULL(ТЧОплаты.СуммаПособия, 0) КАК СуммаПособия,
| ЕСТЬNULL(ТЧОплаты.СуммаВзносов, 0) КАК СуммаВзносов,
| ЕСТЬNULL(ТЧОплаты.КоличествоДней, 0) КАК КоличествоДней,
| ЕСТЬNULL(ТЧОплаты.СправкаСерия, """") КАК СправкаСерия,
| ЕСТЬNULL(ТЧОплаты.СправкаНомер, """") КАК СправкаНомер,
| ЕСТЬNULL(ТЧОплаты.СправкаДатаВыдачи, ДАТАВРЕМЯ(1, 1, 1)) КАК СправкаДатаВыдачи,
| ЕСТЬNULL(ТЧОплаты.СправкаДатаОкончания, ДАТАВРЕМЯ(1, 1, 1)) КАК СправкаДатаОкончания,
| ЕСТЬNULL(ТЧОплаты.СправкаДатаУстановления, ДАТАВРЕМЯ(1, 1, 1)) КАК СправкаДатаУстановления,
| ЕСТЬNULL(ТЧОплаты.ПриказНомер, """") КАК ПриказНомер,
| ЕСТЬNULL(ТЧОплаты.ПриказДата, ДАТАВРЕМЯ(1, 1, 1)) КАК ПриказДата,
| ЕСТЬNULL(ТЧОплаты.КоличествоЧасовЗаМесяц, 0) КАК КоличествоЧасовЗаМесяц,
| ЕСТЬNULL(ТЧОплаты.НакопленоДнейЗаМесяц, 0) КАК НакопленоДнейЗаМесяц,
| ЕСТЬNULL(ТЧОплаты.НакопленоЧасовЗаМесяц, 0) КАК НакопленоЧасовЗаМесяц,
| ЕСТЬNULL(ТЧОплаты.КоличествоДнейЗаГод, 0) КАК КоличествоДнейЗаГод,
| ЕСТЬNULL(ТЧОплаты.КоличествоЧасовЗаГод, 0) КАК КоличествоЧасовЗаГод,
| ЕСТЬNULL(ТЧОплаты.СреднедневнойЗаработокЗаГод, 0) КАК СреднедневнойЗаработокЗаГод,
| ЕСТЬNULL(ТЧОплаты.Месяц, ДАТАВРЕМЯ(1, 1, 1)) КАК Месяц
|ИЗ
| Документ.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов КАК Шапка
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов.Оплаты КАК ТЧОплаты
| ПО Шапка.Ссылка = ТЧОплаты.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКадровыеДанныеФизическихЛиц КАК ВТКадровыеДанныеРуководителя
| ПО Шапка.Руководитель = ВТКадровыеДанныеРуководителя.ФизическоеЛицо
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКадровыеДанныеФизическихЛиц КАК ВТКадровыеДанныеПредставителя
| ПО Шапка.ПредставительСФР = ВТКадровыеДанныеПредставителя.ФизическоеЛицо
|ГДЕ
| Шапка.Ссылка В(&МассивСсылок)
|
|УПОРЯДОЧИТЬ ПО
| Дата,
| Ссылка,
| НомерСтроки";
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.КлючПараметровПечати = "ПараметрыПечати_ЗаявлениеВФССДополнительныеДниОтпуска";
ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ТабличныйДокумент.АвтоМасштаб = Истина;
УправлениеПечатьюБЗК.УстановитьОтступ(ТабличныйДокумент, 0, 5, 0, 5);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.СледующийПоЗначениюПоля("ИмяМакета") Цикл
Если Выборка.ИмяМакета = "ЗаявлениеВФССДополнительныеДниОтпуска_2012" Тогда
ВывестиЗаявлениеОВозмещении_2012(Выборка, ТабличныйДокумент, ОбъектыПечати);
ИначеЕсли Выборка.ИмяМакета = "ЗаявлениеВФССДополнительныеДниОтпуска_2017" Тогда
ВывестиЗаявлениеОВозмещении_2017(Выборка, ТабличныйДокумент, ОбъектыПечати);
ИначеЕсли Выборка.ИмяМакета = "ЗаявлениеВФССДополнительныеДниОтпуска_2021" Тогда
ВывестиЗаявлениеОВозмещении_2021(Выборка, ТабличныйДокумент, ОбъектыПечати);
ИначеЕсли Выборка.ИмяМакета = "ПФ_MXL_ДополнительныеДниОтпуска_2022" Тогда
ВывестиЗаявлениеОВозмещении_2022(Выборка, ТабличныйДокумент, ОбъектыПечати);
ИначеЕсли Выборка.ИмяМакета = "ПФ_MXL_ДополнительныеДниОтпуска_2024" Тогда
ВывестиЗаявлениеОВозмещении_2024(Выборка, ТабличныйДокумент, ОбъектыПечати);
КонецЕсли;
КонецЦикла;
Возврат ТабличныйДокумент;
КонецФункции
#Область ЗаявлениеВФССДополнительныеДниОтпуска_2012
Процедура ВывестиЗаявлениеОВозмещении_2012(Выборка, ТабличныйДокумент, ОбъектыПечати)
Макет = Неопределено;
ВыведеноСтрок = 0;
ИтогоПособия = 0;
ИтогоСреднедневнойЗаработок = 0;
ИтогоКоличествоДней = 0;
ИтогоВзносов = 0;
ВсегоСтраниц = 0;
КоличествоСтрокВМакете = 4;
Пока Выборка.СледующийПоЗначениюПоля("Ссылка") Цикл
Пока Выборка.Следующий() Цикл
ВыведеноСтрок = (ВыведеноСтрок + 1) % КоличествоСтрокВМакете;
НомерСтроки = ?(ВыведеноСтрок = 0, КоличествоСтрокВМакете, ВыведеноСтрок);
Если ВыведеноСтрок = 1 Тогда
Если Макет <> Неопределено Тогда
ВывестиИтогиЗаявленияОВозмещении_2012(Макет, ИтогоСреднедневнойЗаработок, ИтогоПособия, ВсегоСтраниц);
Если ТабличныйДокумент.ВысотаТаблицы > 0 Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ТабличныйДокумент.Вывести(Макет);
КонецЕсли;
ИтогоПособия = 0;
ИтогоВзносов = 0;
ВсегоСтраниц = 0;
ИтогоСреднедневнойЗаработок = 0;
ИтогоКоличествоДней = 0;
Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов." + Выборка.ИмяМакета);
ВывестиШапкуИПодвалЗаявленияОВозмещении_2012(Макет, Выборка);
КонецЕсли;
ВывестиСтрокуЗаявленияОВозмещении_2012(Макет, Выборка, НомерСтроки);
ИтогоСреднедневнойЗаработок = ИтогоСреднедневнойЗаработок + Выборка.СреднедневнойЗаработок;
ИтогоКоличествоДней = ИтогоКоличествоДней + Выборка.КоличествоДней;
ИтогоПособия = ИтогоПособия + Выборка.СуммаПособия;
ИтогоВзносов = ИтогоВзносов + Выборка.СуммаВзносов;
ВсегоСтраниц = ВсегоСтраниц + Выборка.КоличествоСтраниц;
КонецЦикла;
КонецЦикла;
ВывестиИтогиЗаявленияОВозмещении_2012(Макет, ИтогоСреднедневнойЗаработок, ИтогоПособия, ВсегоСтраниц);
Если ТабличныйДокумент.ВысотаТаблицы > 0 Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ТабличныйДокумент.Вывести(Макет);
КонецПроцедуры
Процедура ВывестиШапкуИПодвалЗаявленияОВозмещении_2012(Макет, Выборка)
ДлиныСтрок = Новый Массив();
ДлиныСтрок.Добавить(27);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ЗарплатаКадры.РазбитьСтрокуНаПодСтроки(ВРег(Выборка.НаименованиеТерриториальногоОрганаФСС), ДлиныСтрок), Макет, "Наименование_ФСС_", 135);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ЗарплатаКадры.РазбитьСтрокуНаПодСтроки(ВРег(Выборка.СтраховательНаименование), ДлиныСтрок), Макет, "ФИО_Заявителя_", 135);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(Выборка.РегистрационныйНомерФСС, Макет, "РегистрационныйНомер_", 10);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(Выборка.ДополнительныйКодФСС, Макет, "ДополнительныйКод_", 10);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(Выборка.КодПодчиненностиФСС, Макет, "КодПодчиненности_", 5);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(Выборка.ИНН, Макет, "ИНН_", 12);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(Выборка.КПП, Макет, "КПП_", 9);
Если ЗначениеЗаполнено(Выборка.АдресОрганизации) Тогда
СтруктураАдреса = ПрямыеВыплатыПособийСоциальногоСтрахования.СтруктураАдресаВМашиночитаемомФормате2012(Выборка.АдресОрганизации);
Если ЗначениеЗаполнено(СтруктураАдреса.Индекс) Тогда
Префикс = "АдресРегистрации_";
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ВРег(СтруктураАдреса.Индекс), Макет, Префикс, 6);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ВРег(СтруктураАдреса.Регион), Макет, Префикс, 17, 7);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ВРег(СтруктураАдреса.Район), Макет, Префикс, 17, 24);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ВРег(СтруктураАдреса.НаселенныйПункт), Макет, Префикс, 34, 41);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ВРег(СтруктураАдреса.Улица), Макет, Префикс, 37, 75);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ВРег(СтруктураАдреса.Дом), Макет, Префикс, 8, 112);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ВРег(СтруктураАдреса.Корпус), Макет, Префикс, 3, 120);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ВРег(СтруктураАдреса.Строение), Макет, Префикс, 3, 123);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ВРег(СтруктураАдреса.Квартира), Макет, Префикс, 6, 126);
КонецЕсли;
КонецЕсли;
ДлиныСтрок = Новый Массив();
ДлиныСтрок.Добавить(39);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ЗарплатаКадры.РазбитьСтрокуНаПодСтроки(ВРег(Выборка.НаименованиеБанка), ДлиныСтрок), Макет, "НаименованиеБанка_", 78);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(Выборка.НомерСчета, Макет, "НомерСчета_", 20);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(Выборка.БИКБанка, Макет, "БИК_", 9);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(Выборка.НомерЛицевогоСчета, Макет, "ЛицСчет_", 12);
Если ЗначениеЗаполнено(Выборка.ТелефонСоставителя) Тогда
СтруктураТелефона = УправлениеКонтактнойИнформацией.СведенияОТелефоне(Выборка.ТелефонСоставителя);
Телефон = СтрЗаменить(СтруктураТелефона.КодГорода, "-", "") + СтрЗаменить(СтруктураТелефона.НомерТелефона, "-", "");
Телефон = СтрЗаменить(Телефон, " ", "");
ЗарплатаКадры.ВывестиДанныеПоБуквенно(Телефон, Макет, "ТелефонСоставителя_", 10);
КонецЕсли;
Если ЗначениеЗаполнено(Выборка.ПредставительСФР) Тогда
Макет.Параметры.ДолжностьРуководителя = Строка(Выборка.ДолжностьПредставителяСФР);
Макет.Параметры.ФИОРуководителя = Строка(Выборка.ПредставительФИО);
Иначе
Макет.Параметры.ДолжностьРуководителя = Строка(Выборка.ДолжностьРуководителя);
Макет.Параметры.ФИОРуководителя = Строка(Выборка.РуководительФИО);
КонецЕсли;
КонецПроцедуры
Процедура ВывестиСтрокуЗаявленияОВозмещении_2012(Макет, Выборка, НомерСтроки)
ПрефиксСтроки = "ФИО_" + Формат(НомерСтроки,"ЧЦ=2; ЧВН=") + "_";
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ВРег(Выборка.СотрудникФамилия), Макет, ПрефиксСтроки, 24);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ВРег(Выборка.СотрудникИмя), Макет, ПрефиксСтроки, 24, 25);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ВРег(Выборка.СотрудникОтчество), Макет, ПрефиксСтроки, 24, 49);
ЗарплатаКадры.ВывестиСуммуВРубляхКопейкахВЯчейки(Выборка.СреднедневнойЗаработок, Макет, "РазмерПособия" + НомерСтроки + "_", 8);
Макет.Области["Статус" + НомерСтроки].Текст = Выборка.Статус;
КонецПроцедуры
Процедура ВывестиИтогиЗаявленияОВозмещении_2012(Макет, ИтогоСреднедневнойЗаработок, ИтогоПособия, ВсегоСтраниц)
ЗарплатаКадры.ВывестиСуммуВРубляхКопейкахВЯчейки(ИтогоСреднедневнойЗаработок, Макет, "ИтогоРазмерПособия_", 9);
ЗарплатаКадры.ВывестиСуммуВРубляхКопейкахВЯчейки(ИтогоПособия, Макет, "ИтогоРазмерПособия2_", 9);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(Строка(ВсегоСтраниц), Макет, "КоличествоСтраниц_", 2);
КонецПроцедуры
#КонецОбласти
#Область ЗаявлениеВФССДополнительныеДниОтпуска_2017
Процедура ВывестиЗаявлениеОВозмещении_2017(Выборка, ТабличныйДокумент, ОбъектыПечати)
Макет = Неопределено;
ВыведеноСтрок = 0;
ИтогоПособия = 0;
ИтогоСреднедневнойЗаработок = 0;
ИтогоКоличествоДней = 0;
ИтогоВзносов = 0;
ВсегоСтраниц = 0;
КоличествоСтрокВМакете = 5;
Пока Выборка.СледующийПоЗначениюПоля("Ссылка") Цикл
Пока Выборка.Следующий() Цикл
ВыведеноСтрок = (ВыведеноСтрок + 1) % КоличествоСтрокВМакете;
НомерСтроки = ?(ВыведеноСтрок = 0, КоличествоСтрокВМакете, ВыведеноСтрок);
Если ВыведеноСтрок = 1 Тогда
Если Макет <> Неопределено Тогда
ВывестиИтогиЗаявленияОВозмещении_2017(Макет, ИтогоСреднедневнойЗаработок, ИтогоПособия, ИтогоВзносов, ВсегоСтраниц);
Если ТабличныйДокумент.ВысотаТаблицы > 0 Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ТабличныйДокумент.Вывести(Макет);
КонецЕсли;
ИтогоПособия = 0;
ИтогоВзносов = 0;
ВсегоСтраниц = 0;
ИтогоСреднедневнойЗаработок = 0;
ИтогоКоличествоДней = 0;
Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов." + Выборка.ИмяМакета);
ВывестиШапкуИПодвалЗаявленияОВозмещении_2017(Макет, Выборка);
КонецЕсли;
ВывестиСтрокуЗаявленияОВозмещении_2017(Макет, Выборка, НомерСтроки);
ИтогоСреднедневнойЗаработок = ИтогоСреднедневнойЗаработок + Выборка.СреднедневнойЗаработок;
ИтогоКоличествоДней = ИтогоКоличествоДней + Выборка.КоличествоДней;
ИтогоПособия = ИтогоПособия + Выборка.СуммаПособия;
ИтогоВзносов = ИтогоВзносов + Выборка.СуммаВзносов;
ВсегоСтраниц = ВсегоСтраниц + Выборка.КоличествоСтраниц;
КонецЦикла;
КонецЦикла;
ВывестиИтогиЗаявленияОВозмещении_2017(Макет, ИтогоСреднедневнойЗаработок, ИтогоПособия, ИтогоВзносов, ВсегоСтраниц);
Если ТабличныйДокумент.ВысотаТаблицы > 0 Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ТабличныйДокумент.Вывести(Макет);
КонецПроцедуры
Процедура ВывестиШапкуИПодвалЗаявленияОВозмещении_2017(Макет, Выборка)
ДлиныСтрок = Новый Массив();
ДлиныСтрок.Добавить(27);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ЗарплатаКадры.РазбитьСтрокуНаПодСтроки(ВРег(Выборка.НаименованиеТерриториальногоОрганаФСС), ДлиныСтрок), Макет, "Наименование_ФСС_", 135);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ЗарплатаКадры.РазбитьСтрокуНаПодСтроки(ВРег(Выборка.СтраховательНаименование), ДлиныСтрок), Макет, "ФИО_Заявителя_", 135);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(Выборка.РегистрационныйНомерФСС, Макет, "РегистрационныйНомер_", 10);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(Выборка.ДополнительныйКодФСС, Макет, "ДополнительныйКод_", 10);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(Выборка.КодПодчиненностиФСС, Макет, "КодПодчиненности_", 5);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(Выборка.ИНН, Макет, "ИНН_", 12);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(Выборка.КПП, Макет, "КПП_", 9);
Если ЗначениеЗаполнено(Выборка.АдресОрганизации) Тогда
СтруктураАдреса = ПрямыеВыплатыПособийСоциальногоСтрахования.СтруктураАдресаВМашиночитаемомФормате2012(Выборка.АдресОрганизации);
Если ЗначениеЗаполнено(СтруктураАдреса.Индекс) Тогда
Префикс = "АдресРегистрации_";
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ВРег(СтруктураАдреса.Индекс), Макет, Префикс, 6);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ВРег(СтруктураАдреса.Регион), Макет, Префикс, 37, 7);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ВРег(СтруктураАдреса.Район), Макет, Префикс, 37, 44);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ВРег(СтруктураАдреса.НаселенныйПункт), Макет, Префикс, 34, 81);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ВРег(СтруктураАдреса.Улица), Макет, Префикс, 37, 115);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ВРег(СтруктураАдреса.Дом), Макет, Префикс, 7, 152);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ВРег(СтруктураАдреса.Корпус), Макет, Префикс, 3, 159);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ВРег(СтруктураАдреса.Строение), Макет, Префикс, 3, 162);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ВРег(СтруктураАдреса.Квартира), Макет, Префикс, 5, 165);
КонецЕсли;
КонецЕсли;
ДлиныСтрок = Новый Массив();
ДлиныСтрок.Добавить(39);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(ЗарплатаКадры.РазбитьСтрокуНаПодСтроки(ВРег(Выборка.НаименованиеБанка), ДлиныСтрок), Макет, "НаименованиеБанка_", 78);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(Выборка.НомерСчета, Макет, "НомерСчета_", 20);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(Выборка.БИКБанка, Макет, "БИК_", 9);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(Выборка.НомерЛицевогоСчета, Макет, "ЛицСчет_", 12);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(Выборка.КБК, Макет, "КБК_", 20);
Если ЗначениеЗаполнено(Выборка.ТелефонСоставителя) Тогда
СтруктураТелефона = УправлениеКонтактнойИнформацией.СведенияОТелефоне(Выборка.ТелефонСоставителя);
Телефон = СтрЗаменить(СтруктураТелефона.КодГорода, "-", "") + СтрЗаменить(СтруктураТелефона.НомерТелефона, "-", "");
Телефон = СтрЗаменить(Телефон, " ", "");
ЗарплатаКадры.ВывестиДанныеПоБуквенно(Телефон, Макет, "ТелефонСоставителя_", 10);
КонецЕсли;
Если ЗначениеЗаполнено(Выборка.ПредставительСФР) Тогда
Макет.Параметры.ДолжностьРуководителя = Строка(Выборка.ДолжностьПредставителяСФР);
Макет.Параметры.ФИОРуководителя = Строка(Выборка.ПредставительФИО);
Иначе
Макет.Параметры.ДолжностьРуководителя = Строка(Выборка.ДолжностьРуководителя);
Макет.Параметры.ФИОРуководителя = Строка(Выборка.РуководительФИО);
КонецЕсли;
ЗарплатаКадры.ВывестиДанныеПоБуквенно(СокрЛП(Выборка.АдресЭлектроннойПочтыОрганизации), Макет, "АдресЭлектроннойПочты_", 28);
КонецПроцедуры
Процедура ВывестиСтрокуЗаявленияОВозмещении_2017(Макет, Выборка, НомерСтроки)
Макет.Параметры["Фамилия" + НомерСтроки] = Выборка.СотрудникФамилия;
Макет.Параметры["Имя" + НомерСтроки] = Выборка.СотрудникИмя;
Макет.Параметры["Отчество" + НомерСтроки] = Выборка.СотрудникОтчество;
Макет.Параметры["РазмерПособия" + НомерСтроки] = Выборка.СреднедневнойЗаработок;
Макет.Области["Статус" + НомерСтроки].Текст = Выборка.Статус;
КонецПроцедуры
Процедура ВывестиИтогиЗаявленияОВозмещении_2017(Макет, ИтогоСреднедневнойЗаработок, ИтогоПособия, ИтогоВзносов, ВсегоСтраниц)
Макет.Параметры.ИтогоРазмерПособия = ИтогоСреднедневнойЗаработок;
ЗарплатаКадры.ВывестиСуммуВРубляхКопейкахВЯчейки(ИтогоПособия + ИтогоВзносов, Макет, "ВсегоРасходов_", 11);
ЗарплатаКадры.ВывестиСуммуВРубляхКопейкахВЯчейки(ИтогоВзносов, Макет, "Взносов_", 11);
ЗарплатаКадры.ВывестиСуммуВРубляхКопейкахВЯчейки(ИтогоПособия, Макет, "ИтогоРазмерПособия2_", 11);
Макет.Параметры.Листов = Строка(ВсегоСтраниц);
КонецПроцедуры
#КонецОбласти
#Область ЗаявлениеВФССДополнительныеДниОтпуска_2021
Процедура ВывестиЗаявлениеОВозмещении_2021(Выборка, ТабличныйДокумент, ОбъектыПечати)
Макет = Неопределено;
ВыведеноСтрок = 0;
ИтогоПособия = 0;
ИтогоСреднедневнойЗаработок = 0;
ИтогоКоличествоДней = 0;
ИтогоВзносов = 0;
ВсегоСтраниц = 0;
КоличествоСтрокВМакете = 3;
Пока Выборка.СледующийПоЗначениюПоля("Ссылка") Цикл
Пока Выборка.Следующий() Цикл
ВыведеноСтрок = (ВыведеноСтрок + 1) % КоличествоСтрокВМакете;
НомерСтроки = ?(ВыведеноСтрок = 0, КоличествоСтрокВМакете, ВыведеноСтрок);
Если ВыведеноСтрок = 1 Тогда
Если Макет <> Неопределено Тогда
ВывестиИтогиЗаявленияОВозмещении_2017(Макет, ИтогоСреднедневнойЗаработок, ИтогоПособия, ИтогоВзносов, ВсегоСтраниц);
Макет.Параметры.ИтогоКоличествоДней = ИтогоКоличествоДней;
Если ТабличныйДокумент.ВысотаТаблицы > 0 Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ТабличныйДокумент.Вывести(Макет);
КонецЕсли;
ИтогоПособия = 0;
ИтогоВзносов = 0;
ВсегоСтраниц = 0;
ИтогоСреднедневнойЗаработок = 0;
ИтогоКоличествоДней = 0;
Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов." + Выборка.ИмяМакета);
ВывестиШапкуИПодвалЗаявленияОВозмещении_2017(Макет, Выборка);
ЗарплатаКадры.ВывестиДанныеПоБуквенно(Выборка.ДополнительныеСведенияДляПеречисления, Макет, "ДопСведения_", 72);
КонецЕсли;
ВывестиСтрокуЗаявленияОВозмещении_2021(Макет, Выборка, НомерСтроки);
ИтогоСреднедневнойЗаработок = ИтогоСреднедневнойЗаработок + Выборка.СреднедневнойЗаработок;
ИтогоКоличествоДней = ИтогоКоличествоДней + Выборка.КоличествоДней;
ИтогоПособия = ИтогоПособия + Выборка.СуммаПособия;
ИтогоВзносов = ИтогоВзносов + Выборка.СуммаВзносов;
ВсегоСтраниц = ВсегоСтраниц + Выборка.КоличествоСтраниц;
КонецЦикла;
КонецЦикла;
ВывестиИтогиЗаявленияОВозмещении_2017(Макет, ИтогоСреднедневнойЗаработок, ИтогоПособия, ИтогоВзносов, ВсегоСтраниц);
Макет.Параметры.ИтогоКоличествоДней = ИтогоКоличествоДней;
Если ТабличныйДокумент.ВысотаТаблицы > 0 Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ТабличныйДокумент.Вывести(Макет);
КонецПроцедуры
Процедура ВывестиСтрокуЗаявленияОВозмещении_2021(Макет, Выборка, НомерСтроки)
Макет.Параметры["Фамилия" + НомерСтроки] = Выборка.СотрудникФамилия;
Макет.Параметры["Имя" + НомерСтроки] = Выборка.СотрудникИмя;
Макет.Параметры["Отчество" + НомерСтроки] = Выборка.СотрудникОтчество;
Макет.Параметры["СНИЛС" + НомерСтроки] = Выборка.СотрудникСНИЛС;
Макет.Параметры["Период" + НомерСтроки] = Выборка.Месяц;
Макет.Параметры["КоличествоДней" + НомерСтроки] = Выборка.КоличествоДней;
Макет.Параметры["РазмерПособия" + НомерСтроки] = Выборка.СреднедневнойЗаработок;
Макет.Области["Статус" + НомерСтроки].Текст = Выборка.Статус;
КонецПроцедуры
#КонецОбласти
#Область ПФ_MXL_ДополнительныеДниОтпуска_2022
Процедура ВывестиЗаявлениеОВозмещении_2022(Выборка, ТабличныйДокумент, ОбъектыПечати)
МетаданныеМакета = Метаданные().Макеты[Выборка.ИмяМакета];
КонтекстПечати = УправлениеПечатьюБЗК.КонтекстПечати(МетаданныеМакета, , ОбъектыПечати, ТабличныйДокумент);
ТаблицаСтрок = Новый ТаблицаЗначений;
ТаблицаСтрок.Колонки.Добавить("ВместеСоСледующим", Новый ОписаниеТипов("Булево"));
ИменаКолонок = Новый Массив;
Для Каждого КолонкаРезультатаЗапроса Из Выборка.Владелец().Колонки Цикл
ТаблицаСтрок.Колонки.Добавить(КолонкаРезультатаЗапроса.Имя, КолонкаРезультатаЗапроса.ТипЗначения);
ИменаКолонок.Добавить(КолонкаРезультатаЗапроса.Имя);
КонецЦикла;
ИменаКолонок = СтрСоединить(ИменаКолонок, ",");
Пока Выборка.СледующийПоЗначениюПоля("Ссылка") Цикл
Документ = Неопределено;
ТаблицаСтрок.Очистить();
Пока Выборка.Следующий() Цикл
Если Документ = Неопределено Тогда
Документ = Новый Структура(ИменаКолонок);
ЗаполнитьЗначенияСвойств(Документ, Выборка);
КонецЕсли;
Если Выборка.Сотрудник <> Неопределено Тогда
СтрокаТаблицы = ТаблицаСтрок.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаблицы, Выборка);
КонецЕсли;
КонецЦикла;
Если Документ = Неопределено Тогда
Продолжить;
КонецЕсли;
ИтогоСреднедневнойЗаработок = ТаблицаСтрок.Итог("СреднедневнойЗаработок");
ИтогоКоличествоДней = ТаблицаСтрок.Итог("КоличествоДней");
ВсегоПособий = ТаблицаСтрок.Итог("СуммаПособия");
ВсегоВзносов = ТаблицаСтрок.Итог("СуммаВзносов");
ЛистовПриказов = ТаблицаСтрок.Итог("КоличествоСтраниц");
УправлениеПечатьюБЗК.ПередПечатьюОчередногоОбъекта(КонтекстПечати);
Секция = УправлениеПечатьюБЗК.СекцияПечатнойФормы(КонтекстПечати, "Шапка");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.СтраховательНаименование, "СтраховательНаименование");
УправлениеПечатьюБЗК.ВывестиСуммуПоБуквам(Секция, ВсегоПособий + ВсегоВзносов, "ВсегоРасходов");
УправлениеПечатьюБЗК.ВывестиСуммуПоБуквам(Секция, ВсегоВзносов, "ВсегоВзносов");
УправлениеПечатьюБЗК.ВывестиСуммуПоБуквам(Секция, ВсегоПособий, "ВсегоПособий");
КонтекстПечати.ТабличныйДокумент.Вывести(Секция.ТабличныйДокумент);
Если ТаблицаСтрок.Количество() = 0 Тогда
КоличествоПолучателей = 0;
Иначе
МассивСотрудников = КоллекцииБЗК.УникальныеЗначенияКолонки(ТаблицаСтрок, "Сотрудник");
КоллекцииБЗК.УдалитьПустыеЗначенияМассива(МассивСотрудников);
КоличествоПолучателей = МассивСотрудников.Количество();
КонецЕсли;
Для НомерСтроки = ТаблицаСтрок.Количество() + 1 По 3 Цикл
ТаблицаСтрок.Добавить().НомерСтроки = НомерСтроки;
КонецЦикла;
ВсегоСтрок = ТаблицаСтрок.Количество();
ТаблицаСтрок[ВсегоСтрок-1].ВместеСоСледующим = Истина;
Если ВсегоСтрок > 3 Тогда
ЗаВычетомПервойИПоследней = ВсегоСтрок-2;
Остаток = ЗаВычетомПервойИПоследней % 4;
Если Остаток = 0 Тогда
ТаблицаСтрок[1].ВместеСоСледующим = Истина;
ИначеЕсли Остаток = 2 Тогда
Если ВсегоСтрок = 4 Тогда
ТаблицаСтрок[1].ВместеСоСледующим = Истина;
ИначеЕсли ВсегоСтрок = 8 Тогда
ТаблицаСтрок[1].ВместеСоСледующим = Истина;
ТаблицаСтрок[ВсегоСтрок-4].ВместеСоСледующим = Истина;
ТаблицаСтрок[ВсегоСтрок-3].ВместеСоСледующим = Истина;
Иначе
ТаблицаСтрок[ВсегоСтрок-7].ВместеСоСледующим = Истина;
ТаблицаСтрок[ВсегоСтрок-6].ВместеСоСледующим = Истина;
ТаблицаСтрок[ВсегоСтрок-4].ВместеСоСледующим = Истина;
ТаблицаСтрок[ВсегоСтрок-3].ВместеСоСледующим = Истина;
КонецЕсли;
ИначеЕсли Остаток = 3 И ВсегоСтрок > 8 Тогда
ТаблицаСтрок[ВсегоСтрок-4].ВместеСоСледующим = Истина;
ТаблицаСтрок[ВсегоСтрок-3].ВместеСоСледующим = Истина;
КонецЕсли;
КонецЕсли;
Для Каждого СтрокаТаблицы Из ТаблицаСтрок Цикл
Параметры = Новый Структура(КонтекстПечати.ИменаПараметровОбластей.СтрокаТаблицы);
Параметры.НомерСтроки = СтрокаТаблицы.НомерСтроки;
Секция = УправлениеПечатьюБЗК.СекцияПечатнойФормы(КонтекстПечати, "СтрокаТаблицы");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, СтрокаТаблицы.СотрудникФамилия, "СотрудникФамилия");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, СтрокаТаблицы.СотрудникИмя, "СотрудникИмя");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, СтрокаТаблицы.СотрудникОтчество, "СотрудникОтчество");
УправлениеПечатьюБЗК.ВывестиСНИЛСПоБуквам(Секция, СтрокаТаблицы.СотрудникСНИЛС, "СотрудникСНИЛС");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, СтрокаТаблицы.Статус, "СотрудникСтатус");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, СтрокаТаблицы.РебенокФамилия, "РебенокФамилия");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, СтрокаТаблицы.РебенокИмя, "РебенокИмя");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, СтрокаТаблицы.РебенокОтчество, "РебенокОтчество");
УправлениеПечатьюБЗК.ВывестиСНИЛСПоБуквам(Секция, СтрокаТаблицы.РебенокСНИЛС, "РебенокСНИЛС");
УправлениеПечатьюБЗК.ВывестиДатуПоБуквам(Секция, СтрокаТаблицы.РебенокДатаРождения, "РебенокДатаРождения");
УправлениеПечатьюБЗК.ВывестиЧислоПоБуквам(Секция, СтрокаТаблицы.КоличествоДней, "КоличествоДней");
УправлениеПечатьюБЗК.ВывестиСуммуПоБуквам(Секция, СтрокаТаблицы.СреднедневнойЗаработок, "СреднедневнойЗаработок");
Если ЗначениеЗаполнено(СтрокаТаблицы.Месяц) Тогда
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Формат(СтрокаТаблицы.Месяц, "ДФ=MMMM"), "Месяц");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Формат(СтрокаТаблицы.Месяц, "ДФ=yyyy"), "Год");
КонецЕсли;
Секция.ТабличныйДокумент.Области.КонецСтроки.ВместеСоСледующим = СтрокаТаблицы.ВместеСоСледующим;
Секция.ТабличныйДокумент.Параметры.Заполнить(Параметры);
КонтекстПечати.ТабличныйДокумент.Вывести(Секция.ТабличныйДокумент);
КонецЦикла;
Параметры = Новый Структура(КонтекстПечати.ИменаПараметровОбластей.Подвал);
Если ЗначениеЗаполнено(Выборка.ПредставительСФР) Тогда
Параметры.УполномоченныйПредставительДолжность = Строка(Выборка.ДолжностьПредставителяСФР);
Параметры.УполномоченныйПредставительФИО = Строка(Выборка.ПредставительФИО);
Иначе
Параметры.УполномоченныйПредставительДолжность = Строка(Выборка.ДолжностьРуководителя);
Параметры.УполномоченныйПредставительФИО = Строка(Выборка.РуководительФИО);
КонецЕсли;
Секция = УправлениеПечатьюБЗК.СекцияПечатнойФормы(КонтекстПечати, "Подвал");
УправлениеПечатьюБЗК.ВывестиЧислоПоБуквам(Секция, КоличествоПолучателей, "КоличествоПолучателей");
УправлениеПечатьюБЗК.ВывестиЧислоПоБуквам(Секция, ЛистовПриказов, "ЛистовПриказов");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.РегистрационныйНомерФСС, "РегистрационныйНомер");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.ДополнительныйКодФСС, "ДополнительныйКод");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.КодПодчиненностиФСС, "КодПодчиненности");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.ИНН, "ИНН");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.КПП, "КПП");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.СтраховательНаименование, "ПолучательНаименование");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.НаименованиеБанка, "БанкНаименование");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.НомерСчета, "НомерСчета");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.БИКБанка, "БанкБИК");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.НомерЛицевогоСчета, "ЛицевойСчет");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.КБК, "КБК");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.СтраховательПочта, "СтраховательПочта");
УправлениеПечатьюБЗК.ВывестиТелефонПоБуквам(Секция, Документ.СтраховательТелефон, "СтраховательТелефон");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.КодПодчиненностиФСС, "КодТОФ");
Секция.ТабличныйДокумент.Параметры.Заполнить(Параметры);
КонтекстПечати.ТабличныйДокумент.Вывести(Секция.ТабличныйДокумент);
УправлениеПечатьюБЗК.ПослеПечатиОчередногоОбъекта(КонтекстПечати, Выборка.Ссылка);
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#Область ПФ_MXL_ДополнительныеДниОтпуска_2024
Процедура ВывестиЗаявлениеОВозмещении_2024(Выборка, ТабличныйДокумент, ОбъектыПечати)
МетаданныеМакета = Метаданные().Макеты[Выборка.ИмяМакета];
КонтекстПечати = УправлениеПечатьюБЗК.КонтекстПечати(МетаданныеМакета, , ОбъектыПечати, ТабличныйДокумент);
ТаблицаСтрок = Новый ТаблицаЗначений;
ИменаКолонок = Новый Массив;
Для Каждого КолонкаРезультатаЗапроса Из Выборка.Владелец().Колонки Цикл
ТаблицаСтрок.Колонки.Добавить(КолонкаРезультатаЗапроса.Имя, КолонкаРезультатаЗапроса.ТипЗначения);
ИменаКолонок.Добавить(КолонкаРезультатаЗапроса.Имя);
КонецЦикла;
ИменаКолонок = СтрСоединить(ИменаКолонок, ",");
ДобавитьКолонкиНаличияДней(ТаблицаСтрок);
НомерСтроки = 0;
Пока Выборка.СледующийПоЗначениюПоля("Ссылка") Цикл
Документ = Неопределено;
ТаблицаСтрок.Очистить();
Пока Выборка.Следующий() Цикл
Если Документ = Неопределено Тогда
Документ = Новый Структура(ИменаКолонок);
ЗаполнитьЗначенияСвойств(Документ, Выборка);
КонецЕсли;
Если Выборка.Сотрудник <> Неопределено Тогда
СтрокаТаблицы = ТаблицаСтрок.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаблицы, Выборка);
ЗаполнитьФлажкиНаличияДней(СтрокаТаблицы);
КонецЕсли;
КонецЦикла;
Если Документ = Неопределено Тогда
Продолжить;
КонецЕсли;
УправлениеПечатьюБЗК.ПередПечатьюОчередногоОбъекта(КонтекстПечати);
ВывестиШапкуДокумента_2024(КонтекстПечати, Документ, ТаблицаСтрок);
ИменаПолейШапки = "СотрудникФамилия, СотрудникИмя, СотрудникОтчество, СотрудникСНИЛС, Статус,
|РебенокФамилия, РебенокИмя, РебенокОтчество, РебенокСНИЛС, РебенокДатаРождения,
|СправкаСерия, СправкаНомер, СправкаДатаВыдачи, СправкаДатаОкончания, СправкаДатаУстановления";
ТаблицаСотрудников = ТаблицаСтрок.Скопировать(, ИменаПолейШапки);
ТаблицаСотрудников.Свернуть(ИменаПолейШапки);
ФильтрПоДаннымШапки = Новый Структура(ИменаПолейШапки);
Для Каждого ДанныеШапкиПоСотруднику Из ТаблицаСотрудников Цикл
НомерСтроки = НомерСтроки + 1;
ЗаполнитьЗначенияСвойств(ФильтрПоДаннымШапки, ДанныеШапкиПоСотруднику);
ТаблицаСтрокПоСотруднику = ТаблицаСтрок.Скопировать(ФильтрПоДаннымШапки);
ТаблицыПоСотруднику = ВложенныеТаблицыПоСотруднику(ТаблицаСтрокПоСотруднику);
ВывестиШапкуСотрудника_2024(КонтекстПечати, ДанныеШапкиПоСотруднику, НомерСтроки);
ВывестиТаблицуПриказов_2024(КонтекстПечати, ТаблицыПоСотруднику.Приказы);
ВывестиТаблицуЗаМесяц_2024(КонтекстПечати, ТаблицыПоСотруднику.ДниЗаМесяц);
ВывестиТаблицуНакопленных_2024(КонтекстПечати, ТаблицыПоСотруднику.Накопленные);
ВывестиТаблицуЗаГод_2024(КонтекстПечати, ТаблицыПоСотруднику.ДниЗаГод);
КонецЦикла;
ВывестиПодвалДокумента_2024(КонтекстПечати, Документ, ТаблицаСтрок);
УправлениеПечатьюБЗК.ПослеПечатиОчередногоОбъекта(КонтекстПечати, Выборка.Ссылка);
КонецЦикла;
КонецПроцедуры
Процедура ДобавитьКолонкиНаличияДней(ТаблицаСтрок) Экспорт
ТаблицаСтрок.Колонки.Добавить("ЕстьПриказы", Новый ОписаниеТипов("Булево"));
ТаблицаСтрок.Колонки.Добавить("ЕстьДниЗаМесяц", Новый ОписаниеТипов("Булево"));
ТаблицаСтрок.Колонки.Добавить("ЕстьНакопленные", Новый ОписаниеТипов("Булево"));
ТаблицаСтрок.Колонки.Добавить("ЕстьДниЗаГод", Новый ОписаниеТипов("Булево"));
КонецПроцедуры
Процедура ЗаполнитьФлажкиНаличияДней(СтрокаТаблицы) Экспорт
СтрокаТаблицы.ЕстьДниЗаМесяц = ЗначениеЗаполнено(СтрокаТаблицы.Месяц)
И ЗначениеЗаполнено(СтрокаТаблицы.КоличествоДней);
СтрокаТаблицы.ЕстьНакопленные = ЗначениеЗаполнено(СтрокаТаблицы.Месяц)
И ЗначениеЗаполнено(СтрокаТаблицы.НакопленоДнейЗаМесяц);
СтрокаТаблицы.ЕстьДниЗаГод = ЗначениеЗаполнено(СтрокаТаблицы.Месяц)
И ЗначениеЗаполнено(СтрокаТаблицы.КоличествоДнейЗаГод);
СтрокаТаблицы.ЕстьПриказы = (СтрокаТаблицы.ЕстьДниЗаМесяц Или СтрокаТаблицы.ЕстьДниЗаГод)
И (ЗначениеЗаполнено(СтрокаТаблицы.ПриказНомер) Или ЗначениеЗаполнено(СтрокаТаблицы.ПриказДата));
КонецПроцедуры
Функция ВложенныеТаблицыПоСотруднику(ТаблицаСтрокПоСотруднику)
Результат = Новый Структура("Приказы, Справки, ДниЗаМесяц, Накопленные, ДниЗаГод");
ВложенныеИменаПолей = "ПриказДата, ПриказНомер";
Фильтр = Новый Структура("ЕстьПриказы", Истина);
Приказы = ТаблицаСтрокПоСотруднику.Скопировать(Фильтр, ВложенныеИменаПолей);
Приказы.Свернуть(ВложенныеИменаПолей);
Приказы.Сортировать(ВложенныеИменаПолей);
Результат.Приказы = Приказы;
ВложенныеИменаПолей = "СправкаСерия, СправкаНомер, СправкаДатаВыдачи, СправкаДатаОкончания, СправкаДатаУстановления";
Справки = ТаблицаСтрокПоСотруднику.Скопировать(, ВложенныеИменаПолей);
Справки.Свернуть(ВложенныеИменаПолей);
Справки.Сортировать(ВложенныеИменаПолей);
Результат.Справки = Справки;
ВложенныеИзмерения = "Месяц, ЕстьДниЗаМесяц, СреднедневнойЗаработок";
ВложенныеРесурсы = "КоличествоДней, КоличествоЧасовЗаМесяц";
Фильтр = Новый Структура("ЕстьДниЗаМесяц", Истина);
ДниЗаМесяц = ТаблицаСтрокПоСотруднику.Скопировать(Фильтр, ВложенныеИзмерения + ", " + ВложенныеРесурсы);
ДниЗаМесяц.Свернуть(ВложенныеИзмерения, ВложенныеРесурсы);
ДниЗаМесяц.Сортировать(ВложенныеИзмерения);
Результат.ДниЗаМесяц = ДниЗаМесяц;
ВложенныеИзмерения = "Месяц, ЕстьНакопленные";
ВложенныеРесурсы = "НакопленоДнейЗаМесяц, НакопленоЧасовЗаМесяц, КоличествоЧасовЗаМесяц";
Фильтр = Новый Структура("ЕстьНакопленные", Истина);
Накопленные = ТаблицаСтрокПоСотруднику.Скопировать(Фильтр, ВложенныеИзмерения + ", " + ВложенныеРесурсы);
Накопленные.Свернуть(ВложенныеИзмерения, ВложенныеРесурсы);
Накопленные.Сортировать(ВложенныеИзмерения);
Результат.Накопленные = Накопленные;
ВложенныеИзмерения = "Месяц, ЕстьДниЗаГод, СреднедневнойЗаработокЗаГод";
ВложенныеРесурсы = "КоличествоДнейЗаГод, КоличествоЧасовЗаГод";
ДниЗаГод = ТаблицаСтрокПоСотруднику.Скопировать(Новый Структура("ЕстьДниЗаГод", Истина));
ДниЗаГод.Свернуть(ВложенныеИзмерения, ВложенныеРесурсы);
ДниЗаГод.Сортировать(ВложенныеИзмерения);
Результат.ДниЗаГод = ДниЗаГод;
Если Результат.ДниЗаГод.Количество() = 0 Тогда
Результат.Накопленные.Очистить();
КонецЕсли;
Возврат Результат;
КонецФункции
Процедура ВывестиШапкуДокумента_2024(КонтекстПечати, Документ, ТаблицаСтрок)
Секция = УправлениеПечатьюБЗК.СекцияПечатнойФормы(КонтекстПечати, "Документ_Шапка");
ИтогоСреднедневнойЗаработок = ТаблицаСтрок.Итог("СреднедневнойЗаработок");
ИтогоКоличествоДней = ТаблицаСтрок.Итог("КоличествоДней");
ВсегоПособий = ТаблицаСтрок.Итог("СуммаПособия");
ВсегоВзносов = ТаблицаСтрок.Итог("СуммаВзносов");
ЛистовПриказов = ТаблицаСтрок.Итог("КоличествоСтраниц");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.СтраховательНаименование, "СтраховательНаименование");
УправлениеПечатьюБЗК.ВывестиСуммуПоБуквам(Секция, ВсегоПособий + ВсегоВзносов, "ВсегоРасходов");
УправлениеПечатьюБЗК.ВывестиСуммуПоБуквам(Секция, ВсегоВзносов, "ВсегоВзносов");
УправлениеПечатьюБЗК.ВывестиСуммуПоБуквам(Секция, ВсегоПособий, "ВсегоПособий");
КонтекстПечати.ТабличныйДокумент.Вывести(Секция.ТабличныйДокумент);
КонецПроцедуры
Процедура ВывестиШапкуСотрудника_2024(КонтекстПечати, ДанныеШапки, НомерСтроки)
РазрешитьДобавлениеСтраницы(КонтекстПечати.ТабличныйДокумент);
Параметры = Новый Структура(КонтекстПечати.ИменаПараметровОбластей.СтрокаТаблицы_Шапка);
Секция = УправлениеПечатьюБЗК.СекцияПечатнойФормы(КонтекстПечати, "СтрокаТаблицы_Шапка");
Параметры.НомерСтроки = НомерСтроки;
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, ДанныеШапки.СотрудникФамилия, "СотрудникФамилия");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, ДанныеШапки.СотрудникИмя, "СотрудникИмя");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, ДанныеШапки.СотрудникОтчество, "СотрудникОтчество");
УправлениеПечатьюБЗК.ВывестиСНИЛСПоБуквам(Секция, ДанныеШапки.СотрудникСНИЛС, "СотрудникСНИЛС");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, ДанныеШапки.Статус, "СотрудникСтатус");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, ДанныеШапки.РебенокФамилия, "РебенокФамилия");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, ДанныеШапки.РебенокИмя, "РебенокИмя");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, ДанныеШапки.РебенокОтчество, "РебенокОтчество");
УправлениеПечатьюБЗК.ВывестиСНИЛСПоБуквам(Секция, ДанныеШапки.РебенокСНИЛС, "РебенокСНИЛС");
УправлениеПечатьюБЗК.ВывестиДатуПоБуквам(Секция, ДанныеШапки.РебенокДатаРождения, "РебенокДатаРождения");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, ДанныеШапки.СправкаНомер, "СправкаНомер");
УправлениеПечатьюБЗК.ВывестиДатуПоБуквам(Секция, ДанныеШапки.СправкаДатаВыдачи, "СправкаДатаВыдачи");
УправлениеПечатьюБЗК.ВывестиДатуПоБуквам(Секция, ДанныеШапки.СправкаДатаОкончания, "СправкаДатаОкончания");
УправлениеПечатьюБЗК.ВывестиДатуПоБуквам(Секция, ДанныеШапки.СправкаДатаУстановления, "СправкаДатаУстановления");
Секция.ТабличныйДокумент.Параметры.Заполнить(Параметры);
КонтекстПечати.ТабличныйДокумент.Вывести(Секция.ТабличныйДокумент);
КонецПроцедуры
Процедура ВывестиТаблицуПриказов_2024(КонтекстПечати, ТаблицаПриказов)
РазрешитьДобавлениеСтраницы(КонтекстПечати.ТабличныйДокумент);
КонтекстПечати.ТабличныйДокумент.Вывести(КонтекстПечати.Макет.ПолучитьОбласть("Приказы_Шапка"));
Если ТаблицаПриказов.Количество() = 0 Тогда
ТаблицаПриказов.Добавить();
ТаблицаПриказов.Добавить();
ТаблицаПриказов.Добавить();
КонецЕсли;
Для Каждого СтрокаПриказа Из ТаблицаПриказов Цикл
Секция = УправлениеПечатьюБЗК.СекцияПечатнойФормы(КонтекстПечати, "Приказы_Строка");
Параметры = Новый Структура(КонтекстПечати.ИменаПараметровОбластей.Приказы_Строка);
Параметры.ПриказНомер = СтрокаПриказа.ПриказНомер;
УправлениеПечатьюБЗК.ВывестиДатуПоБуквам(Секция, СтрокаПриказа.ПриказДата, "ПриказДата");
Секция.ТабличныйДокумент.Параметры.Заполнить(Параметры);
КонтекстПечати.ТабличныйДокумент.Вывести(Секция.ТабличныйДокумент);
КонецЦикла;
КонецПроцедуры
Процедура ВывестиТаблицуЗаМесяц_2024(КонтекстПечати, ДниЗаМесяц)
РазрешитьДобавлениеСтраницы(КонтекстПечати.ТабличныйДокумент);
КонтекстПечати.ТабличныйДокумент.Вывести(КонтекстПечати.Макет.ПолучитьОбласть("ДниЗаМесяц_Шапка"));
Если ДниЗаМесяц.Количество() = 0 Тогда
ДниЗаМесяц.Добавить();
ДниЗаМесяц.Добавить();
ДниЗаМесяц.Добавить();
КонецЕсли;
Для Каждого ВложеннаяСтрока Из ДниЗаМесяц Цикл
Секция = УправлениеПечатьюБЗК.СекцияПечатнойФормы(КонтекстПечати, "ДниЗаМесяц_Строка");
Если ВложеннаяСтрока.ЕстьДниЗаМесяц Тогда
Параметры = Новый Структура(КонтекстПечати.ИменаПараметровОбластей.ДниЗаМесяц_Строка);
Параметры.ДниЗаМесяц_Месяц = Формат(ВложеннаяСтрока.Месяц, "ДФ=MMMM");
Год = Год(ВложеннаяСтрока.Месяц);
КоличествоДней = ВложеннаяСтрока.КоличествоДней;
Заработок = ВложеннаяСтрока.СреднедневнойЗаработок;
УправлениеПечатьюБЗК.ВывестиЧислоПоБуквам(Секция, Год, "ДниЗаМесяц_Год");
УправлениеПечатьюБЗК.ВывестиЧислоПоБуквам(Секция, КоличествоДней, "КоличествоДнейЗаМесяц");
УправлениеПечатьюБЗК.ВывестиСуммуПоБуквам(Секция, Заработок, "ЗаработокЗаМесяц");
Секция.ТабличныйДокумент.Параметры.Заполнить(Параметры);
КонецЕсли;
КонтекстПечати.ТабличныйДокумент.Вывести(Секция.ТабличныйДокумент);
КонецЦикла;
Секция = УправлениеПечатьюБЗК.СекцияПечатнойФормы(КонтекстПечати, "ДниЗаМесяц_Подвал");
КоличествоДнейИтог = ДниЗаМесяц.Итог("КоличествоДней");
Если КоличествоДнейИтог > 0 Тогда
УправлениеПечатьюБЗК.ВывестиЧислоПоБуквам(Секция, КоличествоДнейИтог, "КоличествоДнейЗаМесяцИтог");
КонецЕсли;
КоличествоЧасовИтог = ДниЗаМесяц.Итог("КоличествоЧасовЗаМесяц");
Если КоличествоЧасовИтог > 0 Тогда
УправлениеПечатьюБЗК.ВывестиЧислоПоБуквам(Секция, КоличествоЧасовИтог, "КоличествоЧасовЗаМесяцИтог");
КонецЕсли;
КонтекстПечати.ТабличныйДокумент.Вывести(Секция.ТабличныйДокумент);
КонецПроцедуры
Процедура ВывестиТаблицуНакопленных_2024(КонтекстПечати, Накопленные)
РазрешитьДобавлениеСтраницы(КонтекстПечати.ТабличныйДокумент);
КонтекстПечати.ТабличныйДокумент.Вывести(КонтекстПечати.Макет.ПолучитьОбласть("НакопленныеДни_Шапка"));
Если Накопленные.Количество() = 0 Тогда
Накопленные.Добавить();
Накопленные.Добавить();
Накопленные.Добавить();
КонецЕсли;
Для Каждого ВложеннаяСтрока Из Накопленные Цикл
Секция = УправлениеПечатьюБЗК.СекцияПечатнойФормы(КонтекстПечати, "НакопленныеДни_Строка");
Если ВложеннаяСтрока.ЕстьНакопленные Тогда
Параметры = Новый Структура(КонтекстПечати.ИменаПараметровОбластей.НакопленныеДни_Строка);
Параметры.НакопленныеДни_Месяц = Формат(ВложеннаяСтрока.Месяц, "ДФ=MMMM");
Год = Год(ВложеннаяСтрока.Месяц);
НакопленоДней = ВложеннаяСтрока.НакопленоДнейЗаМесяц;
УправлениеПечатьюБЗК.ВывестиЧислоПоБуквам(Секция, Год, "НакопленныеДни_Год");
УправлениеПечатьюБЗК.ВывестиЧислоПоБуквам(Секция, НакопленоДней, "НакопленоДней");
Секция.ТабличныйДокумент.Параметры.Заполнить(Параметры);
КонецЕсли;
КонтекстПечати.ТабличныйДокумент.Вывести(Секция.ТабличныйДокумент);
КонецЦикла;
Секция = УправлениеПечатьюБЗК.СекцияПечатнойФормы(КонтекстПечати, "НакопленныеДни_Подвал");
НакопленоДнейИтог = Накопленные.Итог("НакопленоДнейЗаМесяц");
Если НакопленоДнейИтог > 0 Тогда
УправлениеПечатьюБЗК.ВывестиЧислоПоБуквам(Секция, НакопленоДнейИтог, "НакопленоДнейИтог");
КонецЕсли;
НакопленоЧасовИтог = Накопленные.Итог("НакопленоЧасовЗаМесяц");
Если НакопленоЧасовИтог > 0 Тогда
УправлениеПечатьюБЗК.ВывестиЧислоПоБуквам(Секция, НакопленоЧасовИтог, "НакопленоЧасовИтог");
КонецЕсли;
КонтекстПечати.ТабличныйДокумент.Вывести(Секция.ТабличныйДокумент);
КонецПроцедуры
Процедура ВывестиТаблицуЗаГод_2024(КонтекстПечати, ДниЗаГод)
РазрешитьДобавлениеСтраницы(КонтекстПечати.ТабличныйДокумент);
КонтекстПечати.ТабличныйДокумент.Вывести(КонтекстПечати.Макет.ПолучитьОбласть("ДниЗаГод_Шапка"));
Если ДниЗаГод.Количество() = 0 Тогда
ДниЗаГод.Добавить();
ДниЗаГод.Добавить();
ДниЗаГод.Добавить();
КонецЕсли;
Для Каждого ВложеннаяСтрока Из ДниЗаГод Цикл
Секция = УправлениеПечатьюБЗК.СекцияПечатнойФормы(КонтекстПечати, "ДниЗаГод_Строка");
Если ВложеннаяСтрока.ЕстьДниЗаГод Тогда
Параметры = Новый Структура(КонтекстПечати.ИменаПараметровОбластей.ДниЗаГод_Строка);
Параметры.ДниЗаГод_Месяц = Формат(ВложеннаяСтрока.Месяц, "ДФ=MMMM");
Год = Год(ВложеннаяСтрока.Месяц);
КоличествоДней = ВложеннаяСтрока.КоличествоДнейЗаГод;
Заработок = ВложеннаяСтрока.СреднедневнойЗаработокЗаГод;
УправлениеПечатьюБЗК.ВывестиЧислоПоБуквам(Секция, Год, "ДниЗаГод_Год");
УправлениеПечатьюБЗК.ВывестиЧислоПоБуквам(Секция, КоличествоДней, "КоличествоДнейЗаГод");
УправлениеПечатьюБЗК.ВывестиСуммуПоБуквам(Секция, Заработок, "ЗаработокЗаГод");
Секция.ТабличныйДокумент.Параметры.Заполнить(Параметры);
КонецЕсли;
КонтекстПечати.ТабличныйДокумент.Вывести(Секция.ТабличныйДокумент);
КонецЦикла;
Секция = УправлениеПечатьюБЗК.СекцияПечатнойФормы(КонтекстПечати, "ДниЗаГод_Подвал");
КоличествоДнейИтог = ДниЗаГод.Итог("КоличествоДнейЗаГод");
Если КоличествоДнейИтог > 0 Тогда
УправлениеПечатьюБЗК.ВывестиЧислоПоБуквам(Секция, КоличествоДнейИтог, "КоличествоДнейЗаГодИтог");
КонецЕсли;
КоличествоЧасовИтог = ДниЗаГод.Итог("КоличествоЧасовЗаГод");
Если КоличествоЧасовИтог > 0 Тогда
УправлениеПечатьюБЗК.ВывестиЧислоПоБуквам(Секция, КоличествоЧасовИтог, "КоличествоЧасовЗаГодИтог");
КонецЕсли;
КонтекстПечати.ТабличныйДокумент.Вывести(Секция.ТабличныйДокумент);
КонецПроцедуры
Процедура ВывестиПодвалДокумента_2024(КонтекстПечати, Документ, ТаблицаСтрок)
РазрешитьДобавлениеСтраницы(КонтекстПечати.ТабличныйДокумент);
КонтекстПечати.ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
Секция = УправлениеПечатьюБЗК.СекцияПечатнойФормы(КонтекстПечати, "Документ_Подвал");
Параметры = Новый Структура(КонтекстПечати.ИменаПараметровОбластей.Документ_Подвал);
МассивСотрудников = КоллекцииБЗК.УникальныеЗначенияКолонки(ТаблицаСтрок, "Сотрудник");
КоллекцииБЗК.УдалитьПустыеЗначенияМассива(МассивСотрудников);
КоличествоПолучателей = МассивСотрудников.Количество();
ЛистовПриказов = ТаблицаСтрок.Итог("КоличествоСтраниц");
УправлениеПечатьюБЗК.ВывестиЧислоПоБуквам(Секция, КоличествоПолучателей, "КоличествоПолучателей");
УправлениеПечатьюБЗК.ВывестиЧислоПоБуквам(Секция, ЛистовПриказов, "ЛистовПриказов");
СЭДОФСС.ВывестиРегистрационныйНомерИДополнительныйКодПоБуквам(Документ, Секция);
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.ИНН, "ИНН");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.КПП, "КПП");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.РуководительФИО, "Руководитель_ФИО");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.ДолжностьРуководителя, "Руководитель_Должность");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.СтраховательНаименование, "ПолучательНаименование");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.НаименованиеБанка, "БанкНаименование");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.НомерСчета, "НомерСчета");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.БИКБанка, "БанкБИК");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.НомерЛицевогоСчета, "ЛицевойСчет");
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.КБК, "КБК");
Если ЗначениеЗаполнено(Документ.ПредставительСФР) Тогда
Параметры.УполномоченныйПредставительДолжность = Строка(Документ.ДолжностьПредставителяСФР);
Параметры.УполномоченныйПредставительФИО = Строка(Документ.ПредставительФИО);
Иначе
Параметры.УполномоченныйПредставительДолжность = Строка(Документ.ДолжностьРуководителя);
Параметры.УполномоченныйПредставительФИО = Строка(Документ.РуководительФИО);
КонецЕсли;
УправлениеПечатьюБЗК.ВывестиПоБуквам(Секция, Документ.СтраховательПочта, "СтраховательПочта");
УправлениеПечатьюБЗК.ВывестиТелефонПоБуквам(Секция, Документ.СтраховательТелефон, "СтраховательТелефон");
Секция.ТабличныйДокумент.Параметры.Заполнить(Параметры);
КонтекстПечати.ТабличныйДокумент.Вывести(Секция.ТабличныйДокумент);
КонецПроцедуры
Процедура РазрешитьДобавлениеСтраницы(ТабличныйДокумент)
ПоследняяСтрока = ТабличныйДокумент.Область(ТабличныйДокумент.ВысотаТаблицы, , ТабличныйДокумент.ВысотаТаблицы);
ПоследняяСтрока.ВместеСоСледующим = Ложь;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область ПриЗаписи
Функция ЕстьДругоеИсправление(ИсправленныйДокумент, ИсключаемаяСсылка) Экспорт
Если Не ЗначениеЗаполнено(ИсправленныйДокумент) Тогда
Возврат Ложь;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| КакимДокументомИсправлен.Ссылка КАК Ссылка,
| КакимДокументомИсправлен.ИсправленныйДокумент КАК ИсправленныйДокумент
|ИЗ
| Документ.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов КАК КакимДокументомИсправлен
|ГДЕ
| КакимДокументомИсправлен.ИсправленныйДокумент = &ИсправленныйДокумент
| И КакимДокументомИсправлен.Ссылка <> &ИсключаемаяСсылка";
Запрос.УстановитьПараметр("ИсправленныйДокумент", ИсправленныйДокумент);
Запрос.УстановитьПараметр("ИсключаемаяСсылка", ИсключаемаяСсылка);
УстановитьПривилегированныйРежим(Истина);
Возврат Не Запрос.Выполнить().Пустой();
КонецФункции
Процедура ОбновитьФлажокИсправлен(ИсправленныйДокумент, Исправлен) Экспорт
Если Не ЗначениеЗаполнено(ИсправленныйДокумент) Тогда
Возврат;
КонецЕсли;
Если Исправлен = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ИсправленныйДокумент, "Исправлен") Тогда
Возврат;
КонецЕсли;
ИсправленныйДокументОбъект = ИсправленныйДокумент.ПолучитьОбъект();
Если ИсправленныйДокументОбъект = Неопределено Или ИсправленныйДокументОбъект.ЭтоНовый() Тогда
Возврат;
КонецЕсли;
ИсправленныйДокументОбъект.Исправлен = Исправлен;
СЭДОФСС.ЗаписатьДокумент(ИсправленныйДокументОбъект, Истина, Ложь, РежимЗаписиДокумента.Запись);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецЕсли