Реестр прямых выплат ФСС / Модуль менеджера

файл
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ПрограммныйИнтерфейс

#Область ДляВызоваИзДругихПодсистем

// СтандартныеПодсистемы.ВерсионированиеОбъектов

// Определяет настройки объекта для подсистемы ВерсионированиеОбъектов.
//
// Параметры:
//  Настройки - Структура - настройки подсистемы.
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт

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

// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов

// СтандартныеПодсистемы.Печать

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

// Конец СтандартныеПодсистемы.Печать

// СтандартныеПодсистемы.УправлениеДоступом

// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
	Ограничение.Текст =
	"РазрешитьЧтениеИзменение
	|ГДЕ
	|	ДляВсехСтрок( ЗначениеРазрешено(ФизическиеЛица.ФизическоеЛицо, NULL КАК ИСТИНА)
	|	) И ЗначениеРазрешено(Организация)";
КонецПроцедуры

// Конец СтандартныеПодсистемы.УправлениеДоступом

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

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

#Область СлужебныйПрограммныйИнтерфейс

#Область РегламентированнаяОтчетность

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

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

#Область СоставДокументов

// Возвращает описание состава документа
//
// Возвращаемое значение:
//  Структура - см. ЗарплатаКадрыСоставДокументов.НовоеОписаниеСоставаОбъекта.
Функция ОписаниеСоставаОбъекта() Экспорт
	
	ОписаниеСостава = ЗарплатаКадрыСоставДокументов.НовоеОписаниеСоставаОбъекта();
	ОписаниеСостава.ЗаполнятьФизическиеЛицаПоСотрудникам = Ложь;
	ОписаниеСостава.ИспользоватьКраткийСостав = Ложь;
	ОписаниеСостава.ЗаполнятьТабличнуюЧастьФизическиеЛицаДокумента = Ложь;
	
	ЗарплатаКадрыСоставДокументов.ДобавитьОписаниеХраненияСотрудниковФизическихЛиц(
		ОписаниеСостава.ОписаниеХраненияСотрудниковФизическихЛиц,
		"ФизическиеЛица",
		"ФизическоеЛицо");
		
	Возврат ОписаниеСостава;

КонецФункции

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

#Область ФиксацияВторичныхДанныхВДокументах

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

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

#Область ОбновлениеИнформационнойБазы

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

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

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

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

#Область ЗащитаПерсональныхДанных

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

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

#Область ФормированиеФайла

Функция ФайлРеестра(Ссылка, УникальныйИдентификатор) Экспорт
	ВыборкаПоШапкеДокумента = ЗапросПоШапкеРеестра(Ссылка).Выполнить().Выбрать();
	ВыборкаПоШапкеДокумента.Следующий();
	
	ИдентификаторФСС = ИдентификаторФСС(ВыборкаПоШапкеДокумента);
	
	ТекстXML = СформироватьФайлРеестра(ВыборкаПоШапкеДокумента, ИдентификаторФСС);
	
	Кодировка = "windows-1251";
	ДвоичныеДанные = ЗарплатаКадры.СтрокаВДвоичныеДанные(ТекстXML, Кодировка, Истина);
	
	ОписаниеФайла = Новый Структура("ИмяФайлаБезРасширения, ИмяФайлаСРасширением, ТекстXML, АдресДвоичныхДанных, Кодировка");
	ОписаниеФайла.ИмяФайлаБезРасширения = ИдентификаторФСС;
	ОписаниеФайла.ИмяФайлаСРасширением  = ОписаниеФайла.ИмяФайлаБезРасширения + ".xml";
	ОписаниеФайла.ТекстXML              = ТекстXML;
	ОписаниеФайла.АдресДвоичныхДанных   = ПоместитьВоВременноеХранилище(ДвоичныеДанные, УникальныйИдентификатор);
	ОписаниеФайла.Кодировка             = Кодировка;
	
	Возврат ОписаниеФайла;
КонецФункции

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

Функция СформироватьФайлРеестра(ВыборкаПоШапкеДокумента, ИдентификаторФСС)
	РегистрационныйНомерДляФСС = УчетПособийСоциальногоСтрахованияКлиентСервер.РегистрационныйНомерДляОбменаФСС(
		ВыборкаПоШапкеДокумента);
	
	ROWSET = ПрямыеВыплатыПособийСоциальногоСтрахования.КорневойЭлементРеестраПилотногоПроектаФСС();
	ROWSET.author           = ?(ЗначениеЗаполнено(ВыборкаПоШапкеДокумента.ФИОСоставителя), ВыборкаПоШапкеДокумента.ФИОСоставителя, "");
	ROWSET.version          = "1.7.7";
	ROWSET.software         = Лев(РегламентированнаяОтчетность.НазваниеПрограммы(), 255);
	ROWSET.version_software = Лев(Метаданные.Версия, 15);
	ROWSET.phone            = ВыборкаПоШапкеДокумента.ТелефонСоставителя;
	ROWSET.email            = ВыборкаПоШапкеДокумента.АдресЭлектроннойПочтыСоставителя;
	ROWSET.EMPL_REG_NO      = РегистрационныйНомерДляФСС;
	УстановитьЗначениеЕслиЗаполнено(ROWSET.EMPL_OGRN, ВыборкаПоШапкеДокумента.ОГРНОрганизации);
	УстановитьЗначениеЕслиЗаполнено(ROWSET.EMPL_KPP,  ВыборкаПоШапкеДокумента.КППОрганизации);
	УстановитьЗначениеЕслиЗаполнено(ROWSET.EMPL_INN,  ВыборкаПоШапкеДокумента.ИННОрганизации);
	
	СписокROW = ПрямыеВыплатыПособийСоциальногоСтрахования.СписокЭлементовРеестраПилотногоПроектаФСС(ROWSET);
	
	ВыборкаСтрок       = ЗапросПоСтрокамРеестра(ВыборкаПоШапкеДокумента).Выполнить().Выбрать();
	ИсключаемыеПериоды = ЗапросПоИсключаемымПериодам(ВыборкаПоШапкеДокумента).Выполнить().Выгрузить();
	ПриостановленияТД  = ЗапросПоПриостановлениямТД(ВыборкаПоШапкеДокумента).Выполнить().Выгрузить();
	
	НомерДокументаВПачке = 0;
	Пока ВыборкаСтрок.Следующий() Цикл
		НомерДокументаВПачке = НомерДокументаВПачке + 1;
		
		ROW = ПрямыеВыплатыПособийСоциальногоСтрахования.ЭлементРеестраПилотногоПроектаФСС(ROWSET);
		ROW.BATCH_NO       = ИдентификаторФСС + ":" + Формат(НомерДокументаВПачке, "ЧЦ=10; ЧГ=");
		ROW.EMPLOYER       = ВыборкаПоШапкеДокумента.ОрганизацияСокращенно;
		ROW.EMPL_REG_NO    = РегистрационныйНомерДляФСС;
		ROW.EMPL_PARENT_NO = ВыборкаПоШапкеДокумента.КодПодчиненностиФСС;
		ROW.APPROVE1       = ВыборкаПоШапкеДокумента.ФИОРуководителя;
		УстановитьЗначениеЕслиЗаполнено(ROW.EMPL_OGRN,     ВыборкаПоШапкеДокумента.ОГРНОрганизации);
		УстановитьЗначениеЕслиЗаполнено(ROW.EMPL_KPP,      ВыборкаПоШапкеДокумента.КППОрганизации);
		УстановитьЗначениеЕслиЗаполнено(ROW.EMPL_INN,      ВыборкаПоШапкеДокумента.ИННОрганизации);
		УстановитьЗначениеЕслиЗаполнено(ROW.APPROVE2,      ВыборкаПоШапкеДокумента.ФИОГлавногоБухгалтера);
		УстановитьЗначениеЕслиЗаполнено(ROW.APPROVE1_ROLE, ВыборкаПоШапкеДокумента.ДолжностьРуководителя);
		
		ЗаполнитьСтрокуРеестра(ROW, ВыборкаСтрок);
		ЗаполнитьИсключаемыеПериодыВСтрокеРеестра(ROW, ВыборкаСтрок, ИсключаемыеПериоды);
		ЗаполнитьПриостановленияТДВСтрокеРеестра(ROW, ВыборкаСтрок, ПриостановленияТД);
		ЗаполнитьСведенияПо20ФЗВСтрокеРеестра(ROW, ВыборкаСтрок);
		
		СписокROW.Добавить(ROW);
		
	КонецЦикла;
	
	СтрокаXML = ПрямыеВыплатыПособийСоциальногоСтрахования.ЗаписатьРеестрВСтрокуXML(ROWSET);
	
	Возврат СтрокаXML;
	
КонецФункции 

Процедура ЗаполнитьСтрокуРеестра(ROW, СтруктураДанных)
	
	ROW.TYPE_INFO = Число(СтруктураДанных.Перерасчет);
	Если СтруктураДанных.Перерасчет Тогда
		ROW.RECALC_REASON_CODE = Число(СтруктураДанных.КодПричиныПерерасчета);
	КонецЕсли;
	
	Если СтруктураДанных.ВидВыплаты = "1" Или СтруктураДанных.ВидВыплаты = "2" Тогда
		ROW.FSS_PAYMENT_FLAG = ?(ЗначениеЗаполнено(СтруктураДанных.ДатаНачалаОплаты), 1, 0);
	КонецЕсли;
	
	ROW.DOC_TYPE   = СтруктураДанных.ВидВыплаты;
	ROW.DOC_DT1    = СтруктураДанных.ДатаПредставленияПакетаДокументов;
	ROW.SNILS      = СтрЗаменить(СтрЗаменить(СтруктураДанных.СНИЛСПолучателя, "-","")," ","");
	ROW.SURNAME    = СтруктураДанных.Фамилия;
	ROW.NAME       = СтруктураДанных.Имя;
	ROW.PATRONIMIC = СтруктураДанных.Отчество;
	УстановитьЗначениеЕслиЗаполнено(ROW.INN_PERSON, СтруктураДанных.ИННПолучателя);
	
	ЗаполнитьСтатусНалогоплательщикаВСтрокеРеестра(ROW, СтруктураДанных);
	
	ROW.RESIDENT_CODE = СтруктураДанных.КодСтраны;
	ROW.BIRTHDAY      = СтруктураДанных.ДатаРождения;
	ROW.GENDER        = Число(СтруктураДанных.Пол = Перечисления.ПолФизическогоЛица.Женский);
	
	ROW.ID_TYPE = СтруктураДанных.УдостоверениеЛичностиКодМВД;
	ROW.ID_NO   = СокрЛПД(СтруктураДанных.СерияУдостоверенияЛичности + " " + СтруктураДанных.НомерУдостоверенияЛичности);
	ROW.ID_DT   = СтруктураДанных.ДатаВыдачиУдостоверенияЛичности;
	ROW.ID_DEPT = СокрЛПД(СтруктураДанных.КемВыданоУдостоверениеЛичности);
	УстановитьДатуЕслиЗаполнена(ROW.ID1_FN_DT, СтруктураДанных.УдостоверениеЛичностиСрокДействия);
	
	Если ЗначениеЗаполнено(СтруктураДанных.Гражданство)
		И СтруктураДанных.Гражданство <> ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.СтраныМира.Россия")
		И (ЗначениеЗаполнено(СтруктураДанных.СерияДокументаНаПроживание)
			Или ЗначениеЗаполнено(СтруктураДанных.НомерДокументаНаПроживание)
			Или ЗначениеЗаполнено(СтруктураДанных.ДатаВыдачиДокументаНаПроживание)) Тогда
		ROW.ID3_TYPE = СтруктураДанных.КодМВДДокументаНаПроживание;
		СерияНомер = СокрЛПД(СтруктураДанных.СерияДокументаНаПроживание + " " + СтруктураДанных.НомерДокументаНаПроживание);
		УстановитьЗначениеЕслиЗаполнено(ROW.ID3_NO, СерияНомер);
		УстановитьДатуЕслиЗаполнена(ROW.ID3_DT, СтруктураДанных.ДатаВыдачиДокументаНаПроживание);
	КонецЕсли;
	
	ROW.OWNER_FLAG = 1;
	ROW.EMPL_FLAG = Число(Не СтруктураДанных.Совместительство);
	
	HOLID_TYPE = Перечисления.ОснованияПрекращенияПособийПоУходу.ЗначениеЧислом(
		СтруктураДанных.ДосрочноеПрекращениеОтпускаПоУходуТипПриказа);
	Если HOLID_TYPE <> Неопределено Тогда
		ROW.HOLID_TYPE  = HOLID_TYPE;
		ROW.HOLID_NO    = СтруктураДанных.ДосрочноеПрекращениеОтпускаПоУходуНомерПриказа;
		ROW.HOLID_DT    = СтруктураДанных.ДосрочноеПрекращениеОтпускаПоУходуДатаПриказа;
		ROW.HOLID_DT_EX = СтруктураДанных.ДосрочноеПрекращениеОтпускаПоУходуДатаПрекращенияОплаты;
	КонецЕсли;
	
	// Извещение о представлении недостающих сведений в ФСС;
	// Решение об отказе в назначении пособия:
	Если СтруктураДанных.ИзвещениеИзФССИспользование Тогда
		ROW.RESP_NO = СтруктураДанных.ИзвещениеИзФССНомер;
		ROW.RESP_DT = СтруктураДанных.ИзвещениеИзФССДата;
	КонецЕсли;
	
	Если СтруктураДанных.СпособВыплатыПособия = Перечисления.СпособыВыплатыПособия.ПочтовымПереводом Тогда
		ROW.PAYMENT_TYPE  = 0; // Способ выплаты: почтовый перевод.
		ОписаниеАдреса    = СтруктураАдреса(СтруктураДанных.АдресПолучателяФактический);
		ROW.POST_INDEX    = ОписаниеАдреса.Индекс;
		ROW.ADDR_A1       = ОписаниеАдреса.Регион;
		ROW.ADDR_A2       = ОписаниеАдреса.Район;
		ROW.ADDR_A3       = ОписаниеАдреса.Город;
		ROW.ADDR_A4       = ОписаниеАдреса.НаселенныйПункт;
		ROW.ADDR_PLAN     = ОписаниеАдреса.Территория;
		ROW.ADDR_A5       = ОписаниеАдреса.Улица;
		ROW.ADDR_HOUSE    = ОписаниеАдреса.Дом;
		ROW.ADDR_BUILDING = ОписаниеАдреса.Корпус;
		ROW.ADDR_FLAT     = ОписаниеАдреса.Квартира;
		ROW.ADDR_KLADR    = СтруктураДанных.АдресПолучателяФактическийКодКЛАДР;
		ROW.ADDR_GUID     = СтруктураДанных.АдресПолучателяФактическийИдентификаторФИАС;
	ИначеЕсли СтруктураДанных.СпособВыплатыПособия = Перечисления.СпособыВыплатыПособия.ЧерезБанк Тогда
		ROW.PAYMENT_TYPE = 1; // Способ выплаты: банковский счет (расчетный счет).
		ROW.ACCOUNT_BIC  = СтруктураДанных.БИКБанка;
		ROW.ACCOUNT_NAME = СтруктураДанных.НаименованиеБанка;
		ROW.ACCOUNT      = СтруктураДанных.НомерЛицевогоСчета;
	ИначеЕсли СтруктураДанных.СпособВыплатыПособия = Перечисления.СпособыВыплатыПособия.НаКартуМИР Тогда
		ROW.PAYMENT_TYPE = 2; // Способ выплаты: банковский счет (карта МИР).
		ROW.PAYCARD_NUM  = БанковскиеКарты.ПолныйНомерКарты(СтруктураДанных.КартаМИР);
	КонецЕсли;
	
	Если ЗначениеЗаполнено(СтруктураДанных.ТелефонПолучателя) Тогда
		СтруктураТелефона = КонтактнаяИнформацияБЗК.СтруктураТелефона(СтруктураДанных.ТелефонПолучателя);
		Если ЗначениеЗаполнено(СтруктураТелефона.Представление) Тогда
			ROW.PERSON_PHONE = КонтактнаяИнформацияБЗК.ПредставлениеТелефона(СтруктураТелефона, 30);
		КонецЕсли;
	КонецЕсли;
	
	Если ЗначениеЗаполнено(СтруктураДанных.АдресПолучателяРегистрации) Тогда
		Если ROW.RESIDENT_FLAG = 1 Тогда
			ОписаниеАдреса = СтруктураАдреса(СтруктураДанных.АдресПолучателяРегистрации);
			ROW.POST_INDEX2    = ОписаниеАдреса.Индекс;
			ROW.ADDR2_A1       = ОписаниеАдреса.Регион;
			ROW.ADDR2_A2       = ОписаниеАдреса.Район;
			ROW.ADDR2_A3       = ОписаниеАдреса.Город;
			ROW.ADDR2_A4       = ОписаниеАдреса.НаселенныйПункт;
			ROW.ADDR2_PLAN     = ОписаниеАдреса.Территория;
			ROW.ADDR2_A5       = ОписаниеАдреса.Улица;
			ROW.ADDR2_HOUSE    = ОписаниеАдреса.Дом;
			ROW.ADDR2_BUILDING = ОписаниеАдреса.Корпус;
			ROW.ADDR2_FLAT     = ОписаниеАдреса.Квартира;
			ROW.ADDR2_KLADR    = СтруктураДанных.АдресПолучателяРегистрацииКодКЛАДР;
			ROW.ADDR2_GUID     = СтруктураДанных.АдресПолучателяРегистрацииИдентификаторФИАС;
		Иначе
			ROW.ADDR2 = УправлениеКонтактнойИнформацией.ПредставлениеКонтактнойИнформации(
				СтруктураДанных.АдресПолучателяРегистрации,
				КадровыйУчет.ВидКонтактнойИнформацииАдресПоПропискеФизическиеЛица());
		КонецЕсли;
	КонецЕсли;
	
	Если СтруктураДанных.РайонныйКоэффициент >= 1.10 И СтруктураДанных.РайонныйКоэффициент <= 3 Тогда
		ROW.KF_REG = СтруктураДанных.РайонныйКоэффициент * 100;
	Иначе
		ROW.KF_REG = 100;
	КонецЕсли;
	
	Если СтруктураДанных.ВидВыплаты = "1" Или СтруктураДанных.ВидВыплаты = "2" Тогда
		Если ЗначениеЗаполнено(СтруктураДанных.ПериодПростояС1) Или ЗначениеЗаполнено(СтруктураДанных.ПериодПростояПо1)
			Или ЗначениеЗаполнено(СтруктураДанных.ПериодПростояС2) Или ЗначениеЗаполнено(СтруктураДанных.ПериодПростояПо2) Тогда
			
			ТипPERIODS = ROW.Свойства().Получить("PERIODS").Тип;
			PERIODS = ФабрикаXDTO.Создать(ТипPERIODS);
			
			ТипPERIOD = PERIODS.Свойства().Получить("PERIOD").Тип;
			
			Если ЗначениеЗаполнено(СтруктураДанных.ПериодПростояС1) Или ЗначениеЗаполнено(СтруктураДанных.ПериодПростояПо1) Тогда
				
				PERIOD = ФабрикаXDTO.Создать(ТипPERIOD);
				
				PERIOD.START_DATE   = XMLДатаДляРеестра(СтруктураДанных.ПериодПростояС1);
				PERIOD.END_DATE     = XMLДатаДляРеестра(СтруктураДанных.ПериодПростояПо1);
				PERIOD.IDLE_AVERAGE = СтруктураДанных.СреднийЗаработокНаПериодПростоя1;
				
				PERIODS.PERIOD.Добавить(PERIOD);
				
			КонецЕсли;
			
			Если ЗначениеЗаполнено(СтруктураДанных.ПериодПростояС2) Или ЗначениеЗаполнено(СтруктураДанных.ПериодПростояПо2) Тогда
				
				PERIOD = ФабрикаXDTO.Создать(ТипPERIOD);
				
				PERIOD.START_DATE   = XMLДатаДляРеестра(СтруктураДанных.ПериодПростояС2);
				PERIOD.END_DATE     = XMLДатаДляРеестра(СтруктураДанных.ПериодПростояПо2);
				PERIOD.IDLE_AVERAGE = СтруктураДанных.СреднийЗаработокНаПериодПростоя2;
				
				PERIODS.PERIOD.Добавить(PERIOD);
				
			КонецЕсли;
			
			ROW.PERIODS.Добавить(PERIODS);
			
		КонецЕсли;
		
		НестраховойСтаж = УчетПособийСоциальногоСтрахования.НестраховойСтаж(СтруктураДанных);
		Если НестраховойСтаж.Лет <> 0 Или НестраховойСтаж.Месяцев <> 0 Тогда
			ROW.INSUR_YY = СтруктураДанных.СтажРасширенныйЛет;
			ROW.INSUR_MM = СтруктураДанных.СтажРасширенныйМесяцев;
			ROW.NOT_INSUR_YY = НестраховойСтаж.Лет;
			ROW.NOT_INSUR_MM = НестраховойСтаж.Месяцев;
		Иначе
			ROW.INSUR_YY = СтруктураДанных.СтажЛет;
			ROW.INSUR_MM = СтруктураДанных.СтажМесяцев;
		КонецЕсли;
		
		ROW.LN_CODE = СтруктураДанных.НомерЛисткаНетрудоспособности;
		Если СтруктураДанных.ЭтоЭЛН Тогда
			ROW.LN_TYPE = 1;
		ИначеЕсли ФорматНомераЛНСоответствуетКоду2(СтруктураДанных.НомерЛисткаНетрудоспособности) Тогда
			ROW.LN_TYPE = 2;
			Если ЗначениеЗаполнено(СтруктураДанных.AvgSal) Тогда
				ROW.AVG_SAL = СтруктураДанных.AvgSal;
			КонецЕсли;
		Иначе
			ROW.LN_TYPE = 0;
		КонецЕсли;
		
		Если ЗначениеЗаполнено(СтруктураДанных.ПоУходуФИО1) Тогда
			УстановитьЗначениеЕслиЗаполнено(ROW.SERV1_DAYS, СтруктураДанных.УходЗаРодственникомИспользованоДней1);
		КонецЕсли;
		Если ЗначениеЗаполнено(СтруктураДанных.ПоУходуФИО2) Тогда
			УстановитьЗначениеЕслиЗаполнено(ROW.SERV2_DAYS, СтруктураДанных.УходЗаРодственникомИспользованоДней2);
		КонецЕсли;
		
		ROW.CALC_CONDITION1 = СтруктураДанных.УсловияИсчисленияКод1;
		ROW.CALC_CONDITION2 = СтруктураДанных.УсловияИсчисленияКод2;
		ROW.CALC_CONDITION3 = СтруктураДанных.УсловияИсчисленияКод3;
		Если СтруктураДанных.УсловияИсчисленияКод1 = "43"
			Или СтруктураДанных.УсловияИсчисленияКод2 = "43"
			Или СтруктураДанных.УсловияИсчисленияКод3 = "43" Тогда
			ЗаполнитьПричинуРадиационногоВоздействия(ROW, СтруктураДанных);
		КонецЕсли;
		УстановитьДатуЕслиЗаполнена(ROW.FORM1_DT, СтруктураДанных.ДатаАктаФормыН1);
		УстановитьДатуЕслиЗаполнена(ROW.RETURN_DATE_EMPL, СтруктураДанных.ДатаНачалаРаботы);
		Если ЗначениеЗаполнено(СтруктураДанных.СрочныйДоговорС) И ЗначениеЗаполнено(СтруктураДанных.СрочныйДоговорПо) Тогда
			ROW.WORK_CONTRACT_START_DT  = XMLДатаДляРеестра(СтруктураДанных.СрочныйДоговорС);
			ROW.WORK_CONTRACT_FINISH_DT = XMLДатаДляРеестра(СтруктураДанных.СрочныйДоговорПо);
		КонецЕсли;
		Если ЗначениеЗаполнено(СтруктураДанных.ДатаНачалаОплаты) Тогда
			ROW.DT1 = XMLДатаДляРеестра(СтруктураДанных.ДатаНачалаОплаты);
			ROW.DT2 = XMLДатаДляРеестра(СтруктураДанных.ДатаОкончанияОплаты);
		КонецЕсли;
		УстановитьЗначениеЕслиЗаполнено(ROW.EMPL_PAYMENT, СтруктураДанных.СуммаПособияРаботодателя);
		УстановитьЗначениеЕслиЗаполнено(ROW.FSS_PAYMENT, СтруктураДанных.СуммаПособияФСС);
		УстановитьЗначениеЕслиЗаполнено(ROW.PAYMENT, СтруктураДанных.СуммаПособияВсего);
	КонецЕсли;
	
	УстановитьЗначениеЕслиЗаполнено(ROW.EMPL_NOTE, СтруктураДанных.ИнаяИнформация);
	
	ЗаполнитьСправкуОПостановкеНаУчетВРанниеСрокиБеременности(ROW, СтруктураДанных);
	
	ЗаполнитьСведенияОЛисткеНетрудоспособностиВСтрокеРеестра(ROW, СтруктураДанных);
	
	ЗаполнитьКоличествоОплаченныхДнейНетрудоспособностиИнвалида(ROW, СтруктураДанных);
	
	Если СтруктураДанных.ВидВыплаты = "1" Или СтруктураДанных.ВидВыплаты = "2" Или СтруктураДанных.ВидВыплаты = "5" Тогда
		ROW.BASE_AVG_DAILY_SAL = СтруктураДанных.СреднийЗаработокЗаРасчетныйПериод;
		Если СтруктураДанных.ПорядокРасчетаСреднегоЗаработка = Перечисления.СпособыРасчетаСреднегоЗаработкаДляОплатыПособия.СреднийЗаработок Тогда
			ROW.YEAR1 = СтруктураДанных.ПервыйГодРасчета;
			ROW.YEAR2 = СтруктураДанных.ВторойГодРасчета;
			
			Если СтруктураДанных.ЗамененыКалендарныеГодыРасчетаСреднегоЗаработка Тогда
				ROW.YEAR_CHANGE_FLAG = 1;
				ROW.YEAR1_OLD = СтруктураДанных.ЗамененныйПервыйГодРасчета;
				ROW.YEAR2_OLD = СтруктураДанных.ЗамененныйВторойГодРасчета;
			Иначе
				ROW.YEAR_CHANGE_FLAG = 0;
			КонецЕсли;
			
			ROW.BASE_CALC_DAYS = СтруктураДанных.КалендарныхДнейРасчетногоПериода;
			ROW.BASE_SUM1 = СтруктураДанных.ЗаработокПервыйГодРасчета;
			ROW.BASE_SUM2 = СтруктураДанных.ЗаработокВторойГодРасчета;
			ROW.BASE_AVG_SAL = СреднийЗаработокЗаДваКалендарныхГода(СтруктураДанных);
		КонецЕсли;
		Если СтруктураДанных.ДоляВремени > 0 И СтруктураДанных.ДоляВремени < 1 Тогда
			ROW.KF_SHORT_DAY = Окр(СтруктураДанных.ДоляВремени, 3);
		Иначе
			ROW.KF_SHORT_DAY = 1;
		КонецЕсли;
	КонецЕсли;
	
	Если СтруктураДанных.ВидВыплаты = "4" Тогда // Единовременное пособие при рождении ребенка.
		
		Если ЗначениеЗаполнено(СтруктураДанных.ВидСправкиОРожденииРебенка)
			И ЗначениеЗаполнено(СтруктураДанных.НомерСправки)
			И ЗначениеЗаполнено(СтруктураДанных.ДатаСправки) Тогда
			
			ROW.REF_TYPE = Перечисления.ФормыСправкиОРожденииРебенка.КодЗначения(СтруктураДанных.ВидСправкиОРожденииРебенка);
			ROW.REF_24_NO = СтруктураДанных.НомерСправки;
			ROW.REF_24_DT = XMLДатаДляРеестра(СтруктураДанных.ДатаСправки);
			
		Иначе
			
			Если ЗначениеЗаполнено(СтруктураДанных.ДатаПодтверждающегоДокумента)
				И СтруктураДанных.ВидПодтверждающегоДокумента <> Перечисления.ВидыПодтверждающихДокументовОтпускаПоУходу.РешениеОбУстановленииОпеки Тогда
				ROW.O_CERT_NO = СокрЛПД(СтруктураДанных.СерияНомерПодтверждающегоДокумента);
				ROW.O_CERT_DT = XMLДатаДляРеестра(СтруктураДанных.ДатаПодтверждающегоДокумента);
			Иначе
				ROW.O_CERT_NO = ?(ЗначениеЗаполнено(СтруктураДанных.НомерИногоПодтвержденияРождения),
					СокрЛПД(СтруктураДанных.НомерИногоПодтвержденияРождения),
					"00000000");
				ROW.O_CERT_DT = ?(ЗначениеЗаполнено(СтруктураДанных.ДатаИногоПодтвержденияРождения), 
					XMLДатаДляРеестра(СтруктураДанных.ДатаИногоПодтвержденияРождения),
					XMLДатаДляРеестра(СтруктураДанных.ДатаРожденияРебенка));
			КонецЕсли;
			
		КонецЕсли;
		Если ЗначениеЗаполнено(СтруктураДанных.НомерДоговораОПередачеНаВоспитание) И ЗначениеЗаполнено(СтруктураДанных.ДатаДоговораОПередачеНаВоспитание) Тогда
			ROW.REF_FAMILY_NO = СтруктураДанных.НомерДоговораОПередачеНаВоспитание;
			ROW.REF_FAMILY_DT = XMLДатаДляРеестра(СтруктураДанных.ДатаДоговораОПередачеНаВоспитание);
		КонецЕсли;
		ROW.REF_NPAY_OTHER_NO = СтруктураДанных.НомерСправкиОтДругогоРодителя;
		ROW.REF_NPAY_OTHER_DT = XMLДатаДляРеестра(СтруктураДанных.ДатаСправкиОтДругогоРодителя); 
		
	КонецЕсли;
	
	Если СтруктураДанных.ВидВыплаты = "2" Или СтруктураДанных.ВидВыплаты = "5" Тогда
		ROW.HOLID_DT_ST  = XMLДатаДляРеестра(СтруктураДанных.ДатаНачала);
		ROW.HOLID_DT_FN  = XMLДатаДляРеестра(СтруктураДанных.ДатаОкончания);
		ROW.HOLID_ORD_NO = СтруктураДанных.НомерПриказаНаОтпускПоУходуЗаРебенком;
		ROW.HOLID_ORD_DT = XMLДатаДляРеестра(СтруктураДанных.ДатаПриказаНаОтпускПоУходуЗаРебенком);
	КонецЕсли;
	
	Если СтруктураДанных.ВидВыплаты = "4" Или СтруктураДанных.ВидВыплаты = "5" Тогда
		ROW.CERT_BR         = XMLДатаДляРеестра(СтруктураДанных.ДатаРожденияРебенка);
		ROW.CERT_SURNAME    = СтруктураДанных.ФамилияРебенка;
		ROW.CERT_NAME       = СтруктураДанных.ИмяРебенка;
		ROW.CERT_PATRONIMIC = СтруктураДанных.ОтчествоРебенка;
		Если ЗначениеЗаполнено(СтруктураДанных.УсыновлениеОпека) Тогда
			ROW.WARD_FLAG   = СтруктураДанных.УсыновлениеОпека;
			ROW.WARD_REF_NO = СтруктураДанных.УсыновлениеОпекаСерияНомер;
			ROW.WARD_REF_DT = XMLДатаДляРеестра(СтруктураДанных.УсыновлениеОпекаДатаВыдачи);
		КонецЕсли;
	КонецЕсли;
	
	Если СтруктураДанных.ВидВыплаты = "5" Тогда
		
		ROW.MULTPATR            = Число(СтруктураДанных.ОдновременныйУходЗаНесколькимиДетьми);
		ROW.CHILD_SER           = СтруктураДанных.Очередность;
		ROW.MH_OUT              = Число(СтруктураДанных.НаличиеРешенияСудаОЛишенииПрав);
		ROW.OTHER_CHILD_FLAG_DT = Число(СтруктураДанных.НаличиеСвидетельстваОСмертиПредыдущихДетей);
		ROW.OTHER_CHILD_FLAG_BR = Число(СтруктураДанных.НаличиеОдногоИзДокументовНаПредыдущихДетей);
		
		Если СтруктураДанных.ВидПодтверждающегоДокумента = Перечисления.ВидыПодтверждающихДокументовОтпускаПоУходу.СвидетельствоОРождении Тогда
			ROW.CERT_NO = СокрЛПД(СтруктураДанных.СерияНомерПодтверждающегоДокумента);
			ROW.CERT_DT = XMLДатаДляРеестра(СтруктураДанных.ДатаПодтверждающегоДокумента);
		ИначеЕсли ЗначениеЗаполнено(СтруктураДанных.ДатаПодтверждающегоДокумента)
			И СтруктураДанных.ВидПодтверждающегоДокумента <> Перечисления.ВидыПодтверждающихДокументовОтпускаПоУходу.РешениеОбУстановленииОпеки Тогда
			ROW.O_CERT_NO = СокрЛПД(СтруктураДанных.СерияНомерПодтверждающегоДокумента);
			ROW.O_CERT_DT = XMLДатаДляРеестра(СтруктураДанных.ДатаПодтверждающегоДокумента);
		Иначе
			ROW.O_CERT_NO = ?(ЗначениеЗаполнено(СтруктураДанных.НомерИногоПодтвержденияРождения),
				СокрЛПД(СтруктураДанных.НомерИногоПодтвержденияРождения),
				"00000000");
			ROW.O_CERT_DT = ?(ЗначениеЗаполнено(СтруктураДанных.ДатаИногоПодтвержденияРождения), 
				XMLДатаДляРеестра(СтруктураДанных.ДатаИногоПодтвержденияРождения),
				XMLДатаДляРеестра(СтруктураДанных.ДатаРожденияРебенка));
		КонецЕсли;
		Если СтруктураДанных.ОдновременныйУходЗаНесколькимиДетьми Тогда
			ROW.AVG_SAL = Окр(СтруктураДанных.СреднийЗаработокЗаРасчетныйПериод * 30.4, 2);
		КонецЕсли;
		Если ЗначениеЗаполнено(СтруктураДанных.НомерПриказаОЗаменеПослеродовогоОтпуска) И ЗначениеЗаполнено(СтруктураДанных.ДатаПриказаОЗаменеПослеродовогоОтпуска) Тогда
			ROW.HOLID_CH_ORD_NO = СтруктураДанных.НомерПриказаОЗаменеПослеродовогоОтпуска;
			ROW.HOLID_CH_ORD_DT = XMLДатаДляРеестра(СтруктураДанных.ДатаПриказаОЗаменеПослеродовогоОтпуска);
		КонецЕсли;
		Если ЗначениеЗаполнено(СтруктураДанных.НомерСправкиОНеполученииПособияОтОтца) И ЗначениеЗаполнено(СтруктураДанных.ДатаСправкиОНеполученииПособияОтОтца) Тогда
			ROW.REF_NPAY_FATHER_NO = СтруктураДанных.НомерСправкиОНеполученииПособияОтОтца;
			ROW.REF_NPAY_FATHER_DT = XMLДатаДляРеестра(СтруктураДанных.ДатаСправкиОНеполученииПособияОтОтца);
		КонецЕсли;
		Если ЗначениеЗаполнено(СтруктураДанных.НомерСправкиОНеполученииПособияОтМатери) И ЗначениеЗаполнено(СтруктураДанных.ДатаСправкиОНеполученииПособияОтМатери) Тогда
			ROW.REF_NPAY_MOTHER_NO = СтруктураДанных.НомерСправкиОНеполученииПособияОтМатери;
			ROW.REF_NPAY_MOTHER_DT = XMLДатаДляРеестра(СтруктураДанных.ДатаСправкиОНеполученииПособияОтМатери);
		КонецЕсли;
		Если ЗначениеЗаполнено(СтруктураДанных.НомерСправкиПоДругимМестамРаботы) И ЗначениеЗаполнено(СтруктураДанных.ДатаСправкиПоДругимМестамРаботы) Тогда
			ROW.REF_NPAY_WORK_NO = СтруктураДанных.НомерСправкиПоДругимМестамРаботы;
			ROW.REF_NPAY_WORK_DT = XMLДатаДляРеестра(СтруктураДанных.ДатаСправкиПоДругимМестамРаботы);
		КонецЕсли;
		УстановитьДатуЕслиЗаполнена(ROW.CERT_DT_DATE, СтруктураДанных.ДатаСмертиРебенка);
		Если ЗначениеЗаполнено(СтруктураДанных.ФинансированиеФедеральнымБюджетом) 
			И НЕ СтруктураДанных.ФинансированиеФедеральнымБюджетом = Перечисления.ОснованияФинансированияПособияФедеральнымБюджетом.ЗачетНестраховыхПериодов 
			И ЗначениеЗаполнено(СтруктураДанных.ПроживаниеРаботаВЛьготнойЗоне)
			И НЕ СтруктураДанных.ПроживаниеРаботаВЛьготнойЗоне = Перечисления.ОтношениеКОсобойЗоне.Нет Тогда
			
			Если СтруктураДанных.ПроживаниеРаботаВЛьготнойЗоне = Перечисления.ОтношениеКОсобойЗоне.Проживает Тогда
				ROW.LIVE_COND_FLAG 	= 1; 
			ИначеЕсли СтруктураДанных.ПроживаниеРаботаВЛьготнойЗоне = Перечисления.ОтношениеКОсобойЗоне.Работает Тогда	
				ROW.LIVE_COND_FLAG 	= 2; 
			КонецЕсли;
			
			Если СтруктураДанных.СтатусЛьготнойЗоны = Перечисления.ВидыОсобойЗоныПроживанияРаботы.ЗонаСПравомНаОтселение Тогда
				ROW.LIVE_COND 		= 1;
			ИначеЕсли СтруктураДанных.СтатусЛьготнойЗоны = Перечисления.ВидыОсобойЗоныПроживанияРаботы.ЗонаОтселения Тогда	
				ROW.LIVE_COND 		= 3;
			ИначеЕсли СтруктураДанных.СтатусЛьготнойЗоны = Перечисления.ВидыОсобойЗоныПроживанияРаботы.ЗонаСЛьготнымСоциальноЭкономическимСтатусом Тогда 
				ROW.LIVE_COND 		= 2;
			ИначеЕсли СтруктураДанных.СтатусЛьготнойЗоны = Перечисления.ВидыОсобойЗоныПроживанияРаботы.ЗонаЗагрязненияПриАварииПОМаяк Тогда 
				ROW.LIVE_COND 		= 4;
			КонецЕсли;
			
			ЗаполнитьПричинуРадиационногоВоздействия(ROW, СтруктураДанных);
		КонецЕсли;
		
	КонецЕсли;
	
КонецПроцедуры

Функция ФорматНомераЛНСоответствуетКоду2(НомерЛН) Экспорт
	Возврат СтрДлина(НомерЛН) = 15 И СтрНачинаетсяС(НомерЛН, "#");
КонецФункции

Функция ЗаполнитьСправкуОПостановкеНаУчетВРанниеСрокиБеременности(ROW, СтруктураДанных)
	// Для получения пособия "Единовременное пособие вставшим на учет в ранние сроки беременности"
	//   необходимо заполнить теги PREGN12W_FLAG, REF_12WEEK_NO, REF_12WEEK_DT
	//   для DOC_TYPE = 2 ("Пособие по беременности и родам")
	//   или DOC_TYPE = 3 ("Единовременное вставшим на учет в ранние сроки беременности").
	// Раньше для выплаты единовременного пособия всегда использовался DOC_TYPE = 3,
	//   а для DOC_TYPE = 2 флаг PREGN12W_FLAG оставался в значении 0 / 2 ("не поставлена" / "отсутствует информация").
	//   Другими словами, для заявления вида "Два пособия: По беременности и Единовременное пособие"
	//   в файле реестра создавалось 2 строки - DOC_TYPE = 2 без справки и DOC_TYPE = 3 со справкой.
	// Однако, в связи с проверкой поля PREGN12W_FLAG на соответствие полю ЭЛН pregn12wFlag,
	//   теперь может возникать ошибка:
	//   > ERR_MO_31(Ф/Л)Листок нетрудоспособности: Постановка на учет в ранние сроки беременности (до 12 недель) < 2 >
	//   > не равно Поставлена на учет в ранние сроки беременности (до 12 недель): да/нет < 1 >.
	// Поэтому рекомендованный подход для назначения и выплаты  Единовременного пособия является таким:
	//   1. Если при отправке пособия по БиР известно что выдана справка о постановке на учет в ранние сроки беременности,
	//      то отправляется только DOC_TYPE = 2 со всеми заполеннными полями справки.
	//   2. Если после отправки пособия по БиР нужно "дослать" документы для получения Единовременного пособия,
	//      то дополнительно отправляется DOC_TYPE = 3, для чего создается еще одно заявление соответствующего вида.
	
	Если СтруктураДанных.ВидВыплаты = "3" Тогда
		
		ROW.PREGN12W_FLAG = 1; // Да, поставлена на учет в ранние сроки беременности.
		ROW.REF_12WEEK_NO = СтруктураДанных.НомерСправкиБеременной;
		ROW.REF_12WEEK_DT = XMLДатаДляРеестра(СтруктураДанных.ДатаСправкиБеременной);
		
	ИначеЕсли СтруктураДанных.ВидВыплаты = "2" Тогда
		
		Если СтруктураДанных.ПоставленаНаУчетВРанниеСрокиБеременности = Перечисления.ПостановкаНаУчетВРанниеСрокиБеременности.Поставлена Тогда
			
			ROW.PREGN12W_FLAG = 1; // Да, поставлена на учет в ранние сроки беременности.
			ROW.REF_12WEEK_NO = СтруктураДанных.НомерСправкиБеременной;
			ROW.REF_12WEEK_DT = XMLДатаДляРеестра(СтруктураДанных.ДатаСправкиБеременной);
			
		ИначеЕсли СтруктураДанных.ПоставленаНаУчетВРанниеСрокиБеременности = Перечисления.ПостановкаНаУчетВРанниеСрокиБеременности.НеПоставлена Тогда
			
			ROW.PREGN12W_FLAG = 0; // Нет, не поставлена на учет.
			
		Иначе
			
			ROW.PREGN12W_FLAG = 2; // Отсутствует информация.
			
		КонецЕсли;
		
	КонецЕсли;
	
КонецФункции

Процедура ЗаполнитьСведенияОЛисткеНетрудоспособностиВСтрокеРеестра(ROW, СтруктураДанных)
	Если Не ТребуетсяЗаполнитьСведенияОЛисткеНетрудоспособности(СтруктураДанных) Тогда
		Возврат;
	КонецЕсли;
	Если Не ЭтоСведенияОЛисткеНетрудоспособности(СтруктураДанных) Тогда
		Возврат;
	КонецЕсли;
	
	ROW.LN_DATE = XMLДатаДляРеестра(СтруктураДанных.ДатаВыдачиЛисткаНетрудоспособности);
	Если ЗначениеЗаполнено(СтруктураДанных.НомерПервичногоЛисткаНетрудоспособности) Тогда
		ROW.PREV_LN_CODE = СтруктураДанных.НомерПервичногоЛисткаНетрудоспособности;
		ROW.PRIMARY_FLAG = 0;
	Иначе
		ROW.PRIMARY_FLAG = 1;
	КонецЕсли;
	ROW.DUPLICATE_FLAG = Число(СтруктураДанных.ПредоставленДубликатЛисткаНетрудоспособности);
	ROW.LPU_NAME       = СтруктураДанных.НаименованиеМедицинскойОрганизации;
	ROW.LPU_OGRN       = СтруктураДанных.ОГРНМедицинскойОрганизации;
	ROW.LPU_ADDRESS    = СтруктураДанных.АдресМедицинскойОрганизации;
	ROW.REASON1        = СтруктураДанных.КодПричиныНетрудоспособности;
	ROW.REASON2        = СтруктураДанных.ДополнительныйКодПричиныНетрудоспособности;
	ROW.REASON3        = СтруктураДанных.ВторойКодПричиныНетрудоспособности;
	Если СтруктураДанных.Совместительство Тогда
		ROW.PARENT_CODE = СтруктураДанных.НомерЛисткаПоОсновномуМестуРаботы;
	КонецЕсли;
	
	Если СтруктураДанных.ВидВыплаты = "1" Или СтруктураДанных.ВидВыплаты = "2" Тогда
		ROW.DATE1 = XMLДатаДляРеестра(СтруктураДанных.ДатаИзмененияКодаПричиныНетрудоспособности);
		ROW.DATE2 = XMLДатаДляРеестра(СтруктураДанных.ДатаОкончанияПутевки);
		ROW.VOUCHER_NO   = СтруктураДанных.НомерПутевки;
		Если ЗначениеЗаполнено(СтруктураДанных.ОГРН_Санатория) Тогда
			ROW.VOUCHER_OGRN = СтруктураДанных.ОГРН_Санатория;
		КонецЕсли;
	КонецЕсли;
	Если ЗначениеЗаполнено(СтруктураДанных.ПоУходуФИО1) Тогда
		ROW.SERV1_AGE           = СтруктураДанных.ПоУходуВозрастЛет1;
		ROW.SERV1_MM            = СтруктураДанных.ПоУходуВозрастМесяцев1;
		ROW.SERV1_RELATION_CODE = СтруктураДанных.ПоУходуРодственнаяСвязь1;
		ROW.SERV1_FIO           = СтруктураДанных.ПоУходуФИО1;
	КонецЕсли;
	Если ЗначениеЗаполнено(СтруктураДанных.ПоУходуФИО2) Тогда
		ROW.SERV2_AGE           = СтруктураДанных.ПоУходуВозрастЛет2;
		ROW.SERV2_MM            = СтруктураДанных.ПоУходуВозрастМесяцев2;
		ROW.SERV2_RELATION_CODE = СтруктураДанных.ПоУходуРодственнаяСвязь2;
		ROW.SERV2_FIO           = СтруктураДанных.ПоУходуФИО2;
	КонецЕсли;
	
	Если ЗначениеЗаполнено(СтруктураДанных.ПериодНахожденияВСтационареСРебенкомС)
		Или ЗначениеЗаполнено(СтруктураДанных.ПериодНахожденияВСтационареСРебенкомПо) Тогда
		ROW.HOSPITAL_DT1 = XMLДатаДляРеестра(СтруктураДанных.ПериодНахожденияВСтационареСРебенкомС);
		ROW.HOSPITAL_DT2 = XMLДатаДляРеестра(СтруктураДанных.ПериодНахожденияВСтационареСРебенкомПо);
	КонецЕсли;
	Если ЗначениеЗаполнено(СтруктураДанных.КодНарушенияРежима)
		И ЗначениеЗаполнено(СтруктураДанных.ДатаНарушенияРежима) Тогда
		ROW.HOSPITAL_BREACH_CODE = СтруктураДанных.КодНарушенияРежима;
		ROW.HOSPITAL_BREACH_DT   = XMLДатаДляРеестра(СтруктураДанных.ДатаНарушенияРежима);
	КонецЕсли;
	ROW.MSE_DT1 = XMLДатаДляРеестра(СтруктураДанных.ДатаНаправленияВБюроМСЭ);
	ROW.MSE_DT2 = XMLДатаДляРеестра(СтруктураДанных.ДатаРегистрацииДокументовМСЭ);
	ROW.MSE_DT3 = XMLДатаДляРеестра(СтруктураДанных.ДатаОсвидетельствованияМСЭ);
	Если ЗначениеЗаполнено(СтруктураДанных.ГруппаИнвалидности) Тогда
		ROW.MSE_INVALID_GROUP = СтруктураДанных.ГруппаИнвалидности;
	КонецЕсли;
	Если ЗначениеЗаполнено(СтруктураДанных.НовыйСтатусНетрудоспособного) Тогда
		ROW.MSE_RESULT = СтруктураДанных.НовыйСтатусНетрудоспособного;
	КонецЕсли;
	Если ЗначениеЗаполнено(СтруктураДанных.ОсвобождениеДатаНачала1)
		Или ЗначениеЗаполнено(СтруктураДанных.ОсвобождениеДатаОкончания1) Тогда
		ROW.TREAT1_DT1          = XMLДатаДляРеестра(СтруктураДанных.ОсвобождениеДатаНачала1);
		ROW.TREAT1_DT2          = XMLДатаДляРеестра(СтруктураДанных.ОсвобождениеДатаОкончания1);
		ROW.TREAT1_DOCTOR_ROLE  = СтруктураДанных.ОсвобождениеДолжностьВрача1;
		ROW.TREAT1_DOCTOR       = СтруктураДанных.ОсвобождениеФИОВрача1;
		ROW.TREAT1_DOC_ID       = СтруктураДанных.ОсвобождениеИдентификационныйНомерВрача1;
		Если ЗначениеЗаполнено(СтруктураДанных.ОсвобождениеДолжностьВрачаПредседателяВК1)
			Или ЗначениеЗаполнено(СтруктураДанных.ОсвобождениеФИОВрачаПредседателяВК1)
			Или ЗначениеЗаполнено(СтруктураДанных.ОсвобождениеИдентификационныйНомерВрачаПредседателяВК1) Тогда
			ROW.TREAT1_DOCTOR2_ROLE = "ПРЕД ВК";
			ROW.TREAT1_CHAIRMAN_VK  = СтруктураДанных.ОсвобождениеФИОВрачаПредседателяВК1;
			ROW.TREAT1_DOC2_ID      = СтруктураДанных.ОсвобождениеИдентификационныйНомерВрачаПредседателяВК1;
		КонецЕсли;
	КонецЕсли;
	Если ЗначениеЗаполнено(СтруктураДанных.ОсвобождениеДатаНачала2) Или ЗначениеЗаполнено(СтруктураДанных.ОсвобождениеДатаОкончания2) Тогда
		ROW.TREAT2_DT1          = XMLДатаДляРеестра(СтруктураДанных.ОсвобождениеДатаНачала2);
		ROW.TREAT2_DT2          = XMLДатаДляРеестра(СтруктураДанных.ОсвобождениеДатаОкончания2);
		ROW.TREAT2_DOCTOR_ROLE  = СтруктураДанных.ОсвобождениеДолжностьВрача2;
		ROW.TREAT2_DOCTOR       = СтруктураДанных.ОсвобождениеФИОВрача2;
		ROW.TREAT2_DOC_ID       = СтруктураДанных.ОсвобождениеИдентификационныйНомерВрача2;
		Если ЗначениеЗаполнено(СтруктураДанных.ОсвобождениеДолжностьВрачаПредседателяВК2)
			Или ЗначениеЗаполнено(СтруктураДанных.ОсвобождениеФИОВрачаПредседателяВК2)
			Или ЗначениеЗаполнено(СтруктураДанных.ОсвобождениеИдентификационныйНомерВрачаПредседателяВК2) Тогда
			ROW.TREAT2_DOCTOR2_ROLE = "ПРЕД ВК";
			ROW.TREAT2_CHAIRMAN_VK  = СтруктураДанных.ОсвобождениеФИОВрачаПредседателяВК2;
			ROW.TREAT2_DOC2_ID      = СтруктураДанных.ОсвобождениеИдентификационныйНомерВрачаПредседателяВК2;
		КонецЕсли;
	КонецЕсли;
	Если ЗначениеЗаполнено(СтруктураДанных.ОсвобождениеДатаНачала3) Или ЗначениеЗаполнено(СтруктураДанных.ОсвобождениеДатаОкончания3) Тогда
		ROW.TREAT3_DT1          = XMLДатаДляРеестра(СтруктураДанных.ОсвобождениеДатаНачала3);
		ROW.TREAT3_DT2          = XMLДатаДляРеестра(СтруктураДанных.ОсвобождениеДатаОкончания3);
		ROW.TREAT3_DOCTOR_ROLE  = СтруктураДанных.ОсвобождениеДолжностьВрача3;
		ROW.TREAT3_DOCTOR       = СтруктураДанных.ОсвобождениеФИОВрача3;
		ROW.TREAT3_DOC_ID       = СтруктураДанных.ОсвобождениеИдентификационныйНомерВрача3;
		Если ЗначениеЗаполнено(СтруктураДанных.ОсвобождениеДолжностьВрачаПредседателяВК3)
			Или ЗначениеЗаполнено(СтруктураДанных.ОсвобождениеФИОВрачаПредседателяВК3)
			Или ЗначениеЗаполнено(СтруктураДанных.ОсвобождениеИдентификационныйНомерВрачаПредседателяВК3) Тогда
			ROW.TREAT3_DOCTOR2_ROLE = "ПРЕД ВК";
			ROW.TREAT3_CHAIRMAN_VK  = СтруктураДанных.ОсвобождениеФИОВрачаПредседателяВК3;
			ROW.TREAT3_DOC2_ID      = СтруктураДанных.ОсвобождениеИдентификационныйНомерВрачаПредседателяВК3;
		КонецЕсли;
	КонецЕсли;
	ROW.OTHER_STATE_DT  = XMLДатаДляРеестра(СтруктураДанных.ДатаНовыйСтатусНетрудоспособного);
	ROW.RETURN_DATE_LPU = XMLДатаДляРеестра(СтруктураДанных.ПриступитьКРаботеС);
	УстановитьЗначениеЕслиЗаполнено(ROW.NEXT_LN_CODE, СтруктураДанных.НомерЛисткаПродолжения);
	
КонецПроцедуры

Функция ЭтоСведенияОЛисткеНетрудоспособности(СтруктураДанных)
	Возврат СтруктураДанных.ВидВыплаты = "1"
		Или СтруктураДанных.ВидВыплаты = "2"
		Или СтруктураДанных.ВидВыплаты = "6";
КонецФункции

Функция ТребуетсяЗаполнитьСведенияОЛисткеНетрудоспособности(СтруктураДанных) Экспорт
	Возврат Не СтруктураДанных.ЭтоЭЛН
		Или СтрНачинаетсяС(СтруктураДанных.НомерЛисткаНетрудоспособности, "9990");
КонецФункции

Процедура ЗаполнитьКоличествоОплаченныхДнейНетрудоспособностиИнвалида(ROW, СтруктураДанных)
	Если Не ЭтоСведенияОЛисткеНетрудоспособности(СтруктураДанных) Тогда
		Возврат;
	КонецЕсли;
	Если ЗначениеЗаполнено(СтруктураДанных.КоличествоОплаченныхДнейНетрудоспособностиИнвалида)
		// 45 - Лицо, имеющее инвалидность.
		Или СтруктураДанных.УсловияИсчисленияКод1 = "45"
		Или СтруктураДанных.УсловияИсчисленияКод2 = "45"
		Или СтруктураДанных.УсловияИсчисленияКод3 = "45"
		// 49 - Продолжительность заболевания превышает 4 месяца подряд
		// (для лиц, имеющих инвалидность, за исключением заболевания туберкулезом).
		Или СтруктураДанных.УсловияИсчисленияКод1 = "49"
		Или СтруктураДанных.УсловияИсчисленияКод2 = "49"
		Или СтруктураДанных.УсловияИсчисленияКод3 = "49"
		// 50 - Продолжительность заболевания превышает 5 месяцев в календарном году
		// (для лиц, имеющих инвалидность, за исключением заболевания туберкулезом).
		Или СтруктураДанных.УсловияИсчисленияКод1 = "50"
		Или СтруктураДанных.УсловияИсчисленияКод2 = "50"
		Или СтруктураДанных.УсловияИсчисленияКод3 = "50" Тогда
		ROW.MSE_INVALID_DAYS = СтруктураДанных.КоличествоОплаченныхДнейНетрудоспособностиИнвалида;
	КонецЕсли;
КонецПроцедуры

Процедура ЗаполнитьИсключаемыеПериодыВСтрокеРеестра(ROW, ВыборкаСтрок, ИсключаемыеПериоды)
	Фильтр = Новый Структура("ПервичныйДокумент", ВыборкаСтрок.ПервичныйДокумент);
	Найденные = ИсключаемыеПериоды.НайтиСтроки(Фильтр);
	Если Найденные.Количество() = 0 Тогда
		Возврат;
	КонецЕсли;
	PERIODS_EXCL = ФабрикаXDTO.Создать(ROW.Свойства().Получить("PERIODS_EXCL").Тип);
	ТипPERIOD = PERIODS_EXCL.Свойства().Получить("PERIOD_EXCL").Тип;
	ИсключаемыеПериодыСтроки = ИсключаемыеПериоды.Скопировать(Найденные);
	ИсключаемыеПериодыСтроки.Сортировать("ДатаНачала");
	Для Каждого Период Из ИсключаемыеПериодыСтроки Цикл
		ПричинаЧислом = Перечисления.ПричиныНеоплатыБольничных.ЗначениеЧислом(Период.Причина);
		Если ПричинаЧислом = Неопределено Тогда
			Текст = НСтр("ru = 'В документе %1 не заполнена причина исключения периода оплаты'");
			СообщенияБЗК.СообщитьОПроблеме(Текст, Период.ПервичныйДокумент, "Объект.НазначитьПособие");
			Продолжить;
		КонецЕсли;
		PERIOD_EXCL = ФабрикаXDTO.Создать(ТипPERIOD);
		PERIOD_EXCL.TYPE_EXCL       = ПричинаЧислом;
		PERIOD_EXCL.START_DATE_EXCL = XMLДатаДляРеестра(Период.ДатаНачала);
		PERIOD_EXCL.END_DATE_EXCL   = XMLДатаДляРеестра(Период.ДатаОкончания);
		PERIODS_EXCL.PERIOD_EXCL.Добавить(PERIOD_EXCL);
	КонецЦикла;
	ROW.PERIODS_EXCL.Добавить(PERIODS_EXCL);
КонецПроцедуры

Процедура ЗаполнитьПриостановленияТДВСтрокеРеестра(ROW, ВыборкаСтрок, ПриостановленияТД)
	Если ВыборкаСтрок.КодНаличияПриостановленийТД = "" Тогда
		Возврат;
	КонецЕсли;
	ROW.MOBIL_FLAG = ВыборкаСтрок.КодНаличияПриостановленийТД;
	Если ВыборкаСтрок.КодНаличияПриостановленийТД = "1" Тогда
		Фильтр = Новый Структура("Заявление", ВыборкаСтрок.Заявление);
		Найденные = ПриостановленияТД.НайтиСтроки(Фильтр);
	Иначе
		Найденные = Новый Массив;
	КонецЕсли;
	Если Найденные.Количество() = 0 Тогда
		// Пустой тег <MOBIL_PERIODS/> не допускается - возвращается ошибка:
		// Не соответствует формату XSD: Содержимое элемента "MOBIL_PERIODS" является неполным. Список ожидаемых элементов: "PERIOD".
		// Нужен такой тег: <MOBIL_PERIODS xsi:nil="true"/>.
		ROW.MOBIL_PERIODS.Добавить(Неопределено);
		Возврат;
	КонецЕсли;
	
	MOBIL_PERIODS = ФабрикаXDTO.Создать(ROW.Свойства().Получить("MOBIL_PERIODS").Тип);
	ТипPERIOD = MOBIL_PERIODS.Свойства().Получить("PERIOD").Тип;
	ПриостановленияТДСтроки = ПриостановленияТД.Скопировать(Найденные);
	ПриостановленияТДСтроки.Сортировать("ДатаНачала");
	Для Каждого Период Из ПриостановленияТДСтроки Цикл
		ТипСтрокой = Перечисления.ОснованияПриостановленияТрудовыхДоговоровСФР.ЗначениеВСтрокуСЭДОXML(Период.ОснованиеНПА);
		Если Не ЗначениеЗаполнено(Период.ДатаНачала)
			Или Не ЗначениеЗаполнено(Период.ДатаОкончания)
			Или Не ЗначениеЗаполнено(ТипСтрокой) Тогда
			Продолжить;
		КонецЕсли;
		PERIOD = ФабрикаXDTO.Создать(ТипPERIOD);
		PERIOD.START_DATE  = XMLДатаДляРеестра(Период.ДатаНачала);
		PERIOD.END_DATE    = XMLДатаДляРеестра(Период.ДатаОкончания);
		PERIOD.PERIOD_NAME = ТипСтрокой;
		MOBIL_PERIODS.PERIOD.Добавить(PERIOD);
	КонецЦикла;
	ROW.MOBIL_PERIODS.Добавить(MOBIL_PERIODS);
КонецПроцедуры

Процедура ЗаполнитьСведенияПо20ФЗВСтрокеРеестра(ROW, ВыборкаСтрок)
	Если ЗначениеЗаполнено(ВыборкаСтрок.LocationCode) Или ВыборкаСтрок.IsDelivery Тогда
		ROW.LOCATION_CODE = ВыборкаСтрок.LocationCode;
		ROW.IS_DELIVERY   = Формат(ВыборкаСтрок.IsDelivery, "БЛ=0; БИ=1");
	КонецЕсли;
КонецПроцедуры

Процедура ЗаполнитьПричинуРадиационногоВоздействия(ROW, СтруктураДанных)
	Если СтруктураДанных.ФинансированиеФедеральнымБюджетом = Перечисления.ОснованияФинансированияПособияФедеральнымБюджетом.Чернобыль Тогда
		ROW.CODE_NUCLEAR = 1;
	ИначеЕсли СтруктураДанных.ФинансированиеФедеральнымБюджетом = Перечисления.ОснованияФинансированияПособияФедеральнымБюджетом.Семипалатинск Тогда
		ROW.CODE_NUCLEAR = 2;
	ИначеЕсли СтруктураДанных.ФинансированиеФедеральнымБюджетом = Перечисления.ОснованияФинансированияПособияФедеральнымБюджетом.Маяк Тогда
		ROW.CODE_NUCLEAR = 3;
	ИначеЕсли СтруктураДанных.ФинансированиеФедеральнымБюджетом = Перечисления.ОснованияФинансированияПособияФедеральнымБюджетом.ПодразделенияОсобогоРиска Тогда
		ROW.CODE_NUCLEAR = 4;
	КонецЕсли;
КонецПроцедуры

Процедура УстановитьЗначениеЕслиЗаполнено(ИзменяемоеЗначение, Значение)
	Если ЗначениеЗаполнено(Значение) Тогда
		ИзменяемоеЗначение = Значение;
	КонецЕсли;
КонецПроцедуры

Процедура УстановитьДатуЕслиЗаполнена(ИзменяемоеЗначение, Дата) Экспорт
	Если ЗначениеЗаполнено(Дата) Тогда
		ИзменяемоеЗначение = Формат(Дата, "ДФ=yyyy-MM-dd");
	КонецЕсли;
КонецПроцедуры

Функция XMLДатаДляРеестра(Дата)
	Возврат ?(ЗначениеЗаполнено(Дата), Формат(Дата, "ДФ=yyyy-MM-dd"), "");
КонецФункции

Функция ИдентификаторФСС(Реестр) Экспорт
	РегистрационныйНомерФСС = УчетПособийСоциальногоСтрахованияКлиентСервер.РегистрационныйНомерДляОбменаФСС(Реестр);
	ДатаРеестра = Формат(Реестр.Дата, "ДФ=yyyy_MM_dd");
	НомерРеестра = НомерРеестраДляВыгрузкиВФайл(Реестр, Ложь);
	Возврат "E_" + РегистрационныйНомерФСС + "_" + ДатаРеестра + "_" + НомерРеестра;
КонецФункции

Функция НомерРеестраДляВыгрузкиВФайл(Реестр, Отказ) Экспорт
	НомерЧислом = СтроковыеФункцииБЗККлиентСервер.НомерОбъектаЧислом(Реестр.Номер);
	Если НомерЧислом = Неопределено Тогда
		ШаблонОшибки = НСтр("ru = 'Номер реестра прямых выплат %1 от %2 не удалось преобразовать в число. Проверьте наличие числа в номере и корректность префиксов или свяжитесь со специалистом.'");
	ИначеЕсли НомерЧислом > 9999 Тогда
		ШаблонОшибки = НСтр("ru = 'Номер реестра прямых выплат %1 от %2 больше 9999. Перенесите документ на другую дату.'");
	ИначеЕсли НомерЧислом < 1 Тогда
		ШаблонОшибки = НСтр("ru = 'Номер реестра прямых выплат %1 от %2 меньше 1. Проверьте корректность номера и префиксов или свяжитесь со специалистом.'");
	Иначе
		// Штатный режим работы - возвращается строковое представление номера.
		Возврат Формат(НомерЧислом, "ЧЦ=4; ЧВН=; ЧГ=");
	КонецЕсли;
	// Ошибка в номере - возвращаются последние 4 символа номера.
	ТекстОшибки = СтрШаблон(ШаблонОшибки, Реестр.Номер, Реестр.Дата);
	Объект = ?(ТипЗнч(Реестр) = Тип("ВыборкаИзРезультатаЗапроса"), Реестр.Ссылка, Реестр);
	СообщенияБЗК.СообщитьОбОшибкеВОбъекте(Отказ, Объект, ТекстОшибки, "Номер");
	Возврат Прав("0000" + СокрЛП(Реестр.Номер), 4);
КонецФункции

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

Функция ЗапросПоСтрокамРеестра(Реестр)
	
	Запрос = Новый Запрос;
	Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	Запрос.УстановитьПараметр("Ссылка", Реестр.Ссылка);
	Запрос.Текст = 
	"ВЫБРАТЬ ПЕРВЫЕ 1
	|	Пособия.Заявление.ПервыйРасчетныйГод КАК Год
	|ИЗ
	|	Документ.РеестрСведенийНеобходимыхДляНазначенияИВыплатыПособий.СведенияНеобходимыеДляНазначенияПособий КАК Пособия
	|ГДЕ
	|	Пособия.Ссылка = &Ссылка
	|	И Пособия.Заявление.ПервыйРасчетныйГод <> 0
	|
	|УПОРЯДОЧИТЬ ПО
	|	Год";
	
	МинимальныйГод = Запрос.Выполнить().Выгрузить();
	Если МинимальныйГод.Количество() = 0 Тогда
		ИзмеренияГоды = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Год(ТекущаяДатаСеанса()));
	Иначе
		ИзмеренияГоды = Новый Массив;
		ТекущийГод = МинимальныйГод[0].Год;
		Пока ТекущийГод <= Год(ТекущаяДатаСеанса()) Цикл
			ИзмеренияГоды.Добавить(ТекущийГод);
			ТекущийГод = ТекущийГод + 1;
		КонецЦикла;
	КонецЕсли;
		
	УчетПособийСоциальногоСтрахования.СоздатьВТПредельнаяВеличинаБазы(Запрос.МенеджерВременныхТаблиц, ИзмеренияГоды);
	
	Запрос.УстановитьПараметр("ПустаяДата", '00010101');
	Запрос.УстановитьПараметр("ТаблицаВидовВыплат", ТаблицаВидовВыплат());
	
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ТаблицаВидовВыплат.ВидПособия КАК ВидПособия,
	|	ТаблицаВидовВыплат.ВидВыплаты КАК ВидВыплаты
	|ПОМЕСТИТЬ ВТВидыВыплат
	|ИЗ
	|	&ТаблицаВидовВыплат КАК ТаблицаВидовВыплат
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	Пособия.ПервичныйДокумент КАК ПервичныйДокумент,
	|	ЗаявлениеСотрудника.ФамилияПолучателя + "" "" + ЗаявлениеСотрудника.ИмяПолучателя + "" "" + ЗаявлениеСотрудника.ОтчествоПолучателя КАК ФИОСотрудника,
	|	ЗаявлениеСотрудника.ДатаРожденияПолучателя КАК ДатаРождения,
	|	ЗаявлениеСотрудника.Гражданство КАК Гражданство,
	|	ЕСТЬNULL(ЗаявлениеСотрудника.Гражданство.Код, ""999"") КАК КодСтраны,
	|	ВЫБОР
	|		КОГДА ЗаявлениеСотрудника.ТипЗанятостиРаботника = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы)
	|			ТОГДА ЛОЖЬ
	|		ИНАЧЕ ИСТИНА
	|	КОНЕЦ КАК Совместительство,
	|	ЗаявлениеСотрудника.СпособВыплатыПособия КАК СпособВыплатыПособия,
	|	ЗаявлениеСотрудника.НаименованиеБанка КАК НаименованиеБанка,
	|	ЗаявлениеСотрудника.Банк КАК Банк,
	|	ЗаявлениеСотрудника.БИКБанка КАК БИКБанка,
	|	ЗаявлениеСотрудника.НомерЛицевогоСчета КАК НомерЛицевогоСчета,
	|	ЗаявлениеСотрудника.КартаМИР КАК КартаМИР,
	|	ЗаявлениеСотрудника.ТелефонПолучателя КАК ТелефонПолучателя,
	|	ЗаявлениеСотрудника.АдресПолучателяРегистрации КАК АдресПолучателяРегистрации,
	|	ЗаявлениеСотрудника.АдресПолучателяРегистрацииИдентификаторФИАС КАК АдресПолучателяРегистрацииИдентификаторФИАС,
	|	ЗаявлениеСотрудника.АдресПолучателяРегистрацииКодКЛАДР КАК АдресПолучателяРегистрацииКодКЛАДР,
	|	ЗаявлениеСотрудника.АдресПолучателяФактический КАК АдресПолучателяФактический,
	|	ЗаявлениеСотрудника.АдресПолучателяФактическийИдентификаторФИАС КАК АдресПолучателяФактическийИдентификаторФИАС,
	|	ЗаявлениеСотрудника.АдресПолучателяФактическийКодКЛАДР КАК АдресПолучателяФактическийКодКЛАДР,
	|	ЗаявлениеСотрудника.ФамилияПолучателя КАК Фамилия,
	|	ЗаявлениеСотрудника.ИмяПолучателя КАК Имя,
	|	ЗаявлениеСотрудника.ОтчествоПолучателя КАК Отчество,
	|	ЗаявлениеСотрудника.СчитатьПоПравилам2010Года КАК СчитатьПоПравилам2010Года,
	|	ЗаявлениеСотрудника.ПорядокРасчетаСреднегоЗаработка КАК ПорядокРасчетаСреднегоЗаработка,
	|	ЗаявлениеСотрудника.ДатаСправкиОПостановкеНаУчетВРанниеСрокиБеременности КАК ДатаСправкиБеременной,
	|	ЗаявлениеСотрудника.НомерСправкиОПостановкеНаУчетВРанниеСрокиБеременности КАК НомерСправкиБеременной,
	|	Пособия.ПоставленаНаУчетВРанниеСрокиБеременности КАК ПоставленаНаУчетВРанниеСрокиБеременности,
	|	ЗаявлениеСотрудника.ПериодПростоя1ДатаНачала КАК ПериодПростояС1,
	|	ЗаявлениеСотрудника.ПериодПростоя1ДатаОкончания КАК ПериодПростояПо1,
	|	ЗаявлениеСотрудника.ПериодПростоя1СреднийЗаработок КАК СреднийЗаработокНаПериодПростоя1,
	|	ВЫБОР
	|		КОГДА ЗаявлениеСотрудника.ВидДокументаУдостоверяющегоЛичностьПолучателя.КодМВД = ""18""
	|			ТОГДА ""19""
	|		ИНАЧЕ ЕСТЬNULL(ЗаявлениеСотрудника.ВидДокументаУдостоверяющегоЛичностьПолучателя.КодМВД, ""01"")
	|	КОНЕЦ КАК УдостоверениеЛичностиКодМВД,
	|	ЗаявлениеСотрудника.СерияДокументаУдостоверяющегоЛичностьПолучателя КАК СерияУдостоверенияЛичности,
	|	ЗаявлениеСотрудника.НомерДокументаУдостоверяющегоЛичностьПолучателя КАК НомерУдостоверенияЛичности,
	|	ЗаявлениеСотрудника.ДатаВыдачиДокументаУдостоверяющегоЛичностьПолучателя КАК ДатаВыдачиУдостоверенияЛичности,
	|	ЗаявлениеСотрудника.КемВыданДокументУдостоверяющийЛичностьПолучателя КАК КемВыданоУдостоверениеЛичности,
	|	ЗаявлениеСотрудника.ДатаДействияДокументаУдостоверяющегоЛичностьПолучателя КАК УдостоверениеЛичностиСрокДействия,
	|	ЕСТЬNULL(ЗаявлениеСотрудника.ВидДокументаНаПроживание.КодМВД, ""01"") КАК КодМВДДокументаНаПроживание,
	|	ЗаявлениеСотрудника.СерияДокументаНаПроживание КАК СерияДокументаНаПроживание,
	|	ЗаявлениеСотрудника.НомерДокументаНаПроживание КАК НомерДокументаНаПроживание,
	|	ЗаявлениеСотрудника.ДатаВыдачиДокументаНаПроживание КАК ДатаВыдачиДокументаНаПроживание,
	|	ЗаявлениеСотрудника.КемВыданДокументНаПроживание КАК КемВыданДокументНаПроживание,
	|	ЗаявлениеСотрудника.СНИЛСПолучателя КАК СНИЛСПолучателя,
	|	ЗаявлениеСотрудника.ИННПолучателя КАК ИННПолучателя,
	|	ЗаявлениеСотрудника.НомерПриказаОПредоставленииОтпускаПоУходуЗаРебенком КАК НомерПриказаНаОтпускПоУходуЗаРебенком,
	|	ЗаявлениеСотрудника.ДатаПриказаОПредоставленииОтпускаПоУходуЗаРебенком КАК ДатаПриказаНаОтпускПоУходуЗаРебенком,
	|	ВЫБОР
	|		КОГДА НЕ ЗаявлениеСотрудника.ДатаНачалаОтпускаПоУходуЗаРебенком ЕСТЬ NULL
	|				И ЗаявлениеСотрудника.ДатаНачалаОтпускаПоУходуЗаРебенком <> &ПустаяДата
	|			ТОГДА ЗаявлениеСотрудника.ДатаНачалаОтпускаПоУходуЗаРебенком
	|		ИНАЧЕ Пособия.ОсвобождениеДатаНачала1
	|	КОНЕЦ КАК ДатаНачала,
	|	ВЫБОР
	|		КОГДА НЕ ЗаявлениеСотрудника.ДатаОкончанияОтпускаПоУходуЗаРебенком ЕСТЬ NULL
	|				И ЗаявлениеСотрудника.ДатаОкончанияОтпускаПоУходуЗаРебенком <> &ПустаяДата
	|			ТОГДА ЗаявлениеСотрудника.ДатаОкончанияОтпускаПоУходуЗаРебенком
	|		КОГДА Пособия.ОсвобождениеДатаОкончания1 > Пособия.ОсвобождениеДатаОкончания2
	|			ТОГДА Пособия.ОсвобождениеДатаОкончания1
	|		КОГДА Пособия.ОсвобождениеДатаОкончания2 > Пособия.ОсвобождениеДатаОкончания3
	|			ТОГДА Пособия.ОсвобождениеДатаОкончания2
	|		ИНАЧЕ Пособия.ОсвобождениеДатаОкончания3
	|	КОНЕЦ КАК ДатаОкончания,
	|	ЗаявлениеСотрудника.РайонныйКоэффициент КАК РайонныйКоэффициент,
	|	ЗаявлениеСотрудника.ДоляВремени КАК ДоляВремени,
	|	ЗаявлениеСотрудника.ПервыйРасчетныйГод КАК ПервыйГодРасчета,
	|	ЗаявлениеСотрудника.ВторойРасчетныйГод КАК ВторойГодРасчета,
	|	ЗаявлениеСотрудника.ЗамененыКалендарныеГодыРасчетаСреднегоЗаработка КАК ЗамененыКалендарныеГодыРасчетаСреднегоЗаработка,
	|	ЗаявлениеСотрудника.ПервыйЗамененныйГод КАК ЗамененныйПервыйГодРасчета,
	|	ЗаявлениеСотрудника.ВторойЗамененныйГод КАК ЗамененныйВторойГодРасчета,
	|	ВЫБОР
	|		КОГДА ЗаявлениеСотрудника.ЗаработокПервыйГодРасчета > ПредельнаяВеличинаЗаПервыйГодРасчета.Размер
	|			ТОГДА ПредельнаяВеличинаЗаПервыйГодРасчета.Размер
	|		ИНАЧЕ ЗаявлениеСотрудника.ЗаработокПервыйГодРасчета
	|	КОНЕЦ КАК ЗаработокПервыйГодРасчета,
	|	ВЫБОР
	|		КОГДА ЗаявлениеСотрудника.ЗаработокВторойГодРасчета > ПредельнаяВеличинаЗаВторойГодРасчета.Размер
	|			ТОГДА ПредельнаяВеличинаЗаВторойГодРасчета.Размер
	|		ИНАЧЕ ЗаявлениеСотрудника.ЗаработокВторойГодРасчета
	|	КОНЕЦ КАК ЗаработокВторойГодРасчета,
	|	ВЫБОР
	|		КОГДА ЗаявлениеСотрудника.ПорядокРасчетаСреднегоЗаработка = ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаСреднегоЗаработкаДляОплатыПособия.ИсходяИзТарифнойСтавки)
	|				ИЛИ ЗаявлениеСотрудника.ПорядокРасчетаСреднегоЗаработка = ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаСреднегоЗаработкаДляОплатыПособия.ИсходяИзМРОТ)
	|			ТОГДА НАЧАЛОПЕРИОДА(Пособия.ОсвобождениеДатаНачала1, МЕСЯЦ)
	|		ИНАЧЕ ЗаявлениеСотрудника.ДатаНачалаРасчетногоПериода
	|	КОНЕЦ КАК ПериодРасчетаСреднегоЗаработкаНачало,
	|	ВЫБОР
	|		КОГДА (ЗаявлениеСотрудника.ПорядокРасчетаСреднегоЗаработка = ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаСреднегоЗаработкаДляОплатыПособия.ИсходяИзТарифнойСтавки)
	|				ИЛИ ЗаявлениеСотрудника.ПорядокРасчетаСреднегоЗаработка = ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаСреднегоЗаработкаДляОплатыПособия.ИсходяИзМРОТ))
	|				И Пособия.ОсвобождениеДатаНачала1 <> ДАТАВРЕМЯ(1, 1, 1)
	|			ТОГДА КОНЕЦПЕРИОДА(Пособия.ОсвобождениеДатаНачала1, МЕСЯЦ)
	|		ИНАЧЕ ЗаявлениеСотрудника.ДатаОкончанияРасчетногоПериода
	|	КОНЕЦ КАК ПериодРасчетаСреднегоЗаработкаОкончание,
	|	ВЫБОР
	|		КОГДА (ЗаявлениеСотрудника.ПорядокРасчетаСреднегоЗаработка = ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаСреднегоЗаработкаДляОплатыПособия.ИсходяИзТарифнойСтавки)
	|				ИЛИ ЗаявлениеСотрудника.ПорядокРасчетаСреднегоЗаработка = ЗНАЧЕНИЕ(Перечисление.СпособыРасчетаСреднегоЗаработкаДляОплатыПособия.ИсходяИзМРОТ))
	|				И Пособия.ОсвобождениеДатаНачала1 <> ДАТАВРЕМЯ(1, 1, 1)
	|			ТОГДА ДЕНЬ(КОНЕЦПЕРИОДА(Пособия.ОсвобождениеДатаНачала1, МЕСЯЦ))
	|		ИНАЧЕ ЗаявлениеСотрудника.ЧислоКалендарныхДнейРасчетногоПериода
	|	КОНЕЦ КАК КалендарныхДнейРасчетногоПериода,
	|	ЕСТЬNULL(ВидыВыплат.ВидВыплаты, ""1"") КАК ВидВыплаты,
	|	ЗаявлениеСотрудника.ВидПособия КАК ВидПособия,
	|	ЗаявлениеСотрудника.СреднийДневнойЗаработок КАК СреднийДневнойЗаработок,
	|	ЗаявлениеСотрудника.СреднийЗаработокЗаРасчетныйПериод КАК СреднийЗаработокЗаРасчетныйПериод,
	|	ЗаявлениеСотрудника.МРОТ КАК МРОТ,
	|	ЗаявлениеСотрудника.ДатаНачалаТрудовогоДоговораПолучателя КАК СрочныйДоговорС,
	|	ЗаявлениеСотрудника.ДатаОкончанияТрудовогоДоговораПолучателя КАК СрочныйДоговорПо,
	|	ЗаявлениеСотрудника.СтатусНалогоплательщикаПолучателя КАК СтатусНалогоплательщикаПолучателя,
	|	ЗаявлениеСотрудника.ВидДокументаНаПроживание КАК НаименованиеДокументаНаПроживание,
	|	Пособия.НомерСтроки КАК НомерСтроки,
	|	Пособия.ПриступитьКРаботеС КАК ПриступитьКРаботеС,
	|	Пособия.ДатаРегистрацииДокументовМСЭ КАК ДатаРегистрацииДокументовМСЭ,
	|	Пособия.ПериодНахожденияВСтационареСРебенкомС КАК ПериодНахожденияВСтационареСРебенкомС,
	|	Пособия.ПериодНахожденияВСтационареСРебенкомПо КАК ПериодНахожденияВСтационареСРебенкомПо,
	|	Пособия.ДатаИзмененияКодаПричиныНетрудоспособности КАК ДатаИзмененияКодаПричиныНетрудоспособности,
	|	Пособия.КодПричиныНетрудоспособности КАК КодПричиныНетрудоспособности,
	|	Пособия.ДополнительныйКодПричиныНетрудоспособности КАК ДополнительныйКодПричиныНетрудоспособности,
	|	Пособия.ВторойКодПричиныНетрудоспособности КАК ВторойКодПричиныНетрудоспособности,
	|	Пособия.УсловияИсчисленияКод1 КАК УсловияИсчисленияКод1,
	|	Пособия.УсловияИсчисленияКод2 КАК УсловияИсчисленияКод2,
	|	Пособия.УсловияИсчисленияКод3 КАК УсловияИсчисленияКод3,
	|	Пособия.НомерЛисткаНетрудоспособности КАК НомерЛисткаНетрудоспособности,
	|	Пособия.ДатаВыдачиЛисткаНетрудоспособности КАК ДатаВыдачиЛисткаНетрудоспособности,
	|	Пособия.НомерПервичногоЛисткаНетрудоспособности КАК НомерПервичногоЛисткаНетрудоспособности,
	|	Пособия.КодНарушенияРежима КАК КодНарушенияРежима,
	|	Пособия.ДатаНарушенияРежима КАК ДатаНарушенияРежима,
	|	Пособия.ДатаНовыйСтатусНетрудоспособного КАК ДатаНовыйСтатусНетрудоспособного,
	|	Пособия.НовыйСтатусНетрудоспособного КАК НовыйСтатусНетрудоспособного,
	|	Пособия.ДатаОсвидетельствованияМСЭ КАК ДатаОсвидетельствованияМСЭ,
	|	Пособия.ДатаНаправленияВБюроМСЭ КАК ДатаНаправленияВБюроМСЭ,
	|	Пособия.НомерЛисткаПродолжения КАК НомерЛисткаПродолжения,
	|	Пособия.ОГРН_Санатория КАК ОГРН_Санатория,
	|	Пособия.НомерПутевки КАК НомерПутевки,
	|	Пособия.ДатаОкончанияПутевки КАК ДатаОкончанияПутевки,
	|	Пособия.НомерЛисткаПоОсновномуМестуРаботы КАК НомерЛисткаПоОсновномуМестуРаботы,
	|	Пособия.ОГРНМедицинскойОрганизации КАК ОГРНМедицинскойОрганизации,
	|	Пособия.АдресМедицинскойОрганизации КАК АдресМедицинскойОрганизации,
	|	Пособия.НаименованиеМедицинскойОрганизации КАК НаименованиеМедицинскойОрганизации,
	|	Пособия.ПредоставленДубликатЛисткаНетрудоспособности КАК ПредоставленДубликатЛисткаНетрудоспособности,
	|	Пособия.ПоУходуВозрастЛет1 КАК ПоУходуВозрастЛет1,
	|	Пособия.ПоУходуВозрастМесяцев1 КАК ПоУходуВозрастМесяцев1,
	|	Пособия.ПоУходуРодственнаяСвязь1 КАК ПоУходуРодственнаяСвязь1,
	|	Пособия.ПоУходуФИО1 КАК ПоУходуФИО1,
	|	Пособия.ПоУходуИспользованоДней1 КАК УходЗаРодственникомИспользованоДней1,
	|	Пособия.ПоУходуВозрастЛет2 КАК ПоУходуВозрастЛет2,
	|	Пособия.ПоУходуВозрастМесяцев2 КАК ПоУходуВозрастМесяцев2,
	|	Пособия.ПоУходуРодственнаяСвязь2 КАК ПоУходуРодственнаяСвязь2,
	|	Пособия.ПоУходуФИО2 КАК ПоУходуФИО2,
	|	Пособия.ПоУходуИспользованоДней2 КАК УходЗаРодственникомИспользованоДней2,
	|	Пособия.ОсвобождениеДатаНачала1 КАК ОсвобождениеДатаНачала1,
	|	Пособия.ОсвобождениеДатаОкончания1 КАК ОсвобождениеДатаОкончания1,
	|	Пособия.ОсвобождениеДолжностьВрача1 КАК ОсвобождениеДолжностьВрача1,
	|	Пособия.ОсвобождениеФИОВрача1 КАК ОсвобождениеФИОВрача1,
	|	Пособия.ОсвобождениеИдентификационныйНомерВрача1 КАК ОсвобождениеИдентификационныйНомерВрача1,
	|	Пособия.ОсвобождениеФИОВрачаПредседателяВК1 КАК ОсвобождениеФИОВрачаПредседателяВК1,
	|	Пособия.ОсвобождениеДолжностьВрачаПредседателяВК1 КАК ОсвобождениеДолжностьВрачаПредседателяВК1,
	|	Пособия.ОсвобождениеИдентификационныйНомерВрачаПредседателяВК1 КАК ОсвобождениеИдентификационныйНомерВрачаПредседателяВК1,
	|	Пособия.ОсвобождениеДатаНачала2 КАК ОсвобождениеДатаНачала2,
	|	Пособия.ОсвобождениеДатаОкончания2 КАК ОсвобождениеДатаОкончания2,
	|	Пособия.ОсвобождениеДолжностьВрача2 КАК ОсвобождениеДолжностьВрача2,
	|	Пособия.ОсвобождениеФИОВрача2 КАК ОсвобождениеФИОВрача2,
	|	Пособия.ОсвобождениеИдентификационныйНомерВрача2 КАК ОсвобождениеИдентификационныйНомерВрача2,
	|	Пособия.ОсвобождениеФИОВрачаПредседателяВК2 КАК ОсвобождениеФИОВрачаПредседателяВК2,
	|	Пособия.ОсвобождениеДолжностьВрачаПредседателяВК2 КАК ОсвобождениеДолжностьВрачаПредседателяВК2,
	|	Пособия.ОсвобождениеИдентификационныйНомерВрачаПредседателяВК2 КАК ОсвобождениеИдентификационныйНомерВрачаПредседателяВК2,
	|	Пособия.ОсвобождениеДатаНачала3 КАК ОсвобождениеДатаНачала3,
	|	Пособия.ОсвобождениеДатаОкончания3 КАК ОсвобождениеДатаОкончания3,
	|	Пособия.ОсвобождениеДолжностьВрача3 КАК ОсвобождениеДолжностьВрача3,
	|	Пособия.ОсвобождениеФИОВрача3 КАК ОсвобождениеФИОВрача3,
	|	Пособия.ОсвобождениеИдентификационныйНомерВрача3 КАК ОсвобождениеИдентификационныйНомерВрача3,
	|	Пособия.ОсвобождениеФИОВрачаПредседателяВК3 КАК ОсвобождениеФИОВрачаПредседателяВК3,
	|	Пособия.ОсвобождениеДолжностьВрачаПредседателяВК3 КАК ОсвобождениеДолжностьВрачаПредседателяВК3,
	|	Пособия.ОсвобождениеИдентификационныйНомерВрачаПредседателяВК3 КАК ОсвобождениеИдентификационныйНомерВрачаПредседателяВК3,
	|	Пособия.ГруппаИнвалидности КАК ГруппаИнвалидности,
	|	ФизическиеЛица.Пол КАК Пол,
	|	Пособия.ДатаНачалаОплаты КАК ДатаНачалаОплаты,
	|	Пособия.ДатаОкончанияОплаты КАК ДатаОкончанияОплаты,
	|	Пособия.СтажЛет КАК СтажЛет,
	|	Пособия.СтажМесяцев КАК СтажМесяцев,
	|	Пособия.СтажДней КАК СтажДней,
	|	Пособия.СтажРасширенныйЛет КАК СтажРасширенныйЛет,
	|	Пособия.СтажРасширенныйМесяцев КАК СтажРасширенныйМесяцев,
	|	Пособия.СтажРасширенныйДней КАК СтажРасширенныйДней,
	|	Пособия.ФинансированиеФедеральнымБюджетом КАК ФинансированиеФедеральнымБюджетом,
	|	Пособия.ДатаАктаН1 КАК ДатаАктаФормыН1,
	|	ВЫБОР
	|		КОГДА Пособия.ДатаПредставленияПакетаДокументов <> ДАТАВРЕМЯ(1, 1, 1)
	|			ТОГДА Пособия.ДатаПредставленияПакетаДокументов
	|		КОГДА ЗаявлениеСотрудника.ДатаПредставленияПакетаДокументов <> ДАТАВРЕМЯ(1, 1, 1)
	|			ТОГДА ЗаявлениеСотрудника.ДатаПредставленияПакетаДокументов
	|		ИНАЧЕ ЗаявлениеСотрудника.Дата
	|	КОНЕЦ КАК ДатаПредставленияПакетаДокументов,
	|	ЗаявлениеСотрудника.ДатаСправкиОНеполученииПособияОтОтца КАК ДатаСправкиОНеполученииПособияОтОтца,
	|	ЗаявлениеСотрудника.НомерСправкиОНеполученииПособияОтОтца КАК НомерСправкиОНеполученииПособияОтОтца,
	|	ЗаявлениеСотрудника.ДатаСправкиОНеполученииПособияОтМатери КАК ДатаСправкиОНеполученииПособияОтМатери,
	|	ЗаявлениеСотрудника.НомерСправкиОНеполученииПособияОтМатери КАК НомерСправкиОНеполученииПособияОтМатери,
	|	ЗаявлениеСотрудника.ВидОсобойЗоныПроживанияРаботы КАК СтатусЛьготнойЗоны,
	|	ЗаявлениеСотрудника.ОтношениеКОсобойЗоне КАК ПроживаниеРаботаВЛьготнойЗоне,
	|	ЗаявлениеСотрудника.ДатаСправкиОНеполученииПособияПоДругимМестамРаботы КАК ДатаСправкиПоДругимМестамРаботы,
	|	ЗаявлениеСотрудника.НомерСправкиОНеполученииПособияПоДругимМестамРаботы КАК НомерСправкиПоДругимМестамРаботы,
	|	ЗаявлениеСотрудника.НомерПриказаОЗаменеПослеродовогоОтпуска КАК НомерПриказаОЗаменеПослеродовогоОтпуска,
	|	ЗаявлениеСотрудника.ДатаПриказаОЗаменеПослеродовогоОтпуска КАК ДатаПриказаОЗаменеПослеродовогоОтпуска,
	|	ЗаявлениеСотрудника.ДатаРожденияРебенка КАК ДатаРожденияРебенка,
	|	ЗаявлениеСотрудника.ФамилияРебенка КАК ФамилияРебенка,
	|	ЗаявлениеСотрудника.ИмяРебенка КАК ИмяРебенка,
	|	ЗаявлениеСотрудника.ОтчествоРебенка КАК ОтчествоРебенка,
	|	ЗаявлениеСотрудника.ФормаСправкиОРожденииРебенка КАК ВидСправкиОРожденииРебенка,
	|	ЗаявлениеСотрудника.ДатаСправкиОРожденииРебенка КАК ДатаСправки,
	|	ЗаявлениеСотрудника.НомерСправкиОРожденииРебенка КАК НомерСправки,
	|	ЗаявлениеСотрудника.ДатаРешенияОбОпеке КАК ДатаРешенияОбОпеке,
	|	ЗаявлениеСотрудника.НомерРешенияОбОпеке КАК НомерРешенияОбОпеке,
	|	ЗаявлениеСотрудника.ДатаРешенияОбУсыновлении КАК ДатаРешенияОбУсыновлении,
	|	ЗаявлениеСотрудника.НомерРешенияОбУсыновлении КАК НомерРешенияОбУсыновлении,
	|	ЗаявлениеСотрудника.ДатаДоговораОПередачеРебенкаВПриемнуюСемью КАК ДатаДоговораОПередачеНаВоспитание,
	|	ЗаявлениеСотрудника.НомерДоговораОПередачеРебенкаВПриемнуюСемью КАК НомерДоговораОПередачеНаВоспитание,
	|	ЗаявлениеСотрудника.ДатаСвидетельстваОРождении КАК ДатаСвидетельстваОРождении,
	|	ЗаявлениеСотрудника.СерияСвидетельстваОРождении КАК СерияСвидетельстваОРождении,
	|	ЗаявлениеСотрудника.НомерСвидетельстваОРождении КАК НомерСвидетельстваОРождении,
	|	ЗаявлениеСотрудника.ДатаИногоДокументаПодтверждающегоРождение КАК ДатаИногоПодтвержденияРождения,
	|	ЗаявлениеСотрудника.НомерИногоДокументаПодтверждающегоРождение КАК НомерИногоПодтвержденияРождения,
	|	ВЫБОР
	|		КОГДА ЗаявлениеСотрудника.ДатаСправкиОРожденииРебенка <> ДАТАВРЕМЯ(1, 1, 1)
	|			ТОГДА ЗаявлениеСотрудника.ДатаСправкиОРожденииРебенка
	|		КОГДА ЗаявлениеСотрудника.ДатаСвидетельстваОРождении <> ДАТАВРЕМЯ(1, 1, 1)
	|			ТОГДА ЗаявлениеСотрудника.ДатаСвидетельстваОРождении
	|	КОНЕЦ КАК ДатаСправкиОРождении,
	|	ВЫБОР
	|		КОГДА ЗаявлениеСотрудника.ДатаСправкиОРожденииРебенка <> ДАТАВРЕМЯ(1, 1, 1)
	|			ТОГДА ЗаявлениеСотрудника.НомерСправкиОРожденииРебенка
	|		КОГДА ЗаявлениеСотрудника.ДатаСвидетельстваОРождении <> ДАТАВРЕМЯ(1, 1, 1)
	|			ТОГДА ЗаявлениеСотрудника.СерияСвидетельстваОРождении + "" "" + ЗаявлениеСотрудника.НомерСвидетельстваОРождении
	|	КОНЕЦ КАК НомерСправкиОРождении,
	|	ВЫБОР
	|		КОГДА ЗаявлениеСотрудника.ДатаРешенияОбОпеке <> ДАТАВРЕМЯ(1, 1, 1)
	|			ТОГДА 1
	|		КОГДА ЗаявлениеСотрудника.ДатаРешенияОбУсыновлении <> ДАТАВРЕМЯ(1, 1, 1)
	|			ТОГДА 2
	|		ИНАЧЕ НЕОПРЕДЕЛЕНО
	|	КОНЕЦ КАК УсыновлениеОпека,
	|	ВЫБОР
	|		КОГДА ЗаявлениеСотрудника.ДатаРешенияОбОпеке <> ДАТАВРЕМЯ(1, 1, 1)
	|			ТОГДА ЗаявлениеСотрудника.ДатаРешенияОбОпеке
	|		КОГДА ЗаявлениеСотрудника.ДатаРешенияОбУсыновлении <> ДАТАВРЕМЯ(1, 1, 1)
	|			ТОГДА ЗаявлениеСотрудника.ДатаРешенияОбУсыновлении
	|		ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
	|	КОНЕЦ КАК УсыновлениеОпекаДатаВыдачи,
	|	ВЫБОР
	|		КОГДА ЗаявлениеСотрудника.ДатаРешенияОбОпеке <> ДАТАВРЕМЯ(1, 1, 1)
	|			ТОГДА ЗаявлениеСотрудника.НомерРешенияОбОпеке
	|		КОГДА ЗаявлениеСотрудника.ДатаРешенияОбУсыновлении <> ДАТАВРЕМЯ(1, 1, 1)
	|			ТОГДА ЗаявлениеСотрудника.НомерРешенияОбУсыновлении
	|		ИНАЧЕ """"
	|	КОНЕЦ КАК УсыновлениеОпекаСерияНомер,
	|	Пособия.ВидПодтверждающегоДокумента КАК ВидПодтверждающегоДокумента,
	|	Пособия.НаименованиеПодтверждающегоДокумента КАК НаименованиеПодтверждающегоДокумента,
	|	Пособия.ДатаДокумента КАК ДатаПодтверждающегоДокумента,
	|	Пособия.СерияДокумента + "" "" + Пособия.НомерДокумента КАК СерияНомерПодтверждающегоДокумента,
	|	ВЫБОР
	|		КОГДА ЗаявлениеСотрудника.СправкаОНеполученииПособия = ЗНАЧЕНИЕ(Перечисление.РодителиПредоставившиеСправкуОНеполученииПособия.Отец)
	|			ТОГДА ЗаявлениеСотрудника.ДатаСправкиОНеполученииПособияОтОтца
	|		ИНАЧЕ ЗаявлениеСотрудника.ДатаСправкиОНеполученииПособияОтМатери
	|	КОНЕЦ КАК ДатаСправкиОтДругогоРодителя,
	|	ВЫБОР
	|		КОГДА ЗаявлениеСотрудника.СправкаОНеполученииПособия = ЗНАЧЕНИЕ(Перечисление.РодителиПредоставившиеСправкуОНеполученииПособия.Отец)
	|			ТОГДА ЗаявлениеСотрудника.НомерСправкиОНеполученииПособияОтОтца
	|		ИНАЧЕ ЗаявлениеСотрудника.НомерСправкиОНеполученииПособияОтМатери
	|	КОНЕЦ КАК НомерСправкиОтДругогоРодителя,
	|	ЗаявлениеСотрудника.НаличиеОдногоИзДокументовНаПредыдущихДетей КАК НаличиеОдногоИзДокументовНаПредыдущихДетей,
	|	ЗаявлениеСотрудника.НаличиеСвидетельстваОСмертиПредыдущихДетей КАК НаличиеСвидетельстваОСмертиПредыдущихДетей,
	|	Пособия.ОчередностьРожденияРебенка КАК Очередность,
	|	Пособия.НаличиеРешенияСудаОЛишенииПрав КАК НаличиеРешенияСудаОЛишенииПрав,
	|	Пособия.ОдновременныйУходЗаНесколькимиДетьми КАК ОдновременныйУходЗаНесколькимиДетьми,
	|	ЗаявлениеСотрудника.Перерасчет КАК Перерасчет,
	|	ЗаявлениеСотрудника.КодПричиныПерерасчета КАК КодПричиныПерерасчета,
	|	УведомлениеОПрекращении.ТипПриказа КАК ДосрочноеПрекращениеОтпускаПоУходуТипПриказа,
	|	УведомлениеОПрекращении.ДатаПриказа КАК ДосрочноеПрекращениеОтпускаПоУходуДатаПриказа,
	|	УведомлениеОПрекращении.НомерПриказа КАК ДосрочноеПрекращениеОтпускаПоУходуНомерПриказа,
	|	УведомлениеОПрекращении.ДатаПрекращенияОплаты КАК ДосрочноеПрекращениеОтпускаПоУходуДатаПрекращенияОплаты,
	|	Пособия.ИзвещениеИзФССИспользование КАК ИзвещениеИзФССИспользование,
	|	Пособия.ИзвещениеИзФССНомер КАК ИзвещениеИзФССНомер,
	|	Пособия.ИзвещениеИзФССДата КАК ИзвещениеИзФССДата,
	|	Пособия.LocationCode КАК LocationCode,
	|	Пособия.IsDelivery КАК IsDelivery,
	|	Пособия.AvgSal КАК AvgSal,
	|	Пособия.КодНаличияПриостановленийТД КАК КодНаличияПриостановленийТД,
	|	Пособия.Заявление КАК Заявление,
	|	0 КАК СуммаПособияРаботодателя,
	|	0 КАК СуммаПособияФСС,
	|	0 КАК СуммаПособияВсего,
	|	ДАТАВРЕМЯ(1, 1, 1) КАК ДатаСмертиРебенка,
	|	ЗаявлениеСотрудника.КоличествоОплаченныхДнейНетрудоспособностиИнвалида КАК КоличествоОплаченныхДнейНетрудоспособностиИнвалида,
	|	Пособия.ДатаНачалаРаботы КАК ДатаНачалаРаботы,
	|	ЗаявлениеСотрудника.ПериодПростоя2ДатаНачала КАК ПериодПростояС2,
	|	ЗаявлениеСотрудника.ПериодПростоя2ДатаОкончания КАК ПериодПростояПо2,
	|	ЗаявлениеСотрудника.ПериодПростоя2СреднийЗаработок КАК СреднийЗаработокНаПериодПростоя2,
	|	Пособия.ЭтоЭЛН КАК ЭтоЭЛН,
	|	ЗаявлениеСотрудника.ДолжностнойОклад КАК ДолжностнойОклад,
	|	ЗаявлениеСотрудника.ИнаяИнформация КАК ИнаяИнформация
	|ИЗ
	|	Документ.РеестрСведенийНеобходимыхДляНазначенияИВыплатыПособий.СведенияНеобходимыеДляНазначенияПособий КАК Пособия
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаявлениеСотрудникаНаВыплатуПособия КАК ЗаявлениеСотрудника
	|			ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
	|			ПО ЗаявлениеСотрудника.ФизическоеЛицо = ФизическиеЛица.Ссылка
	|			ЛЕВОЕ СОЕДИНЕНИЕ ВТВидыВыплат КАК ВидыВыплат
	|			ПО ЗаявлениеСотрудника.ВидПособия = ВидыВыплат.ВидПособия
	|		ПО (ЗаявлениеСотрудника.Ссылка = Пособия.Заявление)
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТПредельнаяВеличинаБазы КАК ПредельнаяВеличинаЗаПервыйГодРасчета
	|		ПО (ВЫБОР
	|				КОГДА Пособия.Заявление.ПервыйРасчетныйГод < 2010
	|					ТОГДА 2010
	|				ИНАЧЕ Пособия.Заявление.ПервыйРасчетныйГод
	|			КОНЕЦ = ПредельнаяВеличинаЗаПервыйГодРасчета.Год)
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТПредельнаяВеличинаБазы КАК ПредельнаяВеличинаЗаВторойГодРасчета
	|		ПО (ВЫБОР
	|				КОГДА Пособия.Заявление.ВторойРасчетныйГод < 2010
	|					ТОГДА 2010
	|				ИНАЧЕ Пособия.Заявление.ВторойРасчетныйГод
	|			КОНЕЦ = ПредельнаяВеличинаЗаВторойГодРасчета.Год)
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.УведомлениеОПрекращенииОтпускаПоУходуЗаРебенком КАК УведомлениеОПрекращении
	|		ПО Пособия.ПервичныйДокумент = УведомлениеОПрекращении.Ссылка
	|ГДЕ
	|	Пособия.Ссылка = &Ссылка
	|
	|УПОРЯДОЧИТЬ ПО
	|	НомерСтроки,
	|	ВидВыплаты";
	
	Возврат Запрос;
	
КонецФункции

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

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

Функция ТаблицаВидовВыплат()
	Таблица = Новый ТаблицаЗначений;
	Таблица.Колонки.Добавить("ВидВыплаты", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(1)));
	Таблица.Колонки.Добавить("ВидПособия", Новый ОписаниеТипов("ПеречислениеСсылка.ПособияНазначаемыеФСС"));
	
	СтрокаТаблицы = Таблица.Добавить();
	СтрокаТаблицы.ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеПоВременнойНетрудоспособности;
	СтрокаТаблицы.ВидВыплаты = "1";
	
	СтрокаТаблицы = Таблица.Добавить();
	СтрокаТаблицы.ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеПоБеременностиИРодам;
	СтрокаТаблицы.ВидВыплаты = "2";
	
	СтрокаТаблицы = Таблица.Добавить();
	СтрокаТаблицы.ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеПоБеременностиИРодамВставшимНаУчетВРанниеСроки;
	СтрокаТаблицы.ВидВыплаты = "2";
	
	СтрокаТаблицы = Таблица.Добавить();
	СтрокаТаблицы.ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеВставшимНаУчетВРанниеСроки;
	СтрокаТаблицы.ВидВыплаты = "3";
	
	СтрокаТаблицы = Таблица.Добавить();
	СтрокаТаблицы.ВидПособия = Перечисления.ПособияНазначаемыеФСС.ЕдиновременноеПособиеПриРожденииРебенка;
	СтрокаТаблицы.ВидВыплаты = "4";
	
	СтрокаТаблицы = Таблица.Добавить();
	СтрокаТаблицы.ВидПособия = Перечисления.ПособияНазначаемыеФСС.ЕжемесячноеПособиеПоУходуЗаРебенком;
	СтрокаТаблицы.ВидВыплаты = "5";
	
	// Сдаются на бумажных носителях:
	СтрокаТаблицы = Таблица.Добавить();
	СтрокаТаблицы.ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеВСвязиСНесчастнымСлучаемНаПроизводстве;
	СтрокаТаблицы.ВидВыплаты = "6";
	
	СтрокаТаблицы = Таблица.Добавить();
	СтрокаТаблицы.ВидПособия = Перечисления.ПособияНазначаемыеФСС.ОтпускСверхЕжегодногоНаПериодЛечения;
	СтрокаТаблицы.ВидВыплаты = "9";
	
	Возврат Таблица;
КонецФункции

Функция СреднийЗаработокЗаДваКалендарныхГода(СтруктураДанных)
	СреднийЗаработок = СтруктураДанных.ЗаработокПервыйГодРасчета + СтруктураДанных.ЗаработокВторойГодРасчета;
	Если СреднийЗаработок = 0 Тогда // Средний заработок определяется, исходя из минимального размера оплаты труда.
		СреднийЗаработок = СтруктураДанных.МРОТ * ?(СтруктураДанных.ДоляВремени > 0 И СтруктураДанных.ДоляВремени < 1, СтруктураДанных.ДоляВремени, 1);
	КонецЕсли;
	Возврат СреднийЗаработок;
КонецФункции

// Заполняет поле "RESIDENT_FLAG" - Статус налогоплательщика.
Процедура ЗаполнитьСтатусНалогоплательщикаВСтрокеРеестра(ROW, СтруктураДанных)
	ROW.RESIDENT_FLAG = СЭДОФСС.КодСтатусаНалогоплательщика(СтруктураДанных.СтатусНалогоплательщикаПолучателя);
КонецПроцедуры

// Раскладывает адрес по полям для заполнения реестра в соответствии с форматом.
Функция СтруктураАдреса(Адрес) Экспорт
	// Список возвращаемых полей должен соответствовать формату реестров прямых выплат.
	//  Например:
	//  ADDR2_A1   - Строка(100) - Субъект.
	//  ADDR2_A2   - Строка(100) - Район.
	//  ADDR2_A3   - Строка(100) - Город.
	//  ADDR2_A4   - Строка(100) - Населенный пункт.
	//  ADDR2_PLAN - Строка(100) - Планировочная структура.
	//  ADDR2_A5   - Строка(100) - Улица.
	//  ADDR2_HOUSE    - Строка(30) - Номер дома.
	//  ADDR2_BUILDING - Строка(30) - Строение/Корпус.
	//  ADDR2_FLAT     - Строка(30) - Квартира.
	//  POST_INDEX2    - Строка(6)  - Индекс регистрации.
	ИменаПолей      = "Индекс, Регион, Район, Город, НаселенныйПункт, Территория, Улица, Дом, Корпус, Строение, Сооружение, Участок, Квартира";
	Структура       = КонтактнаяИнформацияБЗК.СведенияОбАдресеСТипами(Адрес);
	СтруктураАдреса = КонтактнаяИнформацияБЗК.СвернутьСведенияОбАдресе(Структура, ИменаПолей);
	
	ПредставлениеКорпусов = КонтактнаяИнформацияБЗК.ПредставлениеКорпусов(СтруктураАдреса, 30);
	СтруктураАдреса.Вставить("Корпус", ПредставлениеКорпусов);
	
	Возврат СтруктураАдреса;
КонецФункции

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

#Область ФиксацияВторичныхДанныхВДокументах

Функция ФиксируемыеРеквизиты()
	ФиксируемыеРеквизиты = Новый Соответствие;
	
	// Реквизиты шапки.
	Шаблон = ФиксацияВторичныхДанныхВДокументах.ОписаниеФиксируемогоРеквизита();
	Шаблон.ИмяГруппы           = "Организация";
	Шаблон.ОснованиеЗаполнения = "Организация";
	
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "РегистрационныйНомерФСС");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ДополнительныйКодФСС");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "КодПодчиненностиФСС");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОГРН");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "КПП");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ИНН");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ТелефонСоставителя");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "АдресЭлектроннойПочтыСоставителя");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "РеестрСоставил");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ИдентификаторФСС");
	
	// Роль подписанта Руководитель.
	Шаблон = ФиксацияВторичныхДанныхВДокументах.ОписаниеФиксируемогоРеквизита();
	Шаблон.ОснованиеЗаполнения = "Организация";
	Шаблон.ИмяГруппы           = "Руководитель";
	Шаблон.ФиксацияГруппы      = Истина;
	
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "Руководитель");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ДолжностьРуководителя");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОснованиеПодписиРуководителя");
	
	// Роль подписанта ГлавныйБухгалтер.
	Шаблон = ФиксацияВторичныхДанныхВДокументах.ОписаниеФиксируемогоРеквизита();
	Шаблон.ОснованиеЗаполнения = "Организация";
	Шаблон.ИмяГруппы           = "ГлавныйБухгалтер";
	Шаблон.ФиксацияГруппы      = Истина;
	
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ГлавныйБухгалтер");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ДолжностьГлавногоБухгалтера");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОснованиеПодписиГлавногоБухгалтера");
	
	
	// Реквизиты табличной части "СведенияНеобходимыеДляНазначенияПособий".
	Шаблон = ФиксацияВторичныхДанныхВДокументах.ОписаниеФиксируемогоРеквизита();
	Шаблон.Путь           = "СведенияНеобходимыеДляНазначенияПособий";
	Шаблон.РеквизитСтроки = Истина;
	
	//   Документ-основание.
	Шаблон.ОснованиеЗаполнения = "ПервичныйДокумент";
	Шаблон.ИмяГруппы           = "СведенияИзПервичногоДокумента";
	Шаблон.ФиксацияГруппы      = Ложь;
	
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ПервичныйДокумент", Ложь);
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "НомерЛисткаНетрудоспособности");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "НомерПервичногоЛисткаНетрудоспособности");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ЯвляетсяПервичнымЛисткомНетрудоспособности");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ЭтоЭЛН");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ПредоставленДубликатЛисткаНетрудоспособности");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ДатаВыдачиЛисткаНетрудоспособности");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "НомерЛисткаПоОсновномуМестуРаботы");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ДатаИзмененияКодаПричиныНетрудоспособности");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ДатаОкончанияПутевки");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "НомерПутевки");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОГРН_Санатория");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "КодПричиныНетрудоспособности");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ДополнительныйКодПричиныНетрудоспособности");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ВторойКодПричиныНетрудоспособности");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "НаименованиеОрганизацииВЛисткеНетрудоспособности");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсновноеМестоРаботы");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ПоУходуВозрастЛет1");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ПоУходуВозрастМесяцев1");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ПоУходуРодственнаяСвязь1");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ПоУходуФИО1");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ПоУходуИспользованоДней1");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ПоУходуВозрастЛет2");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ПоУходуВозрастМесяцев2");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ПоУходуРодственнаяСвязь2");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ПоУходуФИО2");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ПоУходуИспользованоДней2");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ПоставленаНаУчетВРанниеСрокиБеременности");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "КодНарушенияРежима");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ДатаНарушенияРежима");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ПериодНахожденияВСтационареСРебенкомС");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ПериодНахожденияВСтационареСРебенкомПо");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ДатаНаправленияВБюроМСЭ");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ДатаРегистрацииДокументовМСЭ");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ДатаОсвидетельствованияМСЭ");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ГруппаИнвалидности");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеДатаНачала1");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеДатаОкончания1");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеДолжностьВрача1");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеФИОВрача1");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеИдентификационныйНомерВрача1");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеФИОВрачаПредседателяВК1");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеДолжностьВрачаПредседателяВК1");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеИдентификационныйНомерВрачаПредседателяВК1");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеДатаНачала2");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеДатаОкончания2");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеДолжностьВрача2");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеФИОВрача2");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеИдентификационныйНомерВрача2");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеФИОВрачаПредседателяВК2");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеДолжностьВрачаПредседателяВК2");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеИдентификационныйНомерВрачаПредседателяВК2");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеДатаНачала3");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеДатаОкончания3");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеДолжностьВрача3");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеФИОВрача3");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеИдентификационныйНомерВрача3");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеФИОВрачаПредседателяВК3");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеДолжностьВрачаПредседателяВК3");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОсвобождениеИдентификационныйНомерВрачаПредседателяВК3");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ПриступитьКРаботеС");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ДатаНовыйСтатусНетрудоспособного");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "НовыйСтатусНетрудоспособного");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "НомерЛисткаПродолжения");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "УсловияИсчисленияКод1");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "УсловияИсчисленияКод2");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "УсловияИсчисленияКод3");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ДатаАктаН1");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ДатаНачалаРаботы");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ДатаНачалаОплаты");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ДатаОкончанияОплаты");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "МедицинскаяОрганизация");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "Сотрудник");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "LocationCode", Ложь);
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "IsDelivery", Ложь);
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "AvgSal", Ложь);
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "АвтозаполнениеПриостановленийТД", Ложь);
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "КодНаличияПриостановленийТД", Ложь);
	
	//   Сведения из заявления.
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ДатаПредставленияПакетаДокументов", Ложь);
	
	//   Медицинская организация.
	Шаблон.ОснованиеЗаполнения = "МедицинскаяОрганизация";
	Шаблон.ИмяГруппы           = "СведенияОМедицинскойОрганизации";
	Шаблон.ФиксацияГруппы      = Истина;
	
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "НаименованиеМедицинскойОрганизации");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "АдресМедицинскойОрганизации");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОГРНМедицинскойОрганизации");
	
	//   По уходу за ребенком.
	Шаблон.ОснованиеЗаполнения = "ПервичныйДокумент";
	Шаблон.ИмяГруппы           = "СведенияОРебенке";
	Шаблон.ФиксацияГруппы      = Ложь;
	
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ФамилияРебенка");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ИмяРебенка");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ОтчествоРебенка");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ДатаРожденияРебенка");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ВидПодтверждающегоДокумента");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ДатаДокумента");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "СерияДокумента");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "НомерДокумента");
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ФинансированиеФедеральнымБюджетом");
	
	//   Извещение из ФСС / Отказ.
	Шаблон.ОснованиеЗаполнения = "ИзвещениеИзФСС";
	Шаблон.ИмяГруппы           = "ИзвещениеИзФСС";
	Шаблон.ФиксацияГруппы      = Ложь;
	
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ИзвещениеИзФССИспользование", Ложь);
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ИзвещениеИзФССНомер", Ложь);
	ФиксацияВторичныхДанныхВДокументах.ДобавитьФиксируемыйРеквизит(ФиксируемыеРеквизиты, Шаблон, "ИзвещениеИзФССДата", Ложь);
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыРасширеннаяПодсистемы.ПособияСоциальногоСтрахования.ПрямыеВыплаты") Тогда
		МодульПрямыеВыплатыПособийСоциальногоСтрахованияРасширенный = ОбщегоНазначения.ОбщийМодуль("ПрямыеВыплатыПособийСоциальногоСтрахованияРасширенный");
		МодульПрямыеВыплатыПособийСоциальногоСтрахованияРасширенный.ПриОпределенииФиксируемыхРеквизитовРеестраПрямыхВыплат(ФиксируемыеРеквизиты);
	КонецЕсли;
	
	Возврат Новый ФиксированноеСоответствие(ФиксируемыеРеквизиты);
КонецФункции

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

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

#Область ПроцедурыПечатиДокумента

Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
	
	Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "РеестрПособий") Тогда
		УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "РеестрПособий", "Реестр пособий", СформироватьПечатныеФормыРеестров(МассивОбъектов, ОбъектыПечати));
	КонецЕсли;
	
КонецПроцедуры

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

Функция СформироватьТабличныйДокументФормыРеестра(ВыборкаПоШапкеДокумента, ДанныеРеестра, ОписаниеМакета)
	
	ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеестрСведенийНеобходимыхДляНазначенияИВыплатыПособий_Приложения";
	ТабличныйДокументРеестра = Новый ТабличныйДокумент;
	ОписаниеМакетовРеестровФСС = Новый Соответствие;
	
	ВидРеестраФСС = ВыборкаПоШапкеДокумента.ВидРеестра;
	
	Макет = ОписаниеМакета.Макет;
	ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
	ПараметрыОбластиШапка = ОписаниеМакета.Шапка;
	ОбластьПовторятьПриПечати = Макет.ПолучитьОбласть("ПовторятьПриПечати");
	ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
	ПараметрыОбластиСтрока = ОписаниеМакета.Строка;
	ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
	ОбластьПодписи = Макет.ПолучитьОбласть("Подписи");
	ПараметрыОбластиПодписи = ОписаниеМакета.Подписи;
	
	ОбщегоНазначенияБЗККлиентСервер.ОчиститьЗначенияСтруктуры(ПараметрыОбластиШапка);
	ОбщегоНазначенияБЗККлиентСервер.ОчиститьЗначенияСтруктуры(ПараметрыОбластиСтрока);
	ОбщегоНазначенияБЗККлиентСервер.ОчиститьЗначенияСтруктуры(ПараметрыОбластиПодписи);
	
	// Массив со строками - для разбиения на страницы.
	ВыводимыеОбласти = Новый Массив();
	ВыводимыеОбласти.Добавить(ОбластьСтрока);
	
	ЗаполнитьЗначенияСвойств(ПараметрыОбластиШапка, ВыборкаПоШапкеДокумента);
	ЗаполнитьЗначенияСвойств(ПараметрыОбластиПодписи, ВыборкаПоШапкеДокумента);
	
	ВыводитьРасчетныйПериодВШапке = Ложь;
	Если ВидРеестраФСС = Перечисления.ВидыРеестровСведенийНеобходимыхДляНазначенияИВыплатыПособий.ПособияПоНетрудоспособности
		Или ВидРеестраФСС = Перечисления.ВидыРеестровСведенийНеобходимыхДляНазначенияИВыплатыПособий.ПособияВставшимНаУчетВРанниеСроки Тогда
		РасчетныеПериоды = Новый ТаблицаЗначений;
		РасчетныеПериоды.Колонки.Добавить("ПервыйГодРасчета", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(4)));
		РасчетныеПериоды.Колонки.Добавить("ВторойГодРасчета", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(4)));
		Пока ДанныеРеестра.Следующий() Цикл
			ЗаполнитьЗначенияСвойств(РасчетныеПериоды.Добавить(), ДанныеРеестра);
		КонецЦикла;
		РасчетныеПериоды.Свернуть("ПервыйГодРасчета, ВторойГодРасчета");
		ДанныеРеестра.Сбросить();
		ВыводитьРасчетныйПериодВШапке = РасчетныеПериоды.Количество() = 1;
		Если ВыводитьРасчетныйПериодВШапке Тогда
			ПараметрыОбластиШапка.ПериодРасчетаС = "за " + Формат(РасчетныеПериоды[0].ПервыйГодРасчета,"ЧЦ=4; ЧГ=0") + " год";
			ПараметрыОбластиШапка.ПериодРасчетаПо = "за " + Формат(РасчетныеПериоды[0].ВторойГодРасчета,"ЧЦ=4; ЧГ=0") + " год";
		КонецЕсли;
	КонецЕсли;
	
	ОбластьШапка.Параметры.Заполнить(ПараметрыОбластиШапка);
	ОбластьПодписи.Параметры.Заполнить(ПараметрыОбластиПодписи);
	
	ТабличныйДокументРеестра.Очистить();
	ТабличныйДокументРеестра.Вывести(ОбластьШапка);
	ТабличныйДокументРеестра.Вывести(ОбластьПовторятьПриПечати);
	
	ВсегоСтрокДокумента = ДанныеРеестра.Количество();
	ВыведеноСтрок = 0;
	
	// Получим полные номера карт МИР
	СписокКарт = Новый Массив;
	НомераКартМИР = Новый Соответствие;
	Пока ДанныеРеестра.Следующий() Цикл
		Если ДанныеРеестра.СпособВыплатыПособия = Перечисления.СпособыВыплатыПособия.НаКартуМИР Тогда
			Если НомераКартМИР[ДанныеРеестра.КартаМИР] = Неопределено Тогда
				НомераКартМИР.Вставить(ДанныеРеестра.КартаМИР, "");
				СписокКарт.Добавить(ДанныеРеестра.КартаМИР);
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	Если СписокКарт.Количество() > 0 Тогда
		НомераКартМИР = БанковскиеКарты.ПолныеНомераКарт(СписокКарт);
	КонецЕсли;
	ДанныеРеестра.Сбросить();
	
	Пока ДанныеРеестра.СледующийПоЗначениюПоля("НомерСтроки") Цикл
		ЗаполнитьЗначенияСвойств(ПараметрыОбластиСтрока, ДанныеРеестра);
		
		ПараметрыОбластиСтрока.СерияДокумента      = ДанныеРеестра.СерияУдостоверенияЛичности;
		ПараметрыОбластиСтрока.НомерДокумента      = ДанныеРеестра.НомерУдостоверенияЛичности;
		ПараметрыОбластиСтрока.ДатаВыдачиДокумента = ДанныеРеестра.ДатаВыдачиУдостоверенияЛичности;
		
		Если Не ЗначениеЗаполнено(ДанныеРеестра.Отчество) Тогда
			ПараметрыОбластиСтрока.Отчество = "-"
		КонецЕсли;
		
		ПараметрыОбластиСтрока.НомерКартыМИР = "-";
		Если ДанныеРеестра.СпособВыплатыПособия = Перечисления.СпособыВыплатыПособия.ПочтовымПереводом Тогда
			ПараметрыОбластиСтрока.АдресПочтовый = УправлениеКонтактнойИнформацией.ПредставлениеКонтактнойИнформации(ДанныеРеестра.АдресПолучателяФактический);
			ПараметрыОбластиСтрока.НаименованиеБанка = "-";
			ПараметрыОбластиСтрока.БИКБанка = "-";
			ПараметрыОбластиСтрока.НомерЛицевогоСчета = "-";
			ПараметрыОбластиСтрока.СпособВыплаты = "почтовым переводом";
		Иначе
			ПараметрыОбластиСтрока.СпособВыплаты = "на банковский счет";
			ПараметрыОбластиСтрока.АдресПочтовый = "-";
			Если ДанныеРеестра.СпособВыплатыПособия = Перечисления.СпособыВыплатыПособия.НаКартуМИР Тогда
				ПараметрыОбластиСтрока.НомерКартыМИР = НомераКартМИР[ДанныеРеестра.КартаМИР];
			КонецЕсли;
		КонецЕсли;
		
		ПараметрыОбластиСтрока.АдресРегистрации = УправлениеКонтактнойИнформацией.ПредставлениеКонтактнойИнформации(
			ДанныеРеестра.АдресПолучателяРегистрации);
		ПараметрыОбластиСтрока.ИнаяПолезнаяИнформация = "-";
		
		// Приложение 3 и Приложение 5
		Если ВидРеестраФСС = Перечисления.ВидыРеестровСведенийНеобходимыхДляНазначенияИВыплатыПособий.ЕдиновременныеПособияПриРожденииРебенка
			Или  ВидРеестраФСС = Перечисления.ВидыРеестровСведенийНеобходимыхДляНазначенияИВыплатыПособий.ЕжемесячныеПособияПоУходуЗаРебенком Тогда
			
			ПараметрыОбластиСтрока.Статус = "-";
			
			Если Не ЗначениеЗаполнено(ДанныеРеестра.НаименованиеДокументаНаПроживание) Тогда
				ПараметрыОбластиСтрока.НаименованиеДокументаНаПроживание =  "-"
			КонецЕсли;
			Если Не ЗначениеЗаполнено(ДанныеРеестра.СерияДокументаНаПроживание) Тогда
				ПараметрыОбластиСтрока.СерияДокументаНаПроживание = "-"
			КонецЕсли;
			Если Не ЗначениеЗаполнено(ДанныеРеестра.НомерДокументаНаПроживание) Тогда
				ПараметрыОбластиСтрока.НомерДокументаНаПроживание = "-"
			КонецЕсли;
			Если Не ЗначениеЗаполнено(ДанныеРеестра.ДатаВыдачиДокументаНаПроживание) Тогда
				ПараметрыОбластиСтрока.ДатаВыдачиДокументаНаПроживание = "-"
			КонецЕсли;
			
		КонецЕсли;
			
		// Приложение 1
		Если ВидРеестраФСС = Перечисления.ВидыРеестровСведенийНеобходимыхДляНазначенияИВыплатыПособий.ПособияПоНетрудоспособности
			Или ВидРеестраФСС = Перечисления.ВидыРеестровСведенийНеобходимыхДляНазначенияИВыплатыПособий.ПособияВставшимНаУчетВРанниеСроки Тогда
			
			Если Не ЗначениеЗаполнено(ДанныеРеестра.НаименованиеДокументаНаПроживание) Тогда
				ПараметрыОбластиСтрока.НаименованиеДокументаНаПроживание =  "-"
			КонецЕсли;
			Если ЗначениеЗаполнено(ДанныеРеестра.СерияДокументаНаПроживание) Или ЗначениеЗаполнено(ДанныеРеестра.НомерДокументаНаПроживание) Тогда
				ПараметрыОбластиСтрока.СерияНомерДокументаНаПроживание = СокрЛП(ДанныеРеестра.СерияДокументаНаПроживание + " " + ДанныеРеестра.НомерДокументаНаПроживание);
			Иначе
				ПараметрыОбластиСтрока.СерияНомерДокументаНаПроживание = "-"
			КонецЕсли;
			Если Не ЗначениеЗаполнено(ДанныеРеестра.ДатаВыдачиДокументаНаПроживание) Тогда
				ПараметрыОбластиСтрока.ДатаВыдачиДокументаНаПроживание = "-"
			КонецЕсли;
			
			Если ДанныеРеестра.ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеПоБеременностиИРодам 
				Или Не ЗначениеЗаполнено(ПараметрыОбластиСтрока.ИННПолучателя) Тогда
				ПараметрыОбластиСтрока.ИННПолучателя = "-";
			КонецЕсли;
			
			Если ЗначениеЗаполнено(ДанныеРеестра.НомерПервичногоЛисткаНетрудоспособности) Тогда
				ПараметрыОбластиСтрока.НомерЛисткаНетрудоспособности = СокрЛП(ПараметрыОбластиСтрока.НомерЛисткаНетрудоспособности) + " (" + СокрЛП(ДанныеРеестра.НомерПервичногоЛисткаНетрудоспособности) + ")";
			КонецЕсли;
			
			ПараметрыОбластиСтрока.ПричинаНетрудоспособности = ДанныеРеестра.КодПричиныНетрудоспособности;
			Если ЗначениеЗаполнено(ДанныеРеестра.ДополнительныйКодПричиныНетрудоспособности) Тогда
				ПараметрыОбластиСтрока.ПричинаНетрудоспособности = ПараметрыОбластиСтрока.ПричинаНетрудоспособности + ", " + ДанныеРеестра.ДополнительныйКодПричиныНетрудоспособности;
			КонецЕсли;
			Если ЗначениеЗаполнено(ДанныеРеестра.ВторойКодПричиныНетрудоспособности) Тогда
				ПараметрыОбластиСтрока.ПричинаНетрудоспособности = ПараметрыОбластиСтрока.ПричинаНетрудоспособности + ", "
					+ ДанныеРеестра.ВторойКодПричиныНетрудоспособности
					+ ?(ЗначениеЗаполнено(ДанныеРеестра.ДатаИзмененияКодаПричиныНетрудоспособности), " (" + Формат(ДанныеРеестра.ДатаИзмененияКодаПричиныНетрудоспособности,"ДФ=dd.MM.yyyy") + ")", "");
			КонецЕсли;
			
			ПараметрыОбластиСтрока.УходЗаРодственником = ?(ЗначениеЗаполнено(ДанныеРеестра.ПоУходуФИО1), СокрЛП(ДанныеРеестра.ПоУходуФИО1) 
			+ ОписаниеСтажаВПечатнойФорме(ДанныеРеестра.ПоУходуВозрастЛет1, ДанныеРеестра.ПоУходуВозрастМесяцев1)
			+ ?(ЗначениеЗаполнено(ДанныеРеестра.ПоУходуРодственнаяСвязь1),", " + ДанныеРеестра.ПоУходуРодственнаяСвязь1, ""),"")
			+ ?(ЗначениеЗаполнено(ДанныеРеестра.ПоУходуФИО2), "; " + Символы.ПС + СокрЛП(ДанныеРеестра.ПоУходуФИО2) 
			+ ОписаниеСтажаВПечатнойФорме(ДанныеРеестра.ПоУходуВозрастЛет2, ДанныеРеестра.ПоУходуВозрастМесяцев2)
			+ ?(ЗначениеЗаполнено(ДанныеРеестра.ПоУходуРодственнаяСвязь2),", " + ДанныеРеестра.ПоУходуРодственнаяСвязь2, ""),"");
			Если ДанныеРеестра.ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеПоБеременностиИРодам
				Или Не ЗначениеЗаполнено(ПараметрыОбластиСтрока.УходЗаРодственником) Тогда
				ПараметрыОбластиСтрока.УходЗаРодственником = "-";
			КонецЕсли;
			
			Если ДанныеРеестра.ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеПоБеременностиИРодам
				Или Не (ЗначениеЗаполнено(ДанныеРеестра.ПериодНахожденияВСтационареСРебенкомС) И ЗначениеЗаполнено(ДанныеРеестра.ПериодНахожденияВСтационареСРебенкомПо)) Тогда
				ПараметрыОбластиСтрока.ПериодНахожденияВСтационареСРебенком = "-";
			Иначе
				ПараметрыОбластиСтрока.ПериодНахожденияВСтационареСРебенком = ОписаниеПериодаВПечатнойФорме(ДанныеРеестра.ПериодНахожденияВСтационареСРебенкомС, ДанныеРеестра.ПериодНахожденияВСтационареСРебенкомПо);
			КонецЕсли;
			
			ПараметрыОбластиСтрока.Освобождение = ОписаниеПериодаВПечатнойФорме(ДанныеРеестра.ДатаНачала, ДанныеРеестра.ДатаОкончания);
			
			ПараметрыОбластиСтрока.УстановленаИзмененаГруппаИнвалидности = ЗначениеЗаполнено(ДанныеРеестра.ГруппаИнвалидности);
			
			Если Не ЗначениеЗаполнено(ПараметрыОбластиСтрока.ДатаСправкиБеременной) Тогда
				ПараметрыОбластиСтрока.ДатаСправкиБеременной = "-"
			КонецЕсли;
			Если Не ЗначениеЗаполнено(ПараметрыОбластиСтрока.НомерСправкиБеременной) Тогда
				ПараметрыОбластиСтрока.НомерСправкиБеременной = "-"
			КонецЕсли;
			
			Если ЗначениеЗаполнено(ДанныеРеестра.КодНарушенияРежима) И ЗначениеЗаполнено(ДанныеРеестра.ДатаНарушенияРежима) Тогда
				ПараметрыОбластиСтрока.НарушениеРежима = ДанныеРеестра.КодНарушенияРежима + ", " + Формат(ДанныеРеестра.ДатаНарушенияРежима,"ДФ=dd.MM.yyyy");
			Иначе
				ПараметрыОбластиСтрока.НарушениеРежима = "-";
			КонецЕсли;
			
			НестраховойСтаж = УчетПособийСоциальногоСтрахования.НестраховойСтаж(ДанныеРеестра);
			Если НестраховойСтаж.Лет <> 0 Или НестраховойСтаж.Месяцев <> 0 Тогда
				ПараметрыОбластиСтрока.Стаж = СтрЗаменить(ОписаниеСтажаВПечатнойФорме(ДанныеРеестра.СтажРасширенныйЛет, ДанныеРеестра.СтажРасширенныйМесяцев),",","");
				ПараметрыОбластиСтрока.НестраховыеПериоды = СтрЗаменить(ОписаниеСтажаВПечатнойФорме(НестраховойСтаж.Лет, НестраховойСтаж.Месяцев),",","");
			Иначе
				ПараметрыОбластиСтрока.Стаж = СтрЗаменить(ОписаниеСтажаВПечатнойФорме(ДанныеРеестра.СтажЛет, ДанныеРеестра.СтажМесяцев),",","");
				ПараметрыОбластиСтрока.НестраховыеПериоды = "-";
			КонецЕсли;
			
			Если ЗначениеЗаполнено(ДанныеРеестра.СрочныйДоговорС) И ЗначениеЗаполнено(ДанныеРеестра.СрочныйДоговорПо) Тогда
				ПараметрыОбластиСтрока.СрочныйДоговор = ОписаниеПериодаВПечатнойФорме(ДанныеРеестра.СрочныйДоговорС, ДанныеРеестра.СрочныйДоговорПо);
			Иначе
				ПараметрыОбластиСтрока.СрочныйДоговор = "-";
			КонецЕсли;
			
			УсловияИсчисления = Новый Массив;
			Если ЗначениеЗаполнено(ДанныеРеестра.УсловияИсчисленияКод1) Тогда
				УсловияИсчисления.Добавить(ДанныеРеестра.УсловияИсчисленияКод1);
			КонецЕсли;
			Если ЗначениеЗаполнено(ДанныеРеестра.УсловияИсчисленияКод2) Тогда
				УсловияИсчисления.Добавить(ДанныеРеестра.УсловияИсчисленияКод2);
			КонецЕсли;
			Если ЗначениеЗаполнено(ДанныеРеестра.УсловияИсчисленияКод3) Тогда
				УсловияИсчисления.Добавить(ДанныеРеестра.УсловияИсчисленияКод3);
			КонецЕсли;
			Если УсловияИсчисления.Количество() Тогда
				ПараметрыОбластиСтрока.УсловияИсчисления = СтрСоединить(УсловияИсчисления, ", ");
			Иначе
				ПараметрыОбластиСтрока.УсловияИсчисления = "-";
			КонецЕсли;
			
			ПараметрыОбластиСтрока.ПериодПростояС = "";
			ПараметрыОбластиСтрока.ПериодПростояПо = "";
			Если ЗначениеЗаполнено(ДанныеРеестра.ПериодПростояС1) И ЗначениеЗаполнено(ДанныеРеестра.ПериодПростояПо1) Тогда
				ПараметрыОбластиСтрока.ПериодПростояС = Формат(ДанныеРеестра.ПериодПростояС1,"ДФ=dd.MM.yyyy");
				ПараметрыОбластиСтрока.ПериодПростояПо = Формат(ДанныеРеестра.ПериодПростояПо1,"ДФ=dd.MM.yyyy");
			КонецЕсли;
			Если ЗначениеЗаполнено(ДанныеРеестра.ПериодПростояС2) И ЗначениеЗаполнено(ДанныеРеестра.ПериодПростояПо2) Тогда
				ПараметрыОбластиСтрока.ПериодПростояС = ПараметрыОбластиСтрока.ПериодПростояС 
					+ ?(ЗначениеЗаполнено(ПараметрыОбластиСтрока.ПериодПростояС), "; ", "")
					+ Формат(ДанныеРеестра.ПериодПростояС2,"ДФ=dd.MM.yyyy");
				ПараметрыОбластиСтрока.ПериодПростояПо = ПараметрыОбластиСтрока.ПериодПростояПо
					+ ?(ЗначениеЗаполнено(ПараметрыОбластиСтрока.ПериодПростояПо), "; ", "")
					+ Формат(ДанныеРеестра.ПериодПростояПо2,"ДФ=dd.MM.yyyy");
			КонецЕсли;
			Если ПустаяСтрока(ПараметрыОбластиСтрока.ПериодПростояС) Тогда
				ПараметрыОбластиСтрока.ПериодПростояС = "-";
			КонецЕсли;
			Если ПустаяСтрока(ПараметрыОбластиСтрока.ПериодПростояПо) Тогда
				ПараметрыОбластиСтрока.ПериодПростояПо = "-";
			КонецЕсли;
			
			Если ДанныеРеестра.СчитатьПоПравилам2010Года Тогда
				ПараметрыОбластиСтрока.ПериодРасчетаС = Формат(ДанныеРеестра.ПериодРасчетаСреднегоЗаработкаНачало,"ДФ=dd.MM.yyyy");
				ПараметрыОбластиСтрока.ПериодРасчетаПо = Формат(ДанныеРеестра.ПериодРасчетаСреднегоЗаработкаОкончание,"ДФ=dd.MM.yyyy");
				ПараметрыОбластиСтрока.СреднийЗаработок = Формат(ДанныеРеестра.СреднийЗаработокЗаРасчетныйПериод,"ЧЦ=15; ЧДЦ=2; ЧГ=0") + " (" + Формат(ДанныеРеестра.КалендарныхДнейРасчетногоПериода,"ЧЦ=3; ЧГ=0") + ")";
			ИначеЕсли ДанныеРеестра.ПорядокРасчетаСреднегоЗаработка = Перечисления.СпособыРасчетаСреднегоЗаработкаДляОплатыПособия.СреднийЗаработок Тогда
				ПараметрыОбластиСтрока.ПериодРасчетаС = Формат(ДанныеРеестра.ПервыйГодРасчета,"ЧЦ=4; ЧГ=0"); 
				ПараметрыОбластиСтрока.ПериодРасчетаПо = Формат(ДанныеРеестра.ВторойГодРасчета,"ЧЦ=4; ЧГ=0");
				ПараметрыОбластиСтрока.ЗаработокПервыйГод = Формат(ДанныеРеестра.ЗаработокПервыйГодРасчета ,"ЧЦ=15; ЧДЦ=2; ЧГ=0") + ?(Не ВыводитьРасчетныйПериодВШапке, "(за " + Формат(ДанныеРеестра.ПервыйГодРасчета,"ЧЦ=4; ЧГ=0") + " год)", "");
				ПараметрыОбластиСтрока.ЗаработокВторойГод = Формат(ДанныеРеестра.ЗаработокВторойГодРасчета ,"ЧЦ=15; ЧДЦ=2; ЧГ=0") + ?(Не ВыводитьРасчетныйПериодВШапке,  "(за " + Формат(ДанныеРеестра.ВторойГодРасчета,"ЧЦ=4; ЧГ=0") + " год)", "");
			Иначе
				ПараметрыОбластиСтрока.ПериодРасчетаС = "-";
				ПараметрыОбластиСтрока.ПериодРасчетаПо = "-";
				Если ДанныеРеестра.ПорядокРасчетаСреднегоЗаработка = Перечисления.СпособыРасчетаСреднегоЗаработкаДляОплатыПособия.ИсходяИзТарифнойСтавки Тогда
					ПараметрыОбластиСтрока.СреднийЗаработок = Формат(ДанныеРеестра.ДолжностнойОклад,"ЧЦ=15; ЧДЦ=2; ЧГ=0");
				ИначеЕсли ДанныеРеестра.ПорядокРасчетаСреднегоЗаработка = Перечисления.СпособыРасчетаСреднегоЗаработкаДляОплатыПособия.ИсходяИзМРОТ Тогда
					ПараметрыОбластиСтрока.СреднийЗаработок = Формат(ДанныеРеестра.МРОТ * ?(ДанныеРеестра.РайонныйКоэффициент > 1, ДанныеРеестра.РайонныйКоэффициент, 1),"ЧЦ=15; ЧДЦ=2; ЧГ=0");
				Иначе
					ПараметрыОбластиСтрока.СреднийЗаработок = "";
				КонецЕсли;
			КонецЕсли;
			
			Если Не ЗначениеЗаполнено(ПараметрыОбластиСтрока.ДоляВремени) Тогда
				ПараметрыОбластиСтрока.ДоляВремени = "-";
			КонецЕсли;
			
		КонецЕсли;
		
		// Приложение 3
		Если ВидРеестраФСС = Перечисления.ВидыРеестровСведенийНеобходимыхДляНазначенияИВыплатыПособий.ЕдиновременныеПособияПриРожденииРебенка Тогда
			
			ПараметрыОбластиСтрока.Ребенок = ДанныеРеестра.ФамилияРебенка 
			+ " " + ДанныеРеестра.ИмяРебенка 
			+ " " + ДанныеРеестра.ОтчествоРебенка 
			+ "("+ Формат(ДанныеРеестра.ДатаРожденияРебенка, "ДФ=dd.MM.yyyy") + ")";
			
			Если ДанныеРеестра.ДатаПредставленияПакетаДокументов < ПрямыеВыплатыПособийСоциальногоСтрахования.ДатаВступленияВСилуФорм2021Года() Тогда
				ПредставлениеТипа = НСтр("ru = 'Заявление о выплате пособия'");
			Иначе
				ПредставлениеТипа = НСтр("ru = 'Сведения о застрахованном лице'");
			КонецЕсли;
			ПараметрыОбластиСтрока.ДокументыОснования = ПредставлениеДокумента(ПредставлениеТипа, ДанныеРеестра.ДатаПредставленияПакетаДокументов);
			
			Если ЗначениеЗаполнено(ДанныеРеестра.ДатаСправки) И ЗначениеЗаполнено(ДанныеРеестра.НомерСправки) Тогда
				ПараметрыОбластиСтрока.ДокументыОснования = ПараметрыОбластиСтрока.ДокументыОснования + ", "
					+ ПредставлениеДокумента(
						СтрШаблон(НСтр("ru = 'Справка о рождении, %1,'"), ДанныеРеестра.ВидСправкиОРожденииРебенка),
						ДанныеРеестра.ДатаСправки,
						ДанныеРеестра.НомерСправки);
			КонецЕсли;
			Если ЗначениеЗаполнено(ДанныеРеестра.ДатаСвидетельстваОРождении) 
				И ЗначениеЗаполнено(ДанныеРеестра.НомерСвидетельстваОРождении) 
				И ЗначениеЗаполнено(ДанныеРеестра.СерияСвидетельстваОРождении) Тогда
				ПараметрыОбластиСтрока.ДокументыОснования = ПараметрыОбластиСтрока.ДокументыОснования + ", " 
					+ ПредставлениеДокумента(
						НСтр("ru = 'Свидетельство о рождении'"),
						ДанныеРеестра.ДатаСвидетельстваОРождении,
						ДанныеРеестра.НомерСвидетельстваОРождении,
						ДанныеРеестра.СерияСвидетельстваОРождении);
			КонецЕсли;
			Если ЗначениеЗаполнено(ДанныеРеестра.ДатаИногоПодтвержденияРождения) И ЗначениеЗаполнено(ДанныеРеестра.НомерИногоПодтвержденияРождения) Тогда
				ПараметрыОбластиСтрока.ДокументыОснования = ПараметрыОбластиСтрока.ДокументыОснования + ", " 
					+ ПредставлениеДокумента(
						НСтр("ru = '<Иное подтверждение рождения>'"),
						ДанныеРеестра.ДатаИногоПодтвержденияРождения,
						ДанныеРеестра.НомерИногоПодтвержденияРождения);
			КонецЕсли;
			Если ЗначениеЗаполнено(ДанныеРеестра.ДатаСправкиОтДругогоРодителя) И ЗначениеЗаполнено(ДанныеРеестра.НомерСправкиОтДругогоРодителя) Тогда
				ПараметрыОбластиСтрока.ДокументыОснования = ПараметрыОбластиСтрока.ДокументыОснования + ", "
					+ ПредставлениеДокумента(
						НСтр("ru = 'Справка от другого родителя о неполучении пособия'"),
						ДанныеРеестра.ДатаСправкиОтДругогоРодителя,
						ДанныеРеестра.НомерСправкиОтДругогоРодителя);
			КонецЕсли;
			Если ЗначениеЗаполнено(ДанныеРеестра.ДатаРешенияОбОпеке) И ЗначениеЗаполнено(ДанныеРеестра.НомерРешенияОбОпеке) Тогда
				ПараметрыОбластиСтрока.ДокументыОснования = ПараметрыОбластиСтрока.ДокументыОснования + ", "
					+ ПредставлениеДокумента(
						НСтр("ru = 'Решение об установлении опеки'"),
						ДанныеРеестра.ДатаРешенияОбОпеке,
						ДанныеРеестра.НомерРешенияОбОпеке);
			КонецЕсли;
			Если ЗначениеЗаполнено(ДанныеРеестра.ДатаРешенияОбУсыновлении) И ЗначениеЗаполнено(ДанныеРеестра.НомерРешенияОбУсыновлении) Тогда
				ПараметрыОбластиСтрока.ДокументыОснования = ПараметрыОбластиСтрока.ДокументыОснования + ", "
					+ ПредставлениеДокумента(
						НСтр("ru = 'Решение об усыновлении'"),
						ДанныеРеестра.ДатаРешенияОбУсыновлении,
						ДанныеРеестра.НомерРешенияОбУсыновлении);
			КонецЕсли;
			Если ЗначениеЗаполнено(ДанныеРеестра.ДатаДоговораОПередачеНаВоспитание) И ЗначениеЗаполнено(ДанныеРеестра.НомерДоговораОПередачеНаВоспитание) Тогда
				ПараметрыОбластиСтрока.ДокументыОснования = ПараметрыОбластиСтрока.ДокументыОснования + ", " 
					+ ПредставлениеДокумента(
						НСтр("ru = 'Договор о передаче ребенка на воспитание в приемную семью'"),
						ДанныеРеестра.ДатаДоговораОПередачеНаВоспитание,
						ДанныеРеестра.НомерДоговораОПередачеНаВоспитание);
			КонецЕсли;
			
		КонецЕсли;
		
		// Приложение 5
		Если ВидРеестраФСС = Перечисления.ВидыРеестровСведенийНеобходимыхДляНазначенияИВыплатыПособий.ЕжемесячныеПособияПоУходуЗаРебенком Тогда
			
			ПараметрыОбластиСтрока.ОписаниеЛьгот = "-";
			Если ЗначениеЗаполнено(ДанныеРеестра.ФинансированиеФедеральнымБюджетом) 
				И НЕ ДанныеРеестра.ФинансированиеФедеральнымБюджетом = Перечисления.ОснованияФинансированияПособияФедеральнымБюджетом.ЗачетНестраховыхПериодов 
				И ЗначениеЗаполнено(ДанныеРеестра.ПроживаниеРаботаВЛьготнойЗоне)
				И НЕ ДанныеРеестра.ПроживаниеРаботаВЛьготнойЗоне = Перечисления.ОтношениеКОсобойЗоне.Нет Тогда
				Если ДанныеРеестра.СтатусЛьготнойЗоны = Перечисления.ВидыОсобойЗоныПроживанияРаботы.ЗонаСПравомНаОтселение Тогда
					ПараметрыОбластиСтрока.ОписаниеЛьгот = "1";
				ИначеЕсли ДанныеРеестра.СтатусЛьготнойЗоны = Перечисления.ВидыОсобойЗоныПроживанияРаботы.ЗонаСЛьготнымСоциальноЭкономическимСтатусом Тогда 
					ПараметрыОбластиСтрока.ОписаниеЛьгот = "2";
				ИначеЕсли ДанныеРеестра.СтатусЛьготнойЗоны = Перечисления.ВидыОсобойЗоныПроживанияРаботы.ЗонаОтселения Тогда	
					ПараметрыОбластиСтрока.ОписаниеЛьгот = "3";
				ИначеЕсли ДанныеРеестра.СтатусЛьготнойЗоны = Перечисления.ВидыОсобойЗоныПроживанияРаботы.ЗонаЗагрязненияПриАварииПОМаяк Тогда 
					ПараметрыОбластиСтрока.ОписаниеЛьгот = "4";
				КонецЕсли;
			КонецЕсли;
			
			Если ЗначениеЗаполнено(ДанныеРеестра.НомерПриказаНаОтпускПоУходуЗаРебенком) И ЗначениеЗаполнено(ДанныеРеестра.ДатаПриказаНаОтпускПоУходуЗаРебенком) Тогда
				ПараметрыОбластиСтрока.ОписаниеПриказаНаОтпуск = "Приказ № " + ДанныеРеестра.НомерПриказаНаОтпускПоУходуЗаРебенком
				+ " от " + Формат(ДанныеРеестра.ДатаПриказаНаОтпускПоУходуЗаРебенком,"ДФ=dd.MM.yyyy") + Символы.ПС
				+ "(отпуск: " + ОписаниеПериодаВПечатнойФорме(ДанныеРеестра.ДатаНачала, ДанныеРеестра.ДатаОкончания) + ")";
			Иначе
				ПараметрыОбластиСтрока.ОписаниеПриказаНаОтпуск = "Отпуск: " + ОписаниеПериодаВПечатнойФорме(ДанныеРеестра.ДатаНачала, ДанныеРеестра.ДатаОкончания);
			КонецЕсли;
			
			Если ДанныеРеестра.ДатаПредставленияПакетаДокументов < ПрямыеВыплатыПособийСоциальногоСтрахования.ДатаВступленияВСилуФорм2021Года() Тогда
				ПредставлениеТипа = НСтр("ru = 'Заявление о выплате пособия от'");
			Иначе
				ПредставлениеТипа = НСтр("ru = 'Сведения о застрахованном лице от'");
			КонецЕсли;
			ДокументыНаДетей = ПредставлениеТипа + " " + Формат(ДанныеРеестра.ДатаПредставленияПакетаДокументов,"ДФ=dd.MM.yyyy")+ Символы.ПС
			+ ДанныеРеестра.НаименованиеПодтверждающегоДокумента + " от " + Формат(ДанныеРеестра.ДатаПодтверждающегоДокумента,"ДФ=dd.MM.yyyy") 
			+ " № "  + СокрЛПД(ДанныеРеестра.СерияНомерПодтверждающегоДокумента);
			Если ЗначениеЗаполнено(ДанныеРеестра.ДатаСправкиОНеполученииПособияОтОтца) И ЗначениеЗаполнено(ДанныеРеестра.НомерСправкиОНеполученииПособияОтОтца) Тогда
				ДокументыНаДетей = ДокументыНаДетей + Символы.ПС 
				+ "Справка о неполучении пособия отца от "
				+ Формат(ДанныеРеестра.ДатаСправкиОНеполученииПособияОтОтца,"ДФ=dd.MM.yyyy")
				+ " № " + ДанныеРеестра.НомерСправкиОНеполученииПособияОтОтца;
			КонецЕсли;
			Если ЗначениеЗаполнено(ДанныеРеестра.ДатаСправкиОНеполученииПособияОтМатери) И ЗначениеЗаполнено(ДанныеРеестра.НомерСправкиОНеполученииПособияОтМатери) Тогда
				ДокументыНаДетей = ДокументыНаДетей + Символы.ПС
				+ "Справка о неполучении пособия матери от "
				+ Формат(ДанныеРеестра.ДатаСправкиОНеполученииПособияОтМатери,"ДФ=dd.MM.yyyy")
				+ " № " + ДанныеРеестра.НомерСправкиОНеполученииПособияОтМатери;
			КонецЕсли;
			Если ЗначениеЗаполнено(ДанныеРеестра.ДатаСправкиПоДругимМестамРаботы) И ЗначениеЗаполнено(ДанныеРеестра.НомерСправкиПоДругимМестамРаботы) Тогда
				ДокументыНаДетей = ДокументыНаДетей + Символы.ПС
				+ "Справка о неполучении пособия по другим местам работы от "
				+ Формат(ДанныеРеестра.ДатаСправкиПоДругимМестамРаботы,"ДФ=dd.MM.yyyy")
				+ " № " + ДанныеРеестра.НомерСправкиПоДругимМестамРаботы;
			КонецЕсли;
			ПараметрыОбластиСтрока.ДокументыНаДетей = ДокументыНаДетей;
			
			ПараметрыОбластиСтрока.ДетиИПредыдущиеДети = СокрЛП(ДанныеРеестра.ФамилияРебенка) + " " + СокрЛП(ДанныеРеестра.ИмяРебенка) + " " + СокрЛП(ДанныеРеестра.ОтчествоРебенка)
			+ " (" + Формат(ДанныеРеестра.ДатаРожденияРебенка,"ДФ=dd.MM.yyyy") + ")";
			
			Если ДанныеРеестра.НаличиеРешенияСудаОЛишенииПрав Тогда
				ПараметрыОбластиСтрока.ЛишениеРодительскихПрав = СокрЛП(ДанныеРеестра.ФамилияРебенка) + " " + СокрЛП(ДанныеРеестра.ИмяРебенка) + " " + СокрЛП(ДанныеРеестра.ОтчествоРебенка);
			Иначе
				ПараметрыОбластиСтрока.ЛишениеРодительскихПрав = "-";
			КонецЕсли;
			
			Если ЗначениеЗаполнено(ДанныеРеестра.ДатаПриказаОЗаменеПослеродовогоОтпуска) И ЗначениеЗаполнено(ДанныеРеестра.НомерПриказаОЗаменеПослеродовогоОтпуска) Тогда
				ПараметрыОбластиСтрока.ОписаниеПриказаНаЗаменуОтпуска = "№ " + ДанныеРеестра.НомерПриказаОЗаменеПослеродовогоОтпуска 
				+ " от " + Формат(ДанныеРеестра.ДатаПриказаОЗаменеПослеродовогоОтпуска,"ДФ=dd.MM.yyyy")
				+ " (" + Формат(ДанныеРеестра.ДатаРожденияРебенка,"ДФ=dd.MM.yyyy") + ")";
			Иначе
				ПараметрыОбластиСтрока.ОписаниеПриказаНаЗаменуОтпуска = "-";
			КонецЕсли;
			
			Если ДанныеРеестра.ОдновременныйУходЗаНесколькимиДетьми Тогда
				ПараметрыОбластиСтрока.СреднийМесячныйЗаработок = Формат(ДанныеРеестра.СреднийДневнойЗаработок * 30.4,"ЧЦ=15; ЧДЦ=2; ЧГ=0");
			Иначе
				ПараметрыОбластиСтрока.СреднийМесячныйЗаработок = "";
			КонецЕсли;
			
			ПараметрыОбластиСтрока.ПериодРасчетаС = Формат(ДанныеРеестра.ПервыйГодРасчета,"ЧЦ=4; ЧГ=0");
			ПараметрыОбластиСтрока.ПериодРасчетаПо = Формат(ДанныеРеестра.ВторойГодРасчета,"ЧЦ=4; ЧГ=0");
			ПараметрыОбластиСтрока.ЗаработокПервыйГод = Формат(ДанныеРеестра.ЗаработокПервыйГодРасчета ,"ЧЦ=15; ЧДЦ=2; ЧГ=0")
			+ ?(Не ВыводитьРасчетныйПериодВШапке, "(за " + Формат(ДанныеРеестра.ПервыйГодРасчета,"ЧЦ=4; ЧГ=0") + " год)", "");
			ПараметрыОбластиСтрока.ЗаработокВторойГод = Формат(ДанныеРеестра.ЗаработокВторойГодРасчета ,"ЧЦ=15; ЧДЦ=2; ЧГ=0")
			+ ?(Не ВыводитьРасчетныйПериодВШапке,  "(за " + Формат(ДанныеРеестра.ВторойГодРасчета,"ЧЦ=4; ЧГ=0") + " год)", "");
		КонецЕсли;
		
		ОбластьСтрока.Параметры.Заполнить(ПараметрыОбластиСтрока);
		
		// разбиение на страницы
		ВыведеноСтрок = ВыведеноСтрок + 1;
		
		// Проверим, уместится ли строка на странице или надо открывать новую страницу.
		ВывестиПодвалЛиста = Не ОбщегоНазначения.ПроверитьВыводТабличногоДокумента(ТабличныйДокументРеестра, ВыводимыеОбласти);
		Если Не ВывестиПодвалЛиста И ВыведеноСтрок = ВсегоСтрокДокумента Тогда
			ВыводимыеОбласти.Добавить(ОбластьПодвал);
			ВыводимыеОбласти.Добавить(ОбластьПодписи);
			ВывестиПодвалЛиста = Не ОбщегоНазначения.ПроверитьВыводТабличногоДокумента(ТабличныйДокументРеестра, ВыводимыеОбласти);
		КонецЕсли;
		Если ВывестиПодвалЛиста Тогда
			ТабличныйДокументРеестра.ВывестиГоризонтальныйРазделительСтраниц();
			ТабличныйДокументРеестра.Вывести(ОбластьПовторятьПриПечати);
		КонецЕсли;
		
		ТабличныйДокументРеестра.Вывести(ОбластьСтрока);
	КонецЦикла;
	
	ТабличныйДокументРеестра.Вывести(ОбластьПодвал);
	ТабличныйДокументРеестра.Вывести(ОбластьПодписи);
	
	Если ТабличныйДокумент.ВысотаТаблицы > 0 Тогда
		ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
	КонецЕсли;
	ТабличныйДокумент.Вывести(ТабличныйДокументРеестра);
	
	Возврат ТабличныйДокумент;
	
КонецФункции

Функция ПредставлениеДокумента(ПредставлениеТипаДокумента, ДатаДокумента, НомерДокумента = Неопределено, СерияДокумента = Неопределено) Экспорт
	ПредставлениеДокумента = СтрШаблон(НСтр("ru = '%1 от %2'"), ПредставлениеТипаДокумента, Формат(ДатаДокумента, "ДФ=dd.MM.yyyy"));
	Если СерияДокумента <> Неопределено Тогда
		ПредставлениеДокумента = ПредставлениеДокумента + " " + СтрШаблон(НСтр("ru = 'серия %1'"), СерияДокумента);
	КонецЕсли;
	Если НомерДокумента <> Неопределено Тогда
		ПредставлениеДокумента = ПредставлениеДокумента + " " + СтрШаблон(НСтр("ru = '№ %1'"), НомерДокумента);
	КонецЕсли;
	Возврат ПредставлениеДокумента;
КонецФункции

// Удаляет из строки лидирующие, терминирующие и двойные пробелы.
Функция СокрЛПД(Строка)
	ПробелыИПереносыСтрок = " " + Символы.ВК + Символы.ВТаб + Символы.НПП + Символы.ПС + Символы.ПФ + Символы.Таб;
	Возврат СтрСоединить(СтрРазделить(СокрЛП(Строка), ПробелыИПереносыСтрок, Ложь), " ");
КонецФункции

Функция ИмяМакетаДляПечатиПриложения(ВидРеестра, ДатаОтправки)
	
	Если ВидРеестра = Перечисления.ВидыРеестровСведенийНеобходимыхДляНазначенияИВыплатыПособий.ПособияПоНетрудоспособности
		Или ВидРеестра = Перечисления.ВидыРеестровСведенийНеобходимыхДляНазначенияИВыплатыПособий.ПособияВставшимНаУчетВРанниеСроки Тогда
		
		Если ДатаОтправки < ПрямыеВыплатыПособийСоциальногоСтрахования.ДатаВступленияВСилуФорм2021Года() Тогда
			Возврат "ПФ_MXL_РеестрВФСС_Приложение1";
		Иначе
			Возврат "ПФ_MXL_РеестрВФСС_Приложение15_2021";
		КонецЕсли;
		
	ИначеЕсли ВидРеестра = Перечисления.ВидыРеестровСведенийНеобходимыхДляНазначенияИВыплатыПособий.ЕдиновременныеПособияПриРожденииРебенка Тогда
		
		Если ДатаОтправки < ПрямыеВыплатыПособийСоциальногоСтрахования.ДатаВступленияВСилуФорм2021Года() Тогда
			Возврат "ПФ_MXL_РеестрВФСС_Приложение3";
		Иначе
			Возврат "ПФ_MXL_РеестрВФСС_Приложение17_2021";
		КонецЕсли;
		
	ИначеЕсли ВидРеестра = Перечисления.ВидыРеестровСведенийНеобходимыхДляНазначенияИВыплатыПособий.ЕжемесячныеПособияПоУходуЗаРебенком Тогда
		
		Если ДатаОтправки < ПрямыеВыплатыПособийСоциальногоСтрахования.ДатаВступленияВСилуФорм2021Года() Тогда
			Возврат "ПФ_MXL_РеестрВФСС_Приложение5";
		Иначе
			Возврат "ПФ_MXL_РеестрВФСС_Приложение19_2021";
		КонецЕсли;
		
	КонецЕсли;
	
	Возврат Неопределено;
КонецФункции

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

Функция ОписаниеСтажаВПечатнойФорме(СтажЛет, СтажМесяцев)
	Возврат ?(ЗначениеЗаполнено(СтажЛет), ", " + СтажЛет + " " + ПерсонифицированныйУчет.ФормаМножественногоЧисла("год","года","лет", СтажЛет),"") + ?(ЗначениеЗаполнено(СтажМесяцев), Символы.ПС + СтажМесяцев + " " + ПерсонифицированныйУчет.ФормаМножественногоЧисла("месяц","месяца","месяцев", СтажМесяцев),"");
КонецФункции

Функция ОписаниеПериодаВПечатнойФорме(ДатаС, ДатаПо) Экспорт
	Возврат "с " + Формат(ДатаС,"ДФ=dd.MM.yyyy") + " по " + Формат(ДатаПо,"ДФ=dd.MM.yyyy");
КонецФункции

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

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

#КонецЕсли

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