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