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

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

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

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

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

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

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

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

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

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

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

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

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

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

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