Заявление в СФР о возмещении выплат родителям детей-инвалидов / Модуль объекта

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

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

Процедура ПриКопировании(ОбъектКопирования)
	ИсправленныйДокумент = ОбъектКопирования.Ссылка;
	ИдентификаторРеестра = Неопределено;
	ФиксацияИзменений.Очистить();
	
	// Очистка результатов.
	ОтключитьПроверкиПроведения = Ложь;
	ХранилищеXML                = Неопределено;
	ДатаОтправки                = Неопределено;
	ИдентификаторСообщения      = Неопределено;
КонецПроцедуры

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

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
	Менеджер = Менеджер();
	
	МассивНепроверяемыхРеквизитов = Новый Массив;
	МассивНепроверяемыхРеквизитов.Добавить("Год");
	
	ТипСообщенияЧислом = Менеджер.ТипСообщения(ЭтотОбъект);
	
	Если ТипСообщенияЧислом = 12010 Тогда
		ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаОбъекта(Отказ, ЭтотОбъект, "СоставительФИО");
		МассивНепроверяемыхРеквизитов.Добавить("КодПодчиненностиФСС");
		ВсегоПособий = Оплаты.Итог("СуммаПособия");
		Если ВсегоПособий >= 1000000000 Тогда
			Текст = СтрШаблон(НСтр("ru = 'Сумма пособий (%1) превышает предельно допустимое значение (%2)'"), ВсегоПособий, 1000000000);
			СообщенияБЗК.СообщитьОбОшибкеВОбъекте(Отказ, ЭтотОбъект, Текст, "ВсегоПособий");
		КонецЕсли;
		Если ЗначениеЗаполнено(ТелефонСоставителя) Тогда
			ПредставлениеТелефона = КонтактнаяИнформацияБЗК.ПредставлениеТелефона(ТелефонСоставителя, 30);
			Если СтрДлина(ПредставлениеТелефона) < 5 Тогда
				Текст = НСтр("ru = 'Номер телефона (%1) должен содержать не менее %2 символов.'");
				Текст = СтрШаблон(Текст, ПредставлениеТелефона, 5);
				СообщенияБЗК.СообщитьОбОшибкеВОбъекте(Отказ, ЭтотОбъект, Текст, "ТелефонСоставителя");
			КонецЕсли;
		Иначе
			ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаОбъекта(Отказ, ЭтотОбъект, "ТелефонСоставителя");
		КонецЕсли;
		Если ЗначениеЗаполнено(АдресЭлектроннойПочтыОрганизации) И СтрДлина(АдресЭлектроннойПочтыОрганизации) < 4 Тогда
			Текст = НСтр("ru = 'Адрес электронной почты (%1) должен содержать не менее %2 символов.'");
			Текст = СтрШаблон(Текст, АдресЭлектроннойПочтыОрганизации, 4);
			СообщенияБЗК.СообщитьОбОшибкеВОбъекте(Отказ, ЭтотОбъект, Текст, "АдресЭлектроннойПочтыОрганизации");
		КонецЕсли;
	ИначеЕсли ТипСообщенияЧислом = 120 Тогда
		Если СтрДлина(АдресЭлектроннойПочтыОрганизации) > 40 Тогда
			Текст = НСтр("ru = 'Адрес электронной почты (%1) должен содержать не более %2 символов.'");
			Текст = СтрШаблон(Текст, АдресЭлектроннойПочтыОрганизации, 40);
			СообщенияБЗК.СообщитьОбОшибкеВОбъекте(Отказ, ЭтотОбъект, Текст, "АдресЭлектроннойПочтыОрганизации");
		КонецЕсли;
	КонецЕсли;
	
	Если НЕ РегламентированнаяОтчетностьВызовСервера.ЭтоЮридическоеЛицо(Организация) Тогда
		МассивНепроверяемыхРеквизитов.Добавить("КПП");
	КонецЕсли;
	
	ЭтоФормыПосле2022 = (Дата >= Менеджер.ДатаФорм2022());
	ЭтоФормыПосле2024 = (Дата >= Менеджер.ДатаФорм2024());
	ВидимостьПоляРебенок  = СЭДОФСС.ВидимостьПоляРодственник();
	ВидимостьПоляДокументОснование = Менеджер.ВидимостьОснования();
	
	МассивНепроверяемыхРеквизитов.Добавить("Оплаты.СотрудникСНИЛС");
	МассивНепроверяемыхРеквизитов.Добавить("Оплаты.Ребенок");
	МассивНепроверяемыхРеквизитов.Добавить("Оплаты.РебенокФамилия");
	МассивНепроверяемыхРеквизитов.Добавить("Оплаты.РебенокИмя");
	МассивНепроверяемыхРеквизитов.Добавить("Оплаты.РебенокДатаРождения");
	Если Не ЭтоФормыПосле2024 Тогда
		МассивНепроверяемыхРеквизитов.Добавить("Оплаты.РебенокСНИЛС");
	КонецЕсли;
	
	ИмяТаблицы = "Оплаты";
	Для Каждого СтрокаТаблицы Из Оплаты Цикл
		ЕстьНакопленныеДни = ЗначениеЗаполнено(СтрокаТаблицы.НакопленоДнейЗаМесяц);
		ЕстьДниЗаГод       = ЗначениеЗаполнено(СтрокаТаблицы.КоличествоДнейЗаГод);
		ЕстьДниЗаМесяц     = ЗначениеЗаполнено(СтрокаТаблицы.КоличествоДней) Или (Не ЕстьДниЗаГод И Не ЕстьНакопленныеДни);
		Если ЭтоФормыПосле2022 Тогда
			Если Не ЗначениеЗаполнено(СтрокаТаблицы.Ребенок) И ВидимостьПоляРебенок Тогда
				ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаСтрокиТаблицы(Отказ, ЭтотОбъект, ИмяТаблицы, СтрокаТаблицы, "Ребенок");
			Иначе
				ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаСтрокиТаблицы(Отказ, ЭтотОбъект, ИмяТаблицы, СтрокаТаблицы, "РебенокФамилия");
				ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаСтрокиТаблицы(Отказ, ЭтотОбъект, ИмяТаблицы, СтрокаТаблицы, "РебенокИмя");
				ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаСтрокиТаблицы(Отказ, ЭтотОбъект, ИмяТаблицы, СтрокаТаблицы, "РебенокДатаРождения");
			КонецЕсли;
		КонецЕсли;
		Если ЭтоФормыПосле2024 Тогда
			Если ЕстьДниЗаМесяц Тогда
				ПроверитьФорматЧислаВСтрокеТаблицы(Отказ, ИмяТаблицы, СтрокаТаблицы, "КоличествоЧасовЗаМесяц", 1, 384);
			КонецЕсли;
			Если ЕстьНакопленныеДни Тогда
				ПроверитьФорматЧислаВСтрокеТаблицы(Отказ, ИмяТаблицы, СтрокаТаблицы, "НакопленоЧасовЗаМесяц", 1, 352);
			КонецЕсли;
			Если ЕстьДниЗаГод Тогда
				ПроверитьФорматЧислаВСтрокеТаблицы(Отказ, ИмяТаблицы, СтрокаТаблицы, "КоличествоЧасовЗаГод", 1, 192);
			КонецЕсли;
		КонецЕсли;
		Если ЭтоФормыПосле2024 И (ЕстьДниЗаГод Или ЕстьДниЗаМесяц) Тогда
			ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаСтрокиТаблицы(Отказ, ЭтотОбъект, ИмяТаблицы, СтрокаТаблицы, "ПриказНомер");
			ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаСтрокиТаблицы(Отказ, ЭтотОбъект, ИмяТаблицы, СтрокаТаблицы, "ПриказДата");
		КонецЕсли;
		Если Не ЭтоФормыПосле2022 Или ЕстьДниЗаМесяц Тогда
			ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаСтрокиТаблицы(Отказ, ЭтотОбъект, ИмяТаблицы, СтрокаТаблицы, "СреднедневнойЗаработок");
		КонецЕсли;
		Если ЭтоФормыПосле2024 И ЕстьДниЗаГод Тогда
			ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаСтрокиТаблицы(Отказ, ЭтотОбъект, ИмяТаблицы, СтрокаТаблицы, "СреднедневнойЗаработокЗаГод");
		КонецЕсли;
		Если Не ЭтоФормыПосле2024 Или ЕстьДниЗаМесяц Или ЕстьДниЗаГод Тогда
			ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаСтрокиТаблицы(Отказ, ЭтотОбъект, ИмяТаблицы, СтрокаТаблицы, "КоличествоСтраниц");
			ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаСтрокиТаблицы(Отказ, ЭтотОбъект, ИмяТаблицы, СтрокаТаблицы, "СуммаПособия");
		КонецЕсли;
		Если ОтправлятьЧерезСЭДО Тогда
			ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаСтрокиТаблицы(Отказ, ЭтотОбъект, ИмяТаблицы, СтрокаТаблицы, "ВидЗанятости");
			ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаСтрокиТаблицы(Отказ, ЭтотОбъект, ИмяТаблицы, СтрокаТаблицы, "СправкаСерия");
			ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаСтрокиТаблицы(Отказ, ЭтотОбъект, ИмяТаблицы, СтрокаТаблицы, "СправкаНомер");
			ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаСтрокиТаблицы(Отказ, ЭтотОбъект, ИмяТаблицы, СтрокаТаблицы, "СправкаДатаВыдачи");
			ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаСтрокиТаблицы(Отказ, ЭтотОбъект, ИмяТаблицы, СтрокаТаблицы, "СправкаДатаУстановления");
		КонецЕсли;
		Текст = "";
		Если КадровыйУчетКлиентСервер.СНИЛСЗаполнен(СтрокаТаблицы.РебенокСНИЛС) Тогда
			Если Не РегламентированныеДанныеКлиентСервер.СтраховойНомерПФРСоответствуетТребованиям(СтрокаТаблицы.РебенокСНИЛС, Текст) Тогда
				Текст = СтрШаблон(НСтр("ru = 'СНИЛС ребенка указан не верно: %1'"), НРег(Текст));
				СообщенияБЗК.СообщитьОбОшибкеВСтрокеТаблицы(Отказ, ЭтотОбъект, ИмяТаблицы, СтрокаТаблицы, "РебенокСНИЛС", Текст);
			КонецЕсли;
		КонецЕсли;
		Если КадровыйУчетКлиентСервер.СНИЛСЗаполнен(СтрокаТаблицы.СотрудникСНИЛС) Тогда
			Если Не РегламентированныеДанныеКлиентСервер.СтраховойНомерПФРСоответствуетТребованиям(СтрокаТаблицы.СотрудникСНИЛС, Текст) Тогда
				Текст = СтрШаблон(НСтр("ru = 'СНИЛС сотрудника указан не верно: %1'"), НРег(Текст));
				СообщенияБЗК.СообщитьОбОшибкеВСтрокеТаблицы(Отказ, ЭтотОбъект, ИмяТаблицы, СтрокаТаблицы, "СотрудникСНИЛС", Текст);
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	
	Если ЭтоФормыПосле2024 И ОтправлятьЧерезСЭДО Тогда
		Если ЗначениеЗаполнено(ИдентификаторРеестра) Тогда
			НомерВПределахДня = СЭДОФСС.ИдентификаторРеестраВНомерЧислом(ИдентификаторРеестра);
			Если НомерВПределахДня > 9999 Тогда
				Текст = НСтр("ru = 'Номер заявления больше 9999. Перенесите документ на другую дату.'");
				СообщенияБЗК.СообщитьОбОшибкеВОбъекте(Отказ, ЭтотОбъект, Текст, "Дата");
			КонецЕсли;
		Иначе
			ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаОбъекта(Отказ, ЭтотОбъект, "ИдентификаторРеестра");
		КонецЕсли;
		
		ФлажкиВидовЗанятости = ФлажкиВидовЗанятости();
		Если ВнешнееСовместительство <> ФлажкиВидовЗанятости.ВнешнееСовместительство Тогда
			Текст = НСтр("ru = 'Флажок ""Внешнее совместительство"" в шапке не соответствует видам занятости сотрудников в таблице.'");
			СообщенияБЗК.СообщитьОбОшибкеВОбъекте(Отказ, ЭтотОбъект, Текст, "ВнешнееСовместительство");
		ИначеЕсли ОсновноеМестоРаботы <> ФлажкиВидовЗанятости.ОсновноеМестоРаботы Тогда
			Текст = НСтр("ru = 'Флажок ""Основное место работы"" в шапке не соответствует видам занятости сотрудников в таблице.'");
			СообщенияБЗК.СообщитьОбОшибкеВОбъекте(Отказ, ЭтотОбъект, Текст, "ОсновноеМестоРаботы");
		ИначеЕсли ВнешнееСовместительство И ОсновноеМестоРаботы Тогда
			Текст = НСтр("ru = 'Через СЭДО невозможно отправить реестр в котором и основные сотрудники, и внешние совместители.
				|Рекомендуется перенести строки внешних совместителей в отдельный документ.'");
			СообщенияБЗК.СообщитьОбОшибкеВОбъекте(Отказ, ЭтотОбъект, Текст, "ВнешнееСовместительство");
		КонецЕсли;
		
		Если ЗначениеЗаполнено(Банк) И ЗначениеЗаполнено(БИКБанка) И ЗначениеЗаполнено(НомерСчета) Тогда
			БанкКоррСчет = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Банк, "КоррСчет");
			РезультатПроверки = ПроверкиБЗК.РезультатПроверкиНомераСчета(НомерСчета, БИКБанка, БанкКоррСчет);
			Если Не РезультатПроверки.Успех Тогда
				СообщенияБЗК.СообщитьОбОшибкеВОбъекте(Отказ, ЭтотОбъект, РезультатПроверки.Пояснение, "НомерСчета");
			КонецЕсли;
		Иначе
			ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаОбъекта(Отказ, ЭтотОбъект, "Банк");
			ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаОбъекта(Отказ, ЭтотОбъект, "БИКБанка");
			Если ТипСообщенияЧислом = 12010 Тогда
				ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаОбъекта(Отказ, ЭтотОбъект, "НомерСчета");
			КонецЕсли;
		КонецЕсли;
		
		Если ЗначениеЗаполнено(НомерЛицевогоСчета) Или ЗначениеЗаполнено(КБК) Тогда
			ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаОбъекта(Отказ, ЭтотОбъект, "НомерЛицевогоСчета");
			ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаОбъекта(Отказ, ЭтотОбъект, "КБК");
		ИначеЕсли ТипСообщенияЧислом <> 12010 Тогда
			ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаОбъекта(Отказ, ЭтотОбъект, "НомерСчета");
		КонецЕсли;
		
		ПредставлениеСтрокПоКоторымБолее13Приказов = ПредставлениеСтрокПоКоторымБолее13Приказов();
		Если ЗначениеЗаполнено(ПредставлениеСтрокПоКоторымБолее13Приказов) Тогда
			Шапка = НСтр("ru = 'Через СЭДО невозможно отправить реестр в котором более 13 приказов.'");
			Подвал = НСтр("ru = 'Рекомендуется перенести часть приказов в отдельный документ.'");
			Текст = Шапка + Символы.ПС + ПредставлениеСтрокПоКоторымБолее13Приказов + Символы.ПС + Подвал;
			СообщенияБЗК.СообщитьОбОшибкеВОбъекте(Отказ, ЭтотОбъект, Текст, "Оплаты");
		КонецЕсли;
		
	КонецЕсли;
	
	Если ЗначениеЗаполнено(РегистрационныйНомерСФР) Тогда
		МассивНепроверяемыхРеквизитов.Добавить("РегистрационныйНомерФСС");
		МассивНепроверяемыхРеквизитов.Добавить("КодПодчиненностиФСС");
	КонецЕсли;
	
	ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, МассивНепроверяемыхРеквизитов);
КонецПроцедуры

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

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

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

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

Функция Менеджер()
	Возврат Документы.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов;
КонецФункции

#Область ОбработкаЗаполнения

Процедура ЗаполнитьДатуСсылку()
	Если Не ЗначениеЗаполнено(Дата) Тогда
		Дата = ТекущаяДатаСеанса();
	КонецЕсли;
	Если Не ЗначениеЗаполнено(Год)
		И Дата >= Менеджер().ДатаФорм2024() Тогда
		Год = Год(Дата);
	КонецЕсли;
	Если Не ЗначениеЗаполнено(Ссылка)
		И Не ЗначениеЗаполнено(ПолучитьСсылкуНового())
		И ДополнительныеСвойства.Свойство("СсылкаНового") Тогда
		УстановитьСсылкуНового(ДополнительныеСвойства.СсылкаНового);
	КонецЕсли;
КонецПроцедуры

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

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

Функция ОбъектЗафиксирован() Экспорт
	Возврат Менеджер().ОбъектЗафиксирован(ЭтотОбъект);
КонецФункции

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

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

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

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

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

Функция ИдентификаторРеестраБезНомера()
	// Формат: D_регномер страхователя_год_месяц_число_номер, например: D_1234567890_2022_03_01_0001.
	// Шаблон регулярного выражения: [D]_\d{10}_(19|20)[0-9]{2}_[0|1][0-9]_[0-3][0-9]_\d{4}.
	Регномер   = СЭДОФСС.РегномерДляИдентификатораРеестра(ЭтотОбъект);
	ФорматДаты = Формат(Дата, "ДФ=yyyy_MM_dd");
	Возврат "D_" + Регномер + "_" + ФорматДаты + "_";
КонецФункции

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

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

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

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

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

Функция ЗаполнитьСведенияОРодственниках(ПараметрыФиксации)
	Если Не СЭДОФСС.ВидимостьПоляРодственник() Тогда
		Возврат Ложь;
	КонецЕсли;
	Если Оплаты.Количество() = 0 Тогда
		Возврат Ложь;
	КонецЕсли;
	
	ЕстьИзменения = Ложь;
	
	МассивСсылок = КоллекцииБЗК.УникальныеЗначенияКолонки(Оплаты, "Ребенок");
	КоллекцииБЗК.УдалитьПустыеЗначенияМассива(МассивСсылок);
	Если МассивСсылок.Количество() > 0 Тогда
		ИменаПолей =
		"Фамилия,
		|Имя,
		|Отчество,
		|ДатаРождения,
		|СНИЛС,
		|СтепеньРодства,
		|КодСвязи";
		СведенияОРодственниках = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(МассивСсылок, ИменаПолей, Ложь);
	Иначе
		СведенияОРодственниках = Новый Соответствие;
	КонецЕсли;
	
	ИменаРеквизитов = "РебенокФамилия, РебенокИмя, РебенокОтчество, РебенокДатаРождения, РебенокСНИЛС, Статус";
	
	Для Каждого СтрокаТаблицы Из Оплаты Цикл
		СведенияОРодственнике = СведенияОРодственниках[СтрокаТаблицы.Ребенок];
		Реквизиты = Новый Структура(ИменаРеквизитов);
		Если СведенияОРодственнике <> Неопределено Тогда
			Реквизиты.РебенокФамилия      = СведенияОРодственнике.Фамилия;
			Реквизиты.РебенокИмя          = СведенияОРодственнике.Имя;
			Реквизиты.РебенокОтчество     = СведенияОРодственнике.Отчество;
			Реквизиты.РебенокДатаРождения = СведенияОРодственнике.ДатаРождения;
			Реквизиты.РебенокСНИЛС        = СведенияОРодственнике.СНИЛС;
			// Список выбора поля "КодСвязи" см. в 
			// ПрямыеВыплатыПособийСоциальногоСтрахованияФормы.ЗаполнитьСписокВыбораТипРодственнойСвязи.
			Если СведенияОРодственнике.КодСвязи = "38" Тогда // 38 - мать.
				Реквизиты.Статус = "1";
			ИначеЕсли СведенияОРодственнике.КодСвязи = "39" Тогда // 39 - отец.
				Реквизиты.Статус = "2";
			ИначеЕсли СведенияОРодственнике.КодСвязи = "40" Тогда // 40 - опекун.
				Реквизиты.Статус = "3";
			ИначеЕсли СведенияОРодственнике.КодСвязи = "41" Тогда // 41 - попечитель.
				Реквизиты.Статус = "4";
			КонецЕсли;
		КонецЕсли;
		Если ФиксацияВторичныхДанныхВДокументах.ОбновитьДанныеСтроки(
				Реквизиты,
				ЭтотОбъект,
				"Оплаты",
				СтрокаТаблицы,
				ПараметрыФиксации) Тогда
			ЕстьИзменения = Истина;
		КонецЕсли;
	КонецЦикла;
	
	Возврат ЕстьИзменения;
КонецФункции

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

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

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

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

Функция ЗаполнитьФлажкиВидовЗанятости(ПараметрыФиксации)
	Возврат ФиксацияВторичныхДанныхВДокументах.ОбновитьДанныеШапки(ФлажкиВидовЗанятости(), ЭтотОбъект, ПараметрыФиксации);
КонецФункции

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

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

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

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

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

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

#Область ОбработкаПроверкиЗаполнения

Функция ПредставлениеСтрокПоКоторымБолее13Приказов()
	Представления = Новый Массив;
	
	ТаблицаСтрок = Оплаты.Выгрузить();
	Менеджер().ДобавитьКолонкиНаличияДней(ТаблицаСтрок);
	Для Каждого СтрокаТаблицы Из ТаблицаСтрок Цикл
		Менеджер().ЗаполнитьФлажкиНаличияДней(СтрокаТаблицы);
	КонецЦикла;
	ИменаПолейШапки = "СотрудникФамилия, СотрудникИмя, СотрудникОтчество, СотрудникСНИЛС, Статус,
		|РебенокФамилия, РебенокИмя, РебенокОтчество, РебенокСНИЛС, РебенокДатаРождения,
		|СправкаСерия, СправкаНомер, СправкаДатаВыдачи, СправкаДатаОкончания, СправкаДатаУстановления";
	ТаблицаСотрудников = ТаблицаСтрок.Скопировать(, ИменаПолейШапки);
	ТаблицаСотрудников.Свернуть(ИменаПолейШапки);
	ФильтрПоДаннымШапки = Новый Структура(ИменаПолейШапки);
	
	Для Каждого ДанныеШапкиПоСотруднику Из ТаблицаСотрудников Цикл
		ЗаполнитьЗначенияСвойств(ФильтрПоДаннымШапки, ДанныеШапкиПоСотруднику);
		ТаблицаСтрокПоСотруднику = ТаблицаСтрок.Скопировать(ФильтрПоДаннымШапки);
		// Таблица приказов о предоставлении дополнительных выходных дней.
		ВложенныеИменаПолей = "ПриказДата, ПриказНомер";
		Фильтр              = Новый Структура("ЕстьПриказы", Истина);
		ВложеннаяТаблица = ТаблицаСтрокПоСотруднику.Скопировать(Фильтр, ВложенныеИменаПолей);
		ВложеннаяТаблица.Свернуть(ВложенныеИменаПолей);
		Количество = ВложеннаяТаблица.Количество();
		Если Количество > 13 Тогда
			Представление = СтроковыеФункцииКлиентСервер.СтрокаСЧисломДляЛюбогоЯзыка(
				НСтр("ru = ';По сотруднику [ФИО] %1 приказ;;По сотруднику [ФИО] %1 приказа;По сотруднику [ФИО] %1 приказов;'"), 
				Количество);
			ФИО = ДанныеШапкиПоСотруднику.СотрудникФамилия + " " + ДанныеШапкиПоСотруднику.СотрудникИмя
				+ " " + ДанныеШапкиПоСотруднику.СотрудникОтчество;
			Представления.Добавить(СтрЗаменить(Представление, "[ФИО]", ФИО));
		КонецЕсли;
	КонецЦикла;
	Возврат СтрСоединить(Представления, Символы.ПС);
КонецФункции

Процедура ПроверитьФорматЧислаВСтрокеТаблицы(Отказ, ИмяТаблицы, СтрокаТаблицы, ИмяРеквизита, Минимум, Максимум)
	Значение = СтрокаТаблицы[ИмяРеквизита];
	Если Значение = 0 Тогда
		ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаСтрокиТаблицы(Отказ, ЭтотОбъект, ИмяТаблицы, СтрокаТаблицы, ИмяРеквизита);
	ИначеЕсли Значение < Минимум Тогда
		Текст = СтрШаблон(
			НСтр("ru = 'В строке %1 в поле ""%2"" указано значение %3, что меньше минимального %4.'"),
			СтрокаТаблицы.НомерСтроки,
			ПроверкиБЗК.ПредставлениеРеквизитаТаблицыОбъекта(ЭтотОбъект, Неопределено, ИмяТаблицы, ИмяРеквизита),
			Значение,
			Минимум);
		СообщенияБЗК.СообщитьОбОшибкеВСтрокеТаблицы(Отказ, ЭтотОбъект, ИмяТаблицы, СтрокаТаблицы, ИмяРеквизита, Текст);
	ИначеЕсли Значение > Максимум Тогда
		Текст = СтрШаблон(
			НСтр("ru = 'В строке %1 в поле ""%2"" указано значение %3, что больше максимального %4.'"),
			СтрокаТаблицы.НомерСтроки,
			ПроверкиБЗК.ПредставлениеРеквизитаТаблицыОбъекта(ЭтотОбъект, Неопределено, ИмяТаблицы, ИмяРеквизита),
			Значение,
			Максимум);
		СообщенияБЗК.СообщитьОбОшибкеВСтрокеТаблицы(Отказ, ЭтотОбъект, ИмяТаблицы, СтрокаТаблицы, ИмяРеквизита, Текст);
	КонецЕсли;
КонецПроцедуры

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

#Область ПередЗаписью

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

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

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

#Иначе
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
#КонецЕсли

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