#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ОбработчикиСобытий
Процедура ПриКопировании(ОбъектКопирования)
ИсправленныйДокумент = ОбъектКопирования.Ссылка;
КонецПроцедуры
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
ВерсияДокумента = Документы.ЗаявлениеСотрудникаНаВыплатуПособия.АктуальнаяВерсия();
Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда
Если ДанныеЗаполнения.Свойство("Действие")
И ДанныеЗаполнения.Действие = "Исправить"
И ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыРасширеннаяПодсистемы.ИсправленияДокументов") Тогда
МодульИсправлениеДокументовЗарплатаКадры = ОбщегоНазначения.ОбщийМодуль("ИсправлениеДокументовЗарплатаКадры");
МодульИсправлениеДокументовЗарплатаКадры.СкопироватьДокумент(
ЭтотОбъект,
ДанныеЗаполнения.Ссылка,
,
,
ДанныеЗаполнения);
ИначеЕсли ДанныеЗаполнения.Свойство("Сотрудник") И ЗначениеЗаполнено(ДанныеЗаполнения.Сотрудник) Тогда
ДанныеЗаполнения = ДанныеЗаполнения.Сотрудник;
Иначе
ЗначенияДляЗаполнения = Новый Структура("Ответственный");
ЗарплатаКадры.ПолучитьЗначенияПоУмолчанию(ЗначенияДляЗаполнения);
ОтношениеКОсобойЗоне = Перечисления.ОтношениеКОсобойЗоне.Нет;
ПараметрДокументОснование = Неопределено;
ПараметрИдентификаторСтрокиОснования = Неопределено;
Если ДанныеЗаполнения.Свойство("Основание", ПараметрДокументОснование) Тогда
ДокументОснование = ПараметрДокументОснование;
Если ДанныеЗаполнения.Свойство("ИдентификаторСтроки", ПараметрИдентификаторСтрокиОснования) И ПараметрИдентификаторСтрокиОснования <> 0 Тогда
ИдентификаторСтрокиОснования = ПараметрИдентификаторСтрокиОснования;
КонецЕсли;
КонецЕсли;
ОбновитьВторичныеДанныеДокумента();
КонецЕсли;
КонецЕсли;
Если ТипЗнч(ДанныеЗаполнения) = Тип("СправочникСсылка.Сотрудники") Тогда
ЗарплатаКадры.ЗаполнитьПоОснованиюСотрудником(ЭтотОбъект, ДанныеЗаполнения);
КонецЕсли;
КонецПроцедуры
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если ЗарплатаКадры.ОтключитьБизнесЛогикуПриЗаписи(ЭтотОбъект) Тогда
Возврат;
КонецЕсли;
Если Дата < ПрямыеВыплатыПособийСоциальногоСтрахования.ДатаВступленияВСилуФорм2021Года() Тогда
ИзмененыСведенияОЗастрахованномЛице = Ложь;
КонецЕсли;
ТекстОшибки = "";
Если ОбъектЗафиксирован(ТекстОшибки) Тогда
СообщитьОбОшибкеВЭтомОбъекте(Отказ, ТекстОшибки);
КонецЕсли;
Если Не Отказ И РежимЗаписи <> РежимЗаписиДокумента.ОтменаПроведения Тогда
ЗаполнитьВидРеестра();
КонецЕсли;
КонецПроцедуры
Процедура ПриЗаписи(Отказ)
Если ЗарплатаКадры.ОтключитьБизнесЛогикуПриЗаписи(ЭтотОбъект) Тогда
Возврат;
КонецЕсли;
СЭДОФСС.ПриЗаписиЗаявленияНаВыплатуПособия(ЭтотОбъект, Отказ);
КонецПроцедуры
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
УдалитьРеквизитыНеТребующиеПроверки(ПроверяемыеРеквизиты);
ПроверитьРеквизитыПолучателя(Отказ);
ПроверитьОтсутствиеДваждыИзмененныхСведенийОЗастрахованномЛице(Отказ);
Если ТребуетсяРасчетПособия() Тогда
ПроверитьРайонныйКоэффициент(Отказ);
КонецЕсли;
Если ВидПособия = Перечисления.ПособияНазначаемыеФСС.ЕжемесячноеПособиеПоУходуЗаРебенком Тогда
ПроверитьРеквизитыЕжемесячногоПособияПоУходуЗаРебенком(Отказ);
ПроверитьСправкуОНеполученииПособияОтОтцаИлиМатери(Отказ);
КонецЕсли;
Если ВидПособия = Перечисления.ПособияНазначаемыеФСС.ЕдиновременноеПособиеПриРожденииРебенка Тогда
ПроверитьРеквизитыЕдиновременногоПособияПриРожденииРебенка(Отказ);
ПроверитьСправкуОНеполученииПособияОтОтцаИлиМатери(Отказ);
КонецЕсли;
Если ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеВставшимНаУчетВРанниеСроки
Или ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеПоБеременностиИРодамВставшимНаУчетВРанниеСроки Тогда
ПроверитьРеквизитыСправкиОПостановкеНаУчетВРанниеСрокиБеременности(Отказ);
КонецЕсли;
Если ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеВСвязиСНесчастнымСлучаемНаПроизводстве
Или ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеПоБеременностиИРодам
Или ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеПоБеременностиИРодамВставшимНаУчетВРанниеСроки
Или ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеПоВременнойНетрудоспособности Тогда
ПроверитьРеквизитыЛисткаНетрудоспособности(Отказ);
ПроверитьРеквизитыПериодаПростоя(Отказ);
ПроверитьРеквизитыПериодаТрудовогоДоговора(Отказ);
КонецЕсли;
Если Перерасчет И Не ЗначениеЗаполнено(КодПричиныПерерасчета) Тогда
Текст = НСтр("ru = 'Для случаев перерасчета пособия необходимо указать код причины перерасчета.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "КодПричиныПерерасчета");
КонецЕсли;
Если СпособВыплатыПособия = Перечисления.СпособыВыплатыПособия.ЧерезБанк Тогда
РезультатПроверки = ПроверкиБЗК.РезультатПроверкиНомераСчета(НомерЛицевогоСчета, БИКБанка, КоррСчетБанка);
Если Не РезультатПроверки.Успех Тогда
СообщитьОбОшибкеВЭтомОбъекте(Отказ, РезультатПроверки.Пояснение, "НомерЛицевогоСчета");
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(ИзвещениеИзФССНомер) Или ЗначениеЗаполнено(ИзвещениеИзФССДата) Тогда
ПроверитьЗаполнениеРеквизитаОбъекта(Отказ, "ИзвещениеИзФССДата");
Если Не ЗначениеЗаполнено(ИзвещениеИзФССНомер) Тогда
ПроверитьЗаполнениеРеквизитаОбъекта(Отказ, "ИзвещениеИзФССНомер");
ИначеЕсли СтрДлина(ИзвещениеИзФССНомер) > 12 Тогда
Текст = НСтр("ru = 'В номере извещения ФСС %1 символов, а должно быть не более 12.'");
Текст = СтрШаблон(Текст, СтрДлина(ИзвещениеИзФССНомер));
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ИзвещениеИзФССНомер");
Иначе
ЛишниеСимволы = СтроковыеФункцииБЗККлиентСервер.УдалитьЦифрыИзСтроки(ИзвещениеИзФССНомер);
Если Не ПустаяСтрока(ЛишниеСимволы) Тогда
Если СтрДлина(ЛишниеСимволы) = 1 Тогда
Текст = НСтр("ru = 'В номере извещения ФСС должны быть только цифры (%1 - не цифра).'");
Иначе
Текст = НСтр("ru = 'В номере извещения ФСС должны быть только цифры (%1 - не цифры).'");
КонецЕсли;
Текст = СтрШаблон(Текст, ЛишниеСимволы);
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ИзвещениеИзФССНомер");
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область ПередЗаписью
Процедура ЗаполнитьВидРеестра()
Если ВидПособия = Перечисления.ПособияНазначаемыеФСС.ЕжемесячноеПособиеПоУходуЗаРебенком Тогда
ВидРеестра = Перечисления.ВидыРеестровСведенийНеобходимыхДляНазначенияИВыплатыПособий.ЕжемесячныеПособияПоУходуЗаРебенком;
ИначеЕсли ВидПособия = Перечисления.ПособияНазначаемыеФСС.ЕдиновременноеПособиеПриРожденииРебенка Тогда
ВидРеестра = Перечисления.ВидыРеестровСведенийНеобходимыхДляНазначенияИВыплатыПособий.ЕдиновременныеПособияПриРожденииРебенка;
ИначеЕсли ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеВставшимНаУчетВРанниеСроки Тогда
ВидРеестра = Перечисления.ВидыРеестровСведенийНеобходимыхДляНазначенияИВыплатыПособий.ПособияВставшимНаУчетВРанниеСроки;
ИначеЕсли ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеВСвязиСНесчастнымСлучаемНаПроизводстве
Или ВидПособия = Перечисления.ПособияНазначаемыеФСС.ОтпускСверхЕжегодногоНаПериодЛечения Тогда
ВидРеестра = Неопределено;
Иначе
ВидРеестра = Перечисления.ВидыРеестровСведенийНеобходимыхДляНазначенияИВыплатыПособий.ПособияПоНетрудоспособности;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработкаПроверкиЗаполнения
Процедура УдалитьРеквизитыНеТребующиеПроверки(ПроверяемыеРеквизиты)
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "КодПричиныПерерасчета");
Если Не ПолучательНеЯвляетсяЗаявителем Тогда
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "ФамилияЗаявителя");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "ИмяЗаявителя");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "ОтчествоЗаявителя");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "ВидДокументаУдостоверяющегоЛичностьЗаявителя");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "СерияДокументаУдостоверяющегоЛичностьЗаявителя");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "НомерДокументаУдостоверяющегоЛичностьЗаявителя");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "ДатаВыдачиДокументаУдостоверяющегоЛичностьЗаявителя");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "КемВыданДокументУдостоверяющийЛичностьЗаявителя");
КонецЕсли;
Если Не ЗначениеЗаполнено(ВидДокументаНаПроживание) Тогда
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "НомерДокументаНаПроживание");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "ДатаВыдачиДокументаНаПроживание");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "КемВыданДокументНаПроживание");
КонецЕсли;
Если Не (ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеПоВременнойНетрудоспособности
Или ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеПоБеременностиИРодам
Или ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеПоБеременностиИРодамВставшимНаУчетВРанниеСроки) Тогда
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "НомерЛисткаНетрудоспособности");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "ДатаЛисткаНетрудоспособности");
КонецЕсли;
Если Не (ВидПособия = Перечисления.ПособияНазначаемыеФСС.ЕжемесячноеПособиеПоУходуЗаРебенком)
Или Не (ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеПоБеременностиИРодамВставшимНаУчетВРанниеСроки) Тогда
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "ДатаНачалаОтпускаПоУходуЗаРебенком");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "ДатаОкончанияОтпускаПоУходуЗаРебенком");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "ДатаПриказаОПредоставленииОтпускаПоУходуЗаРебенком");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "НомерПриказаОПредоставленииОтпускаПоУходуЗаРебенком");
КонецЕсли;
ТребуетсяРасчетПособия = ТребуетсяРасчетПособия();
Если Не (ТребуетсяРасчетПособия И ПорядокРасчетаСреднегоЗаработка = Перечисления.СпособыРасчетаСреднегоЗаработкаДляОплатыПособия.СреднийЗаработок) Тогда
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "СреднийДневнойЗаработок");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "СреднийЗаработокЗаРасчетныйПериод");
КонецЕсли;
Если Не (ТребуетсяРасчетПособия И ПорядокРасчетаСреднегоЗаработка = Перечисления.СпособыРасчетаСреднегоЗаработкаДляОплатыПособия.ИсходяИзТарифнойСтавки) Тогда
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "ДолжностнойОклад");
КонецЕсли;
Если Не (ТребуетсяРасчетПособия И ПорядокРасчетаСреднегоЗаработка = Перечисления.СпособыРасчетаСреднегоЗаработкаДляОплатыПособия.ИсходяИзМРОТ) Тогда
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "МРОТ");
КонецЕсли;
Если Не (ТребуетсяРасчетПособия
И ПорядокРасчетаСреднегоЗаработка = Перечисления.СпособыРасчетаСреднегоЗаработкаДляОплатыПособия.СреднийЗаработок
И СчитатьПоПравилам2010Года) Тогда
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "ДатаНачалаРасчетногоПериода");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "ДатаОкончанияРасчетногоПериода");
КонецЕсли;
Если Не (ТребуетсяРасчетПособия
И ПорядокРасчетаСреднегоЗаработка = Перечисления.СпособыРасчетаСреднегоЗаработкаДляОплатыПособия.СреднийЗаработок
И Не СчитатьПоПравилам2010Года) Тогда
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "ПервыйРасчетныйГод");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "ВторойРасчетныйГод");
КонецЕсли;
Если Не (СпособВыплатыПособия = Перечисления.СпособыВыплатыПособия.НаКартуМИР) Тогда
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "КартаМИР");
КонецЕсли;
Если Не (СпособВыплатыПособия = Перечисления.СпособыВыплатыПособия.ЧерезБанк) Тогда
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "Банк");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "НаименованиеБанка");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "БИКБанка");
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "НомерЛицевогоСчета");
КонецЕсли;
КонецПроцедуры
Функция ТребуетсяРасчетПособия()
Возврат ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеПоВременнойНетрудоспособности
Или ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеПоБеременностиИРодам
Или ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеПоБеременностиИРодамВставшимНаУчетВРанниеСроки
Или ВидПособия = Перечисления.ПособияНазначаемыеФСС.ЕжемесячноеПособиеПоУходуЗаРебенком
Или ВидПособия = Перечисления.ПособияНазначаемыеФСС.ПособиеВСвязиСНесчастнымСлучаемНаПроизводстве;
КонецФункции
Процедура ПроверитьРеквизитыПолучателя(Отказ)
ТекстОшибки = "";
Если ЗначениеЗаполнено(СтрЗаменить(СНИЛСПолучателя, "-",""))
И Не РегламентированныеДанныеКлиентСервер.СтраховойНомерПФРСоответствуетТребованиям(СНИЛСПолучателя, ТекстОшибки) Тогда
Текст = НСтр("ru = 'СНИЛС получателя пособия указан не верно. %1'");
Текст = СтрШаблон(Текст, ТекстОшибки);
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "СНИЛСПолучателя");
КонецЕсли;
ТекстОшибки = "";
Если ЗначениеЗаполнено(ИННПолучателя)
И Не РегламентированныеДанныеКлиентСервер.ИННСоответствуетТребованиям(ИННПолучателя, Ложь, ТекстОшибки) Тогда
Текст = НСтр("ru = 'ИНН получателя пособия указан не верно. %1'");
Текст = СтрШаблон(Текст, ТекстОшибки);
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ИННПолучателя");
КонецЕсли;
КадровыеДанныеСотрудника = КадровыйУчет.КадровыеДанныеФизическихЛиц(Истина, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ФизическоеЛицо), "Пол");
Если КадровыеДанныеСотрудника.Количество() > 0 Тогда
Если Не ЗначениеЗаполнено(КадровыеДанныеСотрудника[0].Пол) Тогда
Текст = НСтр("ru = 'Не заполнен пол получателя пособия.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "Пол");
КонецЕсли;
КонецЕсли;
ИменаРеквизитов = Новый Структура;
ИменаРеквизитов.Вставить("Сотрудник", "Сотрудник");
ИменаРеквизитов.Вставить("ФизическоеЛицо", "ФизическоеЛицо");
ИменаРеквизитов.Вставить("ВидДокумента", "ВидДокументаУдостоверяющегоЛичностьПолучателя");
ИменаРеквизитов.Вставить("СерияДокумента", "СерияДокументаУдостоверяющегоЛичностьПолучателя");
ИменаРеквизитов.Вставить("НомерДокумента", "НомерДокументаУдостоверяющегоЛичностьПолучателя");
ИменаРеквизитов.Вставить("ДатаВыдачиДокумента", "ДатаВыдачиДокументаУдостоверяющегоЛичностьПолучателя");
ИменаРеквизитов.Вставить("КемВыданДокумент", "КемВыданДокументУдостоверяющийЛичностьПолучателя");
ПрямыеВыплатыПособийСоциальногоСтрахования.ПроверитьДокументУдостоверяющийЛичность(Отказ, ЭтотОбъект, ИменаРеквизитов);
ROWSET = ПрямыеВыплатыПособийСоциальногоСтрахования.КорневойЭлементРеестраПилотногоПроектаФСС();
ROW = ПрямыеВыплатыПособийСоциальногоСтрахования.ЭлементРеестраПилотногоПроектаФСС(ROWSET);
ПроверитьКодУдостоверенияЛичности(Отказ, ROW);
Если СпособВыплатыПособия = Перечисления.СпособыВыплатыПособия.ПочтовымПереводом Тогда
ТекстОшибки = ПроверитьАдрес(
АдресПолучателяФактический,
АдресПолучателяФактическийИдентификаторФИАС,
АдресПолучателяФактическийКодКЛАДР);
Если ЗначениеЗаполнено(ТекстОшибки) Тогда
ТекстОшибки = Метаданные().Реквизиты.АдресПолучателяФактический.Представление() + ": " + ТекстОшибки;
СообщитьОбОшибкеВЭтомОбъекте(Отказ, ТекстОшибки, "АдресПолучателяФактический");
КонецЕсли;
КонецЕсли;
Если Справочники.СтатусыНалогоплательщиковПоНДФЛ.ЭтоРезидент(СтатусНалогоплательщикаПолучателя) Тогда
ТекстОшибки = ПроверитьАдрес(
АдресПолучателяРегистрации,
АдресПолучателяРегистрацииИдентификаторФИАС,
АдресПолучателяРегистрацииКодКЛАДР);
Если ЗначениеЗаполнено(ТекстОшибки) Тогда
ТекстОшибки = Метаданные().Реквизиты.АдресПолучателяРегистрации.Представление() + ": " + ТекстОшибки;
СообщитьОбОшибкеВЭтомОбъекте(Отказ, ТекстОшибки, "АдресПолучателяРегистрации");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ПроверитьКодУдостоверенияЛичности(Отказ, ROW)
ДопустимыеВидыУдостоверенийЛичности = ПрямыеВыплатыПособийСоциальногоСтрахования.ДопустимыеЗначенияСтрокиРеестра(
ROW,
"ID_TYPE");
ЭтоДокументНаПроживание = (ЗначениеЗаполнено(СерияДокументаНаПроживание + " " + НомерДокументаНаПроживание)
И ЗначениеЗаполнено(ДатаВыдачиДокументаНаПроживание)
И ЗначениеЗаполнено(КемВыданДокументНаПроживание)
И ЗначениеЗаполнено(Гражданство)
И Гражданство <> ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.СтраныМира.Россия"));
Если ЭтоДокументНаПроживание Тогда
Если ЗначениеЗаполнено(ВидДокументаНаПроживание) Тогда
КодМВД = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВидДокументаНаПроживание, "КодМВД");
Иначе
КодМВД = Неопределено;
КонецЕсли;
Если Не ЗначениеЗаполнено(КодМВД) Тогда
ВидУдостоверенияЛичности = "01";
Иначе
ВидУдостоверенияЛичности = КодМВД;
КонецЕсли;
Если ДопустимыеВидыУдостоверенийЛичности.Найти(ВидУдостоверенияЛичности) = Неопределено Тогда
Текст = НСтр("ru = 'Код ФНС документа подтверждающего право на проживание %1 не поддерживается форматом обмена с ФСС.'");
Текст = СтрШаблон(Текст, ВидУдостоверенияЛичности);
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ВидДокументаНаПроживание");
КонецЕсли;
Иначе
Если ЗначениеЗаполнено(ВидДокументаУдостоверяющегоЛичностьПолучателя) Тогда
КодМВД = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВидДокументаУдостоверяющегоЛичностьПолучателя, "КодМВД");
Иначе
КодМВД = Неопределено;
КонецЕсли;
Если КодМВД = "18" Тогда
ВидУдостоверенияЛичности = "19";
ИначеЕсли Не ЗначениеЗаполнено(КодМВД) Тогда
ВидУдостоверенияЛичности = "01";
Иначе
ВидУдостоверенияЛичности = КодМВД;
КонецЕсли;
Если ДопустимыеВидыУдостоверенийЛичности.Найти(ВидУдостоверенияЛичности) = Неопределено Тогда
Текст = НСтр("ru = 'Код ФНС ""%1"" документа удостоверяющего личность не поддерживается форматом обмена с ФСС.'");
Текст = СтрШаблон(Текст, ВидУдостоверенияЛичности);
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ВидДокументаУдостоверяющегоЛичностьПолучателя");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Функция ПроверитьАдрес(ЗначениеАдреса, ИдентификаторФИАС, КодКЛАДР)
Если Не ЗначениеЗаполнено(ЗначениеАдреса) Тогда
Возврат НСтр("ru = 'Адрес не заполнен'");
КонецЕсли;
ТекстыОшибок = Новый Массив;
Если Не ЗначениеЗаполнено(ИдентификаторФИАС) И Не ЗначениеЗаполнено(КодКЛАДР) Тогда
Если Дата > ДатаПереходаАдресовНаGUID() Тогда
Текст = НСтр("ru = 'Не заполнен идентификатор ФИАС. Возможно, адрес введен некорректно, либо не обновлен классификатор адресов.'");
Иначе
Текст = НСтр("ru = 'Не заполнен код КЛАДР. Возможно, адрес введен некорректно, либо не обновлен классификатор адресов.'");
КонецЕсли;
ТекстыОшибок.Добавить(Текст);
КонецЕсли;
СтруктураАдреса = Документы.РеестрСведенийНеобходимыхДляНазначенияИВыплатыПособий.СтруктураАдреса(ЗначениеАдреса);
Если Не ЗначениеЗаполнено(СтруктураАдреса.Индекс) Тогда
ТекстыОшибок.Добавить(НСтр("ru = 'Не заполнен индекс.'"));
ИначеЕсли СтрДлина(СтруктураАдреса.Индекс) <> 6 Тогда
ТекстыОшибок.Добавить(СтрШаблон(НСтр("ru = 'Индекс занимает %1 символов, ожидалось 6.'"), СтрДлина(СтруктураАдреса.Индекс)));
Иначе
ЛишниеСимволы = СтроковыеФункцииБЗККлиентСервер.УдалитьЦифрыИзСтроки(СтруктураАдреса.Индекс);
Если Не ПустаяСтрока(ЛишниеСимволы) Тогда
Если СтрДлина(ЛишниеСимволы) = 1 Тогда
Текст = НСтр("ru = 'В индексе должны быть только цифры (%1 - не цифра).'");
Иначе
Текст = НСтр("ru = 'В индексе должны быть только цифры (%1 - не цифры).'");
КонецЕсли;
ТекстыОшибок.Добавить(СтрШаблон(Текст, ЛишниеСимволы));
КонецЕсли;
КонецЕсли;
Возврат СтрСоединить(ТекстыОшибок, Символы.ПС);
КонецФункции
Функция ДатаПереходаАдресовНаGUID()
Возврат '20180101';
КонецФункции
Процедура ПроверитьРайонныйКоэффициент(Отказ)
Если ЗначениеЗаполнено(РайонныйКоэффициент) И РайонныйКоэффициент > 1 Тогда
ДопустимыеЗначенияРайонногоКоэффициента = ПрямыеВыплатыПособийСоциальногоСтрахования.ДопустимыеЗначенияРайонногоКоэффициента();
Если ДопустимыеЗначенияРайонногоКоэффициента.Найти(РайонныйКоэффициент) = Неопределено Тогда
Текст = НСтр("ru = 'Указано недопустимое значение районного коэффициента.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "РайонныйКоэффициент");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ПроверитьРеквизитыЕжемесячногоПособияПоУходуЗаРебенком(Отказ)
Если ЗначениеЗаполнено(ДокументОснование)
И Не ЗначениеЗаполнено(ИдентификаторСтрокиОснования) Тогда
Текст = НСтр("ru = 'Не выбран ребенок, за которым осуществляется уход.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ИдентификаторСтрокиОснования");
КонецЕсли;
Если ЗначениеЗаполнено(ДатаПриказаОЗаменеПослеродовогоОтпуска) Или ЗначениеЗаполнено(НомерПриказаОЗаменеПослеродовогоОтпуска) Тогда
Если ЗначениеЗаполнено(ДатаПриказаОЗаменеПослеродовогоОтпуска) И Не ЗначениеЗаполнено(НомерПриказаОЗаменеПослеродовогоОтпуска) Тогда
Текст = НСтр("ru = 'Не указан номер приказа о замене послеродового отпуска на отпуск по уходу.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "НомерПриказаОЗаменеПослеродовогоОтпуска");
КонецЕсли;
Если Не ЗначениеЗаполнено(ДатаПриказаОЗаменеПослеродовогоОтпуска) И ЗначениеЗаполнено(НомерПриказаОЗаменеПослеродовогоОтпуска) Тогда
Текст = НСтр("ru = 'Не указана дата приказа о замене послеродового отпуска на отпуск по уходу.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ДатаПриказаОЗаменеПослеродовогоОтпуска");
КонецЕсли;
КонецЕсли;
Если ТипЗанятостиРаботника <> Перечисления.ВидыЗанятости.ОсновноеМестоРаботы Тогда
Если Не ЗначениеЗаполнено(ДатаСправкиОНеполученииПособияПоДругимМестамРаботы)
И Не ЗначениеЗаполнено(НомерСправкиОНеполученииПособияПоДругимМестамРаботы) Тогда
Текст = НСтр("ru = 'Для совместителей необходимо указать реквизиты Справки о неполучении пособия по основному месту работы.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "НомерСправкиОНеполученииПособияПоДругимМестамРаботы");
ИначеЕсли Не ЗначениеЗаполнено(НомерСправкиОНеполученииПособияПоДругимМестамРаботы) Тогда
Текст = НСтр("ru = 'Не указан номер Справки от матери о неполучении пособия.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "НомерСправкиОНеполученииПособияПоДругимМестамРаботы");
ИначеЕсли Не ЗначениеЗаполнено(ДатаСправкиОНеполученииПособияПоДругимМестамРаботы) Тогда
Текст = НСтр("ru = 'Не указана дата Справки от матери о неполучении пособия.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ДатаСправкиОНеполученииПособияПоДругимМестамРаботы");
КонецЕсли;
КонецЕсли;
Если ВидОсобойЗоныПроживанияРаботы = Перечисления.ВидыОсобойЗоныПроживанияРаботы.ЗонаЗагрязненияПриАварииПОМаяк
И ОтношениеКОсобойЗоне <> Перечисления.ОтношениеКОсобойЗоне.Проживает Тогда
Текст = НСтр("ru = 'Для предоставления льготы лицу, проживающему в населенном пункте, загрязненном вследствие аварии на ПО ""Маяк"", следует указать вариант ""Постоянное проживание""'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ОтношениеКОсобойЗоне");
КонецЕсли;
КонецПроцедуры
Процедура ПроверитьСправкуОНеполученииПособияОтОтцаИлиМатери(Отказ)
Если ЗначениеЗаполнено(ДатаСправкиОНеполученииПособияОтОтца) Или ЗначениеЗаполнено(НомерСправкиОНеполученииПособияОтОтца) Тогда
Если ЗначениеЗаполнено(ДатаСправкиОНеполученииПособияОтОтца) И Не ЗначениеЗаполнено(НомерСправкиОНеполученииПособияОтОтца) Тогда
Текст = НСтр("ru = 'Не указан номер Справки от отца о неполучении пособия.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "НомерСправкиОНеполученииПособияОтОтца");
КонецЕсли;
Если Не ЗначениеЗаполнено(ДатаСправкиОНеполученииПособияОтОтца) И ЗначениеЗаполнено(НомерСправкиОНеполученииПособияОтОтца) Тогда
Текст = НСтр("ru = 'Не указана дата Справки от отца о неполучении пособия.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ДатаСправкиОНеполученииПособияОтОтца");
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(ДатаСправкиОНеполученииПособияОтМатери) Или ЗначениеЗаполнено(НомерСправкиОНеполученииПособияОтМатери) Тогда
Если ЗначениеЗаполнено(ДатаСправкиОНеполученииПособияОтМатери) И Не ЗначениеЗаполнено(НомерСправкиОНеполученииПособияОтМатери) Тогда
Текст = НСтр("ru = 'Не указан номер Справки от матери о неполучении пособия.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "НомерСправкиОНеполученииПособияОтМатери");
КонецЕсли;
Если Не ЗначениеЗаполнено(ДатаСправкиОНеполученииПособияОтМатери) И ЗначениеЗаполнено(НомерСправкиОНеполученииПособияОтМатери) Тогда
Текст = НСтр("ru = 'Не указана дата Справки от матери о неполучении пособия.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ДатаСправкиОНеполученииПособияОтМатери");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ПроверитьРеквизитыЕдиновременногоПособияПриРожденииРебенка(Отказ)
Если ЗначениеЗаполнено(ДатаСправкиОРожденииРебенка)
Или ЗначениеЗаполнено(НомерСправкиОРожденииРебенка) Тогда
Если Не ЗначениеЗаполнено(ФормаСправкиОРожденииРебенка) Тогда
Текст = НСтр("ru = 'При рождении ребенка на территории РФ необходимо указать вид Справки о рождении: форма № 24 или № 25 или № 26.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ФормаСправкиОРожденииРебенка");
КонецЕсли;
Если ЗначениеЗаполнено(ДатаСвидетельстваОРождении) Или ЗначениеЗаполнено(ДатаИногоДокументаПодтверждающегоРождение) Тогда
Текст = НСтр("ru = 'При рождении ребенка на территории РФ следует указывать только реквизиты Справки о рождении (формы № 24 или № 25 или № 26).'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ДатаСвидетельстваОРождении");
КонецЕсли;
Если Не ЗначениеЗаполнено(НомерСправкиОРожденииРебенка) Тогда
Текст = НСтр("ru = 'Не указан номер Справки о рождении.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "НомерСправкиОРожденииРебенка");
КонецЕсли;
Если Не ЗначениеЗаполнено(ДатаСправкиОРожденииРебенка) Тогда
Текст = НСтр("ru = 'Не указана дата Справки о рождении.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ДатаСправкиОРожденииРебенка");
КонецЕсли;
ИначеЕсли Не (ЗначениеЗаполнено(ДатаСвидетельстваОРождении) Или ЗначениеЗаполнено(НомерСвидетельстваОРождении)
Или ЗначениеЗаполнено(ДатаИногоДокументаПодтверждающегоРождение) Или ЗначениеЗаполнено(НомерИногоДокументаПодтверждающегоРождение)) Тогда
Текст = НСтр("ru = 'Необходимо указать реквизиты одного из документов: Справки о рождении, Свидетельства о рождении, выданного консульским учреждением РФ, или документа иностранного государства, подтверждающего рождение ребенка.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ДатаСвидетельстваОРождении");
Иначе
Если ЗначениеЗаполнено(ДатаСвидетельстваОРождении) И Не ЗначениеЗаполнено(НомерСвидетельстваОРождении) Тогда
Текст = НСтр("ru = 'Не указан номер Свидетельства о рождении.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "НомерСвидетельстваОРождении");
КонецЕсли;
Если Не ЗначениеЗаполнено(ДатаСвидетельстваОРождении) И ЗначениеЗаполнено(НомерСвидетельстваОРождении) Тогда
Текст = НСтр("ru = 'Не указана дата Свидетельства о рождении.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ДатаСвидетельстваОРождении");
КонецЕсли;
Если (ЗначениеЗаполнено(ДатаСвидетельстваОРождении) Или ЗначениеЗаполнено(НомерСвидетельстваОРождении))
И Не ЗначениеЗаполнено(СерияСвидетельстваОРождении) Тогда
Текст = НСтр("ru = 'Не указана серия Свидетельства о рождении.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "СерияСвидетельстваОРождении");
КонецЕсли;
Если ЗначениеЗаполнено(ДатаИногоДокументаПодтверждающегоРождение) И Не ЗначениеЗаполнено(НомерИногоДокументаПодтверждающегоРождение) Тогда
Текст = НСтр("ru = 'Не указан номер документа иностранного государства, подтверждающего рождение ребенка.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "НомерИногоДокументаПодтверждающегоРождение");
КонецЕсли;
Если Не ЗначениеЗаполнено(ДатаИногоДокументаПодтверждающегоРождение) И ЗначениеЗаполнено(НомерИногоДокументаПодтверждающегоРождение) Тогда
Текст = НСтр("ru = 'Не указана дата документа иностранного государства, подтверждающего рождение ребенка.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ДатаИногоДокументаПодтверждающегоРождение");
КонецЕсли;
КонецЕсли;
Если (ЗначениеЗаполнено(ДатаРешенияОбОпеке) Или ЗначениеЗаполнено(НомерРешенияОбОпеке))
И (ЗначениеЗаполнено(ДатаРешенияОбУсыновлении) Или ЗначениеЗаполнено(НомерРешенияОбУсыновлении))
И (ЗначениеЗаполнено(ДатаДоговораОПередачеРебенкаВПриемнуюСемью) Или ЗначениеЗаполнено(НомерДоговораОПередачеРебенкаВПриемнуюСемью)) Тогда
Текст = НСтр("ru = 'Необходимо указать реквизиты только одного из документов: об опеке, усыновлении или о передаче ребенка на воспитание.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ДатаРешенияОбОпеке");
Иначе
Если ЗначениеЗаполнено(ДатаРешенияОбОпеке) И Не ЗначениеЗаполнено(НомерРешенияОбОпеке) Тогда
Текст = НСтр("ru = 'Не указан номер решения об установлении опеки.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "НомерРешенияОбОпеке");
КонецЕсли;
Если Не ЗначениеЗаполнено(ДатаРешенияОбОпеке) И ЗначениеЗаполнено(НомерРешенияОбОпеке) Тогда
Текст = НСтр("ru = 'Не указана дата решения об установлении опеки.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ДатаРешенияОбОпеке");
КонецЕсли;
Если ЗначениеЗаполнено(ДатаРешенияОбУсыновлении) И Не ЗначениеЗаполнено(НомерРешенияОбУсыновлении) Тогда
Текст = НСтр("ru = 'Не указан номер решения об усыновлении.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "НомерРешенияОбУсыновлении");
КонецЕсли;
Если Не ЗначениеЗаполнено(ДатаРешенияОбУсыновлении) И ЗначениеЗаполнено(НомерРешенияОбУсыновлении) Тогда
Текст = НСтр("ru = 'Не указана дата решения об усыновлении.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ДатаРешенияОбУсыновлении");
КонецЕсли;
Если ЗначениеЗаполнено(ДатаДоговораОПередачеРебенкаВПриемнуюСемью) И Не ЗначениеЗаполнено(НомерДоговораОПередачеРебенкаВПриемнуюСемью) Тогда
Текст = НСтр("ru = 'Не указан номер договора о передаче ребенка на воспитание.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "НомерДоговораОПередачеНаВоспитание");
КонецЕсли;
Если Не ЗначениеЗаполнено(ДатаДоговораОПередачеРебенкаВПриемнуюСемью) И ЗначениеЗаполнено(НомерДоговораОПередачеРебенкаВПриемнуюСемью) Тогда
Текст = НСтр("ru = 'Не указана дата договора о передаче ребенка на воспитание.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ДатаДоговораОПередачеНаВоспитание");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ПроверитьРеквизитыЛисткаНетрудоспособности(Отказ)
Если Не ЗначениеЗаполнено(ДатаЛисткаНетрудоспособности) Тогда
Текст = НСтр("ru = 'Не указана дата выдачи листка нетрудоспособности.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ДатаЛисткаНетрудоспособности");
КонецЕсли;
Если Не ЗначениеЗаполнено(НомерЛисткаНетрудоспособности) Тогда
Текст = НСтр("ru = 'Не указан номер листка нетрудоспособности.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "НомерЛисткаНетрудоспособности");
КонецЕсли;
КонецПроцедуры
Процедура ПроверитьРеквизитыСправкиОПостановкеНаУчетВРанниеСрокиБеременности(Отказ)
Если Не ЗначениеЗаполнено(ДатаСправкиОПостановкеНаУчетВРанниеСрокиБеременности) Тогда
Текст = НСтр("ru = 'Не указана дата выдачи справки о постановке на учет в медицинских учреждениях в ранние сроки беременности.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ДатаСправкиОПостановкеНаУчетВРанниеСрокиБеременности");
КонецЕсли;
Если Не ЗначениеЗаполнено(НомерСправкиОПостановкеНаУчетВРанниеСрокиБеременности) Тогда
Текст = НСтр("ru = 'Не указан номер справки о постановке на учет в медицинских учреждениях в ранние сроки беременности.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "НомерСправкиОПостановкеНаУчетВРанниеСрокиБеременности");
КонецЕсли;
КонецПроцедуры
Процедура ПроверитьРеквизитыПериодаПростоя(Отказ)
Если ЗначениеЗаполнено(ПериодПростоя1ДатаНачала) И ЗначениеЗаполнено(ПериодПростоя1ДатаОкончания) Тогда
Если ПериодПростоя1ДатаНачала > ПериодПростоя1ДатаОкончания Тогда
Текст = НСтр("ru = 'Неверно указаны даты начала и окончания простоя.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ПериодПростоя1ДатаОкончания");
ИначеЕсли ПериодПростоя1СреднийЗаработок = 0 Тогда
Текст = НСтр("ru = 'Не указан средний заработок на период простоя.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ПериодПростоя1СреднийЗаработок");
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(ПериодПростоя2ДатаНачала) И ЗначениеЗаполнено(ПериодПростоя2ДатаОкончания) Тогда
Если ПериодПростоя2ДатаНачала > ПериодПростоя2ДатаОкончания Тогда
Текст = НСтр("ru = 'Неверно указаны даты начала и окончания простоя.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ПериодПростоя2ДатаОкончания");
ИначеЕсли ПериодПростоя2СреднийЗаработок = 0 Тогда
Текст = НСтр("ru = 'Не указан средний заработок на период простоя.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ПериодПростоя2СреднийЗаработок");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ПроверитьРеквизитыПериодаТрудовогоДоговора(Отказ)
Если ЗначениеЗаполнено(ДатаНачалаТрудовогоДоговораПолучателя) Или ЗначениеЗаполнено(ДатаОкончанияТрудовогоДоговораПолучателя) Тогда
Если ЗначениеЗаполнено(ДатаНачалаТрудовогоДоговораПолучателя) И Не ЗначениеЗаполнено(ДатаОкончанияТрудовогоДоговораПолучателя) Тогда
Текст = НСтр("ru = 'Указана дата начала, но не указана дата окончания срочного трудового договора.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ДатаОкончанияТрудовогоДоговораПолучателя");
КонецЕсли;
Если Не ЗначениеЗаполнено(ДатаНачалаТрудовогоДоговораПолучателя) И ЗначениеЗаполнено(ДатаОкончанияТрудовогоДоговораПолучателя) Тогда
Текст = НСтр("ru = 'Указана дата окончания, но не указана дата начала срочного трудового договора.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ДатаНачалаТрудовогоДоговораПолучателя");
КонецЕсли;
Если ЗначениеЗаполнено(ДатаНачалаТрудовогоДоговораПолучателя) И ЗначениеЗаполнено(ДатаОкончанияТрудовогоДоговораПолучателя) Тогда
Если ДатаНачалаТрудовогоДоговораПолучателя > ДатаОкончанияТрудовогоДоговораПолучателя Тогда
Текст = НСтр("ru = 'Неверно указаны даты начала и окончания срочного трудового договора.'");
СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, "ДатаОкончанияТрудовогоДоговораПолучателя");
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ПроверитьЗаполнениеРеквизитаОбъекта(Отказ, ИмяРеквизита, Знач Текст = "")
ПроверкиБЗК.ПроверитьЗаполнениеРеквизитаОбъекта(Отказ, ЭтотОбъект, ИмяРеквизита, Текст);
КонецПроцедуры
Процедура СообщитьОбОшибкеВЭтомОбъекте(Отказ, Текст, ИмяРеквизита = "")
СообщенияБЗК.СообщитьОбОшибкеВОбъекте(Отказ, ЭтотОбъект, Текст, ИмяРеквизита);
КонецПроцедуры
#КонецОбласти
#Область ФиксацияВторичныхДанныхВДокументах
Функция ОбъектЗафиксирован(ТекстОшибки = Неопределено) Экспорт
РазрешитьИзменение = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "РазрешитьИзменение");
Если РазрешитьИзменение = Истина Тогда
Возврат Ложь;
КонецЕсли;
СведенияОРеестре = ПрямыеВыплатыПособийСоциальногоСтрахования.РеестрПоЗаявлению(Ссылка);
Если СведенияОРеестре <> Неопределено
И Не ПрямыеВыплатыПособийСоциальногоСтрахования.СтатусПозволяетРедактироватьДокумент(СведенияОРеестре.СтатусДокумента) Тогда
ТекстОшибки = СтрШаблон(
НСтр("ru = 'Заявление включено в %1: Реестр в статусе ""%2"".'"),
СведенияОРеестре.Ссылка,
СведенияОРеестре.СтатусДокумента);
Возврат Истина;
КонецЕсли;
Если ДатыЗапретаИзменения.ИзменениеЗапрещено(ЭтотОбъект) Тогда
Возврат Истина;
КонецЕсли;
Возврат Ложь;
КонецФункции
Функция ОбновитьВторичныеДанныеДокумента() Экспорт
Если ОбъектЗафиксирован() Тогда
Возврат Ложь;
КонецЕсли;
Модифицирован = Ложь;
Менеджер = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(Метаданные().ПолноеИмя());
Если ВерсияДокумента < Менеджер.АктуальнаяВерсия() Тогда
Менеджер.ОбновитьДокумент(ЭтотОбъект);
Модифицирован = Истина;
КонецЕсли;
ПараметрыФиксации = Менеджер.ПараметрыФиксацииВторичныхДанных(ЭтотОбъект);
РайонныйКоэффициентЗаполненИзОснования = Ложь;
Если ЗначениеЗаполнено(ДокументОснование)
И ЗаполнитьДанныеДокументаОснования(ПараметрыФиксации, РайонныйКоэффициентЗаполненИзОснования) Тогда
Модифицирован = Истина;
КонецЕсли;
Если ЗначениеЗаполнено(Организация)
И ЗаполнитьДанныеОрганизации(ПараметрыФиксации, РайонныйКоэффициентЗаполненИзОснования) Тогда
Модифицирован = Истина;
КонецЕсли;
Если ЗаполнитьСведенияОПредставителеСФР(ПараметрыФиксации) Тогда
Модифицирован = Истина;
КонецЕсли;
Если ЗаполнитьКадровыеДанныеСотрудника(ПараметрыФиксации, РайонныйКоэффициентЗаполненИзОснования) Тогда
Модифицирован = Истина;
КонецЕсли;
Если ЗаполнитьДокументНаПроживание(ПараметрыФиксации) Тогда
Модифицирован = Истина;
КонецЕсли;
Если ЗаполнитьСпособВыплатыПособия(ПараметрыФиксации) Тогда
Модифицирован = Истина;
КонецЕсли;
Если ЗаполнитьКонтактыФизическогоЛица(ПараметрыФиксации) Тогда
Модифицирован = Истина;
КонецЕсли;
Если ЗаполнитьКодыАдресаПочтовогоПеревода(ПараметрыФиксации) Тогда
Модифицирован = Истина;
КонецЕсли;
Если ЗаполнитьСреднийЗаработок(ПараметрыФиксации) Тогда
Модифицирован = Истина;
КонецЕсли;
ПредшествующиеСведения = ПредшествующиеСведенияОЗастрахованномЛице();
Если ЗаполнитьОснованияЛьгот(ПараметрыФиксации, ПредшествующиеСведения) Тогда
Модифицирован = Истина;
КонецЕсли;
Если ЗаполнитьФлажокИзмененыСведенияОЗастрахованномЛице(ПараметрыФиксации, ПредшествующиеСведения) Тогда
Модифицирован = Истина;
КонецЕсли;
Если ЗначениеЗаполнено(АдресПолучателяРегистрации) Тогда
ТекстОшибки = Неопределено;
КодыАдреса = ПрямыеВыплатыПособийСоциальногоСтрахования.КодыАдреса(АдресПолучателяРегистрации, ТекстОшибки);
РеквизитыДокумента = Новый Структура("АдресПолучателяРегистрацииИдентификаторФИАС, АдресПолучателяРегистрацииКодКЛАДР");
Если КодыАдреса = Неопределено Тогда
СообщенияБЗК.СообщитьОПроблеме(ТекстОшибки, ЭтотОбъект, "АдресПолучателяРегистрации");
Иначе
РеквизитыДокумента.АдресПолучателяРегистрацииИдентификаторФИАС = КодыАдреса.ИдентификаторОбъектаФИАС;
РеквизитыДокумента.АдресПолучателяРегистрацииКодКЛАДР = ?(СтрДлина(КодыАдреса.КодКЛАДР) = 16, "0" + КодыАдреса.КодКЛАДР, КодыАдреса.КодКЛАДР);
КонецЕсли;
Если ФиксацияВторичныхДанныхВДокументах.ОбновитьДанныеШапки(РеквизитыДокумента, ЭтотОбъект, ПараметрыФиксации) Тогда
Модифицирован = Истина;
КонецЕсли;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыРасширеннаяПодсистемы.ПособияСоциальногоСтрахования.ПрямыеВыплаты") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("ПрямыеВыплатыПособийСоциальногоСтрахованияРасширенный");
Модуль.ПриОбновленииВторичныхДанныхЗаявления(ЭтотОбъект, ПараметрыФиксации, Модифицирован);
КонецЕсли;
Возврат Модифицирован;
КонецФункции
Функция ЗаполнитьДанныеДокументаОснования(ПараметрыФиксации, РайонныйКоэффициентЗаполненИзОснования)
РеквизитыДокумента = Новый Структура;
ДанныеДляРасчетаСреднегоЗаработка = Неопределено;
МенеджерОснования = ОбщегоНазначения.МенеджерОбъектаПоСсылке(ДокументОснование);
МенеджерОснования.ЗаполнитьЗаявлениеСотрудникаНаВыплатуПособияПоОснованию(ДокументОснование, ЭтотОбъект, РеквизитыДокумента, ДанныеДляРасчетаСреднегоЗаработка);
Если ДанныеДляРасчетаСреднегоЗаработка <> Неопределено Тогда
ЗаполнитьРеквизитыРасчетаСреднегоЗаработка(РеквизитыДокумента, ДанныеДляРасчетаСреднегоЗаработка);
КонецЕсли;
РайонныйКоэффициентЗаполненИзОснования = РеквизитыДокумента.Свойство("РайонныйКоэффициент")
И ЗначениеЗаполнено(РеквизитыДокумента.РайонныйКоэффициент);
Если Не РеквизитыДокумента.Свойство("Перерасчет") Тогда
РеквизитыДокумента.Вставить("Перерасчет", Ложь);
РеквизитыДокумента.Вставить("КодПричиныПерерасчета", "");
РеквизитыДокумента.Вставить("ОписаниеПричиныПерерасчета", "");
КонецЕсли;
Если РеквизитыДокумента.Свойство("ДатаПредставленияПакетаДокументов")
И ТипЗнч(РеквизитыДокумента.ДатаПредставленияПакетаДокументов) = Тип("Дата")
И НачалоДня(РеквизитыДокумента.ДатаПредставленияПакетаДокументов) < НачалоДня(Дата) Тогда
РеквизитыДокумента.Вставить("ДатаПредставленияПакетаДокументов", '00010101');
КонецЕсли;
Возврат ФиксацияВторичныхДанныхВДокументах.ОбновитьДанныеШапки(РеквизитыДокумента, ЭтотОбъект, ПараметрыФиксации)
КонецФункции
Процедура ЗаполнитьРеквизитыРасчетаСреднегоЗаработка(РеквизитыДокумента, ДанныеДляРасчетаСреднегоЗаработка)
ПараметрыРасчета = ДанныеДляРасчетаСреднегоЗаработка.ПараметрыРасчета;
ДанныеРасчетаСреднего = ДанныеДляРасчетаСреднегоЗаработка.ДанныеРасчетаСреднего;
РеквизитыДокумента.Вставить("ДатаНачалаРасчетногоПериода", ПараметрыРасчета.ПериодРасчетаСреднегоЗаработкаНачало);
РеквизитыДокумента.Вставить("ДатаОкончанияРасчетногоПериода", ПараметрыРасчета.ПериодРасчетаСреднегоЗаработкаОкончание);
РеквизитыДокумента.Вставить("ПервыйРасчетныйГод", ПараметрыРасчета.РасчетныеГоды[0]);
РеквизитыДокумента.Вставить("ВторойРасчетныйГод", ПараметрыРасчета.РасчетныеГоды[1]);
РеквизитыДокумента.Вставить("РайонныйКоэффициент", ПараметрыРасчета.РайонныйКоэффициентРФ);
РеквизитыДокумента.Вставить("ДоляВремени", УчетПособийСоциальногоСтрахованияКлиентСервер.ДоляНеполногоВремени(ПараметрыРасчета));
Если ЗначениеЗаполнено(ПараметрыРасчета.ДатаНачалаСобытия)
И ЗначениеЗаполнено(ПараметрыРасчета.ПорядокРасчета) Тогда
ПериодРасчетаСреднего = УчетПособийСоциальногоСтрахованияКлиентСервер.ПериодРасчетаСреднегоЗаработкаФСС(ПараметрыРасчета.ДатаНачалаСобытия, ПараметрыРасчета.ПорядокРасчета);
ПервыйГодПоДатеСобытия = Год(ПериодРасчетаСреднего.ДатаНачала);
ВторойГодПоДатеСобытия = Год(ПериодРасчетаСреднего.ДатаОкончания);
ПоменятьМестами = (ПервыйГодПоДатеСобытия = РеквизитыДокумента.ВторойРасчетныйГод
Или ВторойГодПоДатеСобытия = РеквизитыДокумента.ПервыйРасчетныйГод);
РеквизитыДокумента.Вставить("ПервыйЗамененныйГод", ?(ПоменятьМестами, ВторойГодПоДатеСобытия, ПервыйГодПоДатеСобытия));
РеквизитыДокумента.Вставить("ВторойЗамененныйГод", ?(ПоменятьМестами, ПервыйГодПоДатеСобытия, ВторойГодПоДатеСобытия));
Если РеквизитыДокумента.ПервыйЗамененныйГод <> РеквизитыДокумента.ПервыйРасчетныйГод
Или РеквизитыДокумента.ВторойЗамененныйГод <> РеквизитыДокумента.ВторойРасчетныйГод Тогда
РеквизитыДокумента.Вставить("ЗамененыКалендарныеГодыРасчетаСреднегоЗаработка", Истина);
Иначе
РеквизитыДокумента.Вставить("ЗамененыКалендарныеГодыРасчетаСреднегоЗаработка", Ложь);
КонецЕсли;
КонецЕсли;
УчитываемыхДнейВКалендарныхГодах = УчетПособийСоциальногоСтрахованияКлиентСервер.УчитываемыхДнейВКалендарныхГодахФСС(ПараметрыРасчета, ДанныеРасчетаСреднего);
РеквизитыДокумента.Вставить("ЧислоКалендарныхДнейРасчетногоПериода", УчитываемыхДнейВКалендарныхГодах);
СтрокаПоГоду = УчетПособийСоциальногоСтрахованияКлиентСервер.ЭлементКоллекцииПоОтбору(ДанныеРасчетаСреднего, Новый Структура("РасчетныйГод", РеквизитыДокумента.ПервыйРасчетныйГод));
Если НЕ СтрокаПоГоду = Неопределено Тогда
РеквизитыДокумента.Вставить("ЗаработокПервыйГодРасчета", УчетПособийСоциальногоСтрахованияКлиентСервер.УчитываемыйЗаработокФССПоГоду(ПараметрыРасчета, СтрокаПоГоду));
Иначе
РеквизитыДокумента.Вставить("ЗаработокПервыйГодРасчета", 0);
КонецЕсли;
СтрокаПоГоду = УчетПособийСоциальногоСтрахованияКлиентСервер.ЭлементКоллекцииПоОтбору(ДанныеРасчетаСреднего, Новый Структура("РасчетныйГод", РеквизитыДокумента.ВторойРасчетныйГод));
Если НЕ СтрокаПоГоду = Неопределено Тогда
РеквизитыДокумента.Вставить("ЗаработокВторойГодРасчета", УчетПособийСоциальногоСтрахованияКлиентСервер.УчитываемыйЗаработокФССПоГоду(ПараметрыРасчета, СтрокаПоГоду));
Иначе
РеквизитыДокумента.Вставить("ЗаработокВторойГодРасчета", 0);
КонецЕсли;
КонецПроцедуры
Функция ЗаполнитьКадровыеДанныеСотрудника(ПараметрыФиксации, РайонныйКоэффициентЗаполненИзОснования)
Если Не ЗначениеЗаполнено(Сотрудник) Тогда
Возврат Ложь;
КонецЕсли;
НеобходимыеКадровыеДанныеСотрудника = Новый Массив;
НеобходимыеКадровыеДанныеСотрудника.Добавить("ФизическоеЛицо");
НеобходимыеКадровыеДанныеСотрудника.Добавить("Фамилия");
НеобходимыеКадровыеДанныеСотрудника.Добавить("Имя");
НеобходимыеКадровыеДанныеСотрудника.Добавить("Отчество");
НеобходимыеКадровыеДанныеСотрудника.Добавить("ДокументВид");
НеобходимыеКадровыеДанныеСотрудника.Добавить("ДокументСерия");
НеобходимыеКадровыеДанныеСотрудника.Добавить("ДокументНомер");
НеобходимыеКадровыеДанныеСотрудника.Добавить("ДокументДатаВыдачи");
НеобходимыеКадровыеДанныеСотрудника.Добавить("ДокументСрокДействия");
НеобходимыеКадровыеДанныеСотрудника.Добавить("ДокументКемВыдан");
НеобходимыеКадровыеДанныеСотрудника.Добавить("ДатаРождения");
НеобходимыеКадровыеДанныеСотрудника.Добавить("ИНН");
НеобходимыеКадровыеДанныеСотрудника.Добавить("СтраховойНомерПФР");
НеобходимыеКадровыеДанныеСотрудника.Добавить("СтатусНалогоплательщика");
НеобходимыеКадровыеДанныеСотрудника.Добавить("Страна");
НеобходимыеКадровыеДанныеСотрудника.Добавить("КоличествоСтавок");
НеобходимыеКадровыеДанныеСотрудника.Добавить("ВидЗанятости");
НеобходимыеКадровыеДанныеСотрудника.Добавить("ТарифнаяСтавка");
НеобходимыеКадровыеДанныеСотрудника.Добавить("Подразделение");
НеобходимыеКадровыеДанныеСотрудника.Добавить("ДоляНеполногоРабочегоВремени");
НеобходимыеКадровыеДанныеСотрудника.Добавить("РайонныйКоэффициентРФ");
ТЗКадровыеДанныеСотрудника = КадровыйУчет.КадровыеДанныеСотрудников(Истина, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Сотрудник), НеобходимыеКадровыеДанныеСотрудника, Дата);
Если ТЗКадровыеДанныеСотрудника.Количество() = 0 Тогда
Возврат Ложь;
КонецЕсли;
КадровыеДанныеСотрудника = ТЗКадровыеДанныеСотрудника[0];
ФизическоеЛицо = КадровыеДанныеСотрудника.ФизическоеЛицо;
РеквизитыДокумента = Новый Структура;
РеквизитыДокумента.Вставить("ФамилияПолучателя",КадровыеДанныеСотрудника.Фамилия);
РеквизитыДокумента.Вставить("ИмяПолучателя", КадровыеДанныеСотрудника.Имя);
РеквизитыДокумента.Вставить("ОтчествоПолучателя", КадровыеДанныеСотрудника.Отчество);
РеквизитыДокумента.Вставить("ФамилияЗаявителя", КадровыеДанныеСотрудника.Фамилия);
РеквизитыДокумента.Вставить("ИмяЗаявителя", КадровыеДанныеСотрудника.Имя);
РеквизитыДокумента.Вставить("ОтчествоЗаявителя", КадровыеДанныеСотрудника.Отчество);
РеквизитыДокумента.Вставить("ИННПолучателя", КадровыеДанныеСотрудника.ИНН);
РеквизитыДокумента.Вставить("СНИЛСПолучателя", КадровыеДанныеСотрудника.СтраховойНомерПФР);
РеквизитыДокумента.Вставить("СтатусНалогоплательщикаПолучателя", КадровыеДанныеСотрудника.СтатусНалогоплательщика);
РеквизитыДокумента.Вставить("ДатаРожденияПолучателя", КадровыеДанныеСотрудника.ДатаРождения);
РеквизитыДокумента.Вставить("Гражданство", КадровыеДанныеСотрудника.Страна);
РеквизитыДокумента.Вставить("ВидДокументаУдостоверяющегоЛичностьПолучателя", КадровыеДанныеСотрудника.ДокументВид);
РеквизитыДокумента.Вставить("СерияДокументаУдостоверяющегоЛичностьПолучателя", КадровыеДанныеСотрудника.ДокументСерия);
РеквизитыДокумента.Вставить("НомерДокументаУдостоверяющегоЛичностьПолучателя", КадровыеДанныеСотрудника.ДокументНомер);
РеквизитыДокумента.Вставить("ДатаВыдачиДокументаУдостоверяющегоЛичностьПолучателя", КадровыеДанныеСотрудника.ДокументДатаВыдачи);
РеквизитыДокумента.Вставить("ДатаДействияДокументаУдостоверяющегоЛичностьПолучателя", КадровыеДанныеСотрудника.ДокументСрокДействия);
РеквизитыДокумента.Вставить("КемВыданДокументУдостоверяющийЛичностьПолучателя", КадровыеДанныеСотрудника.ДокументКемВыдан);
РеквизитыДокумента.Вставить("ДолжностнойОклад", КадровыеДанныеСотрудника.ТарифнаяСтавка);
РеквизитыДокумента.Вставить("ТипЗанятостиРаботника", КадровыеДанныеСотрудника.ВидЗанятости);
Если Не РайонныйКоэффициентЗаполненИзОснования Тогда
РеквизитыДокумента.Вставить("РайонныйКоэффициент", КадровыеДанныеСотрудника.РайонныйКоэффициентРФ);
КонецЕсли;
Если Не ЗначениеЗаполнено(ДокументОснование) Тогда
РеквизитыДокумента.Вставить("ДоляВремени", КадровыеДанныеСотрудника.ДоляНеполногоРабочегоВремени);
КонецЕсли;
Возврат ФиксацияВторичныхДанныхВДокументах.ОбновитьДанныеШапки(РеквизитыДокумента, ЭтотОбъект, ПараметрыФиксации);
КонецФункции
Функция ЗаполнитьДокументНаПроживание(ПараметрыФиксации)
Если Не ЗначениеЗаполнено(ФизическоеЛицо) Тогда
Возврат Ложь;
КонецЕсли;
РеквизитыДокумента = Новый Структура;
Если Не ЗначениеЗаполнено(Гражданство) Или ЭтоПредопределенный(Гражданство, "Россия") Тогда
РеквизитыДокумента.Вставить("ВидДокументаНаПроживание", Справочники.ВидыДокументовФизическихЛиц.ПустаяСсылка());
РеквизитыДокумента.Вставить("КемВыданДокументНаПроживание", "");
РеквизитыДокумента.Вставить("СерияДокументаНаПроживание", "");
РеквизитыДокумента.Вставить("НомерДокументаНаПроживание", "");
РеквизитыДокумента.Вставить("ДатаВыдачиДокументаНаПроживание", '00010101');
Иначе
ДанныеДокументаНаПроживание = ПрямыеВыплатыПособийСоциальногоСтрахования.ДокументРазрешениеНаПроживаниеФизическогоЛица(ФизическоеЛицо, Дата);
РеквизитыДокумента.Вставить("ВидДокументаНаПроживание", ДанныеДокументаНаПроживание.ВидДокумента);
РеквизитыДокумента.Вставить("КемВыданДокументНаПроживание", ДанныеДокументаНаПроживание.КемВыдан);
РеквизитыДокумента.Вставить("СерияДокументаНаПроживание", ДанныеДокументаНаПроживание.Серия);
РеквизитыДокумента.Вставить("НомерДокументаНаПроживание", ДанныеДокументаНаПроживание.Номер);
РеквизитыДокумента.Вставить("ДатаВыдачиДокументаНаПроживание", ДанныеДокументаНаПроживание.ДатаВыдачи);
КонецЕсли;
Возврат ФиксацияВторичныхДанныхВДокументах.ОбновитьДанныеШапки(РеквизитыДокумента, ЭтотОбъект, ПараметрыФиксации);
КонецФункции
Функция ЭтоПредопределенный(Знач СсылкаЭлемента, Знач ИмяПредопределенного)
УстановитьПривилегированныйРежим(Истина);
ИмяПредопределенныхДанных = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СсылкаЭлемента, "ИмяПредопределенныхДанных", Ложь);
Возврат СтрСравнить(ИмяПредопределенныхДанных, ИмяПредопределенного) = 0;
КонецФункции
Функция ЗаполнитьДанныеОрганизации(ПараметрыФиксации, РайонныйКоэффициентЗаполненИзОснования)
ГоловнаяОрганизация = ЗарплатаКадры.ГоловнаяОрганизация(Организация);
ИменаЗаполняемыхПолей =
"НаименованиеОрганизации,
|НаименованиеТерриториальногоОрганаФСС,
|РегистрационныйНомерФСС,
|ДополнительныйКодФСС,
|КодПодчиненностиФСС,
|ИНН,
|ПредставительСФР,
|ДолжностьПредставителяСФР,
|ОснованиеПодписиПредставителяСФР";
РеквизитыДокумента = Новый Структура(ИменаЗаполняемыхПолей);
Если Не РайонныйКоэффициентЗаполненИзОснования И ЗначениеЗаполнено(Организация) Тогда
РайонныйКоэффициентРФ = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Организация, "РайонныйКоэффициентРФ");
РеквизитыДокумента.Вставить("РайонныйКоэффициент", РайонныйКоэффициентРФ);
КонецЕсли;
СведенияОПодписях = ПодписиДокументов.СведенияОПодписяхПоУмолчаниюДляОбъектаМетаданных(Метаданные(), Организация);
ЗаполнитьЗначенияСвойств(РеквизитыДокумента, СведенияОПодписях);
ИменаПолей =
"НаименованиеТерриториальногоОрганаФСС,
|РегистрационныйНомерФСС,
|КодПодчиненностиФСС,
|ДополнительныйКодФСС,
|ИННЮЛ,
|НаимЮЛПол,
|НаимЮЛСокр,
|ТелОрганизации_JSON,
|АдресЭлектроннойПочтыОрганизации";
СведенияОбОрганизации = СЭДОФСС.СведенияОСтрахователе(Организация, ИменаПолей, Дата);
ЗаполнитьЗначенияСвойств(РеквизитыДокумента, СведенияОбОрганизации);
РеквизитыДокумента.ИНН = СведенияОбОрганизации.ИННЮЛ;
РеквизитыДокумента.НаименованиеОрганизации = СведенияОбОрганизации.НаимЮЛПол;
ДополнительныеСвойства.Вставить("СведенияОбОрганизации", СведенияОбОрганизации);
Если СтрДлина(РеквизитыДокумента.НаименованиеОрганизации) > 135 Тогда
РеквизитыДокумента.НаименованиеОрганизации = СведенияОбОрганизации.НаимЮЛСокр;
КонецЕсли;
Возврат ФиксацияВторичныхДанныхВДокументах.ОбновитьДанныеШапки(РеквизитыДокумента, ЭтотОбъект, ПараметрыФиксации);
КонецФункции
Функция ЗаполнитьСведенияОПредставителеСФР(ПараметрыФиксации)
Реквизиты = Новый Структура("ТелефонУполномоченногоПредставителя, АдресЭлектроннойПочтыСтрахователя");
Если ДополнительныеСвойства.Свойство("СведенияОбОрганизации") Тогда
Реквизиты.ТелефонУполномоченногоПредставителя = ДополнительныеСвойства.СведенияОбОрганизации.ТелОрганизации_JSON;
Реквизиты.АдресЭлектроннойПочтыСтрахователя = ДополнительныеСвойства.СведенияОбОрганизации.АдресЭлектроннойПочтыОрганизации;
КонецЕсли;
Если ЗначениеЗаполнено(ПредставительСФР) Тогда
ИменаПолей = "ТелефонРабочий, EMailПредставление";
КадровыеДанные = КадровыйУчет.КадровыеДанныеФизическогоЛица(Ложь, ПредставительСФР, ИменаПолей, ТекущаяДатаСеанса());
Если КадровыеДанные <> Неопределено Тогда
Если ЗначениеЗаполнено(КадровыеДанные.ТелефонРабочий) Тогда
Реквизиты.ТелефонУполномоченногоПредставителя = КадровыеДанные.ТелефонРабочий;
КонецЕсли;
Если ЗначениеЗаполнено(КадровыеДанные.EMailПредставление) Тогда
Реквизиты.АдресЭлектроннойПочтыСтрахователя = КадровыеДанные.EMailПредставление;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Возврат ФиксацияВторичныхДанныхВДокументах.ОбновитьДанныеШапки(Реквизиты, ЭтотОбъект, ПараметрыФиксации);
КонецФункции
Функция ЗаполнитьСпособВыплатыПособия(ПараметрыФиксации)
Модифицирован = Ложь;
РеквизитыБанка = Новый Структура("НаименованиеБанка, БИКБанка, КоррСчетБанка");
Если ЗначениеЗаполнено(Организация) И ЗначениеЗаполнено(ФизическоеЛицо) Тогда
Способы = СпособыПрямыхВыплатФСС.НастройкиСотрудников(
Организация,
ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ФизическоеЛицо),
ТекущаяДатаСеанса());
Способ = Способы.ТаблицаРезультат[0];
ТипыСпособов = СпособыПрямыхВыплатФСС.ТипыСпособовПрямыхВыплат();
ТипСпособа = ТипыСпособов.Найти(ТипЗнч(Способ.Значение), "Тип");
Если ТипСпособа <> Неопределено Тогда
Реквизиты = Новый Структура("СпособВыплатыПособия, КартаМИР, Банк, НомерЛицевогоСчета, ВидАдресаПочтовогоПеревода");
Реквизиты.СпособВыплатыПособия = ТипСпособа.СпособВыплатыПособия;
Если Реквизиты.СпособВыплатыПособия = Перечисления.СпособыВыплатыПособия.НаКартуМИР Тогда
Реквизиты.КартаМИР = Способ.Значение;
ИначеЕсли Реквизиты.СпособВыплатыПособия = Перечисления.СпособыВыплатыПособия.ЧерезБанк Тогда
Реквизиты.Банк = Способ.Банк;
Реквизиты.НомерЛицевогоСчета = Способ.НомерСчета;
Иначе
Реквизиты.ВидАдресаПочтовогоПеревода = Способ.Значение;
КонецЕсли;
Если ФиксацияВторичныхДанныхВДокументах.ОбновитьДанныеШапки(Реквизиты, ЭтотОбъект, ПараметрыФиксации) Тогда
Модифицирован = Истина;
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(Банк)
И Не ФиксацияВторичныхДанныхВДокументах.РеквизитыШапкиЗафиксированы(ЭтотОбъект, РеквизитыБанка) Тогда
Если Банк <> Способ.Банк Тогда
Найденные = Способы.БанковскиеРеквизиты.НайтиСтроки(Новый Структура("Банк, ПометкаУдаления", Банк, Ложь));
Если Найденные.Количество() = 0 Тогда
Найденные = Способы.БанковскиеРеквизиты.НайтиСтроки(Новый Структура("Банк", Банк));
КонецЕсли;
Если Найденные.Количество() = 0 Тогда
Способ = Неопределено;
Иначе
Способ = Найденные[0];
КонецЕсли;
КонецЕсли;
Если Способ = Неопределено Тогда
ЗаполнитьРеквизитыБанкаПоСсылке(РеквизитыБанка);
Иначе
РеквизитыБанка.НаименованиеБанка = Способ.НаименованиеБанка;
РеквизитыБанка.БИКБанка = Способ.БИК;
РеквизитыБанка.КоррСчетБанка = Способ.КоррСчет;
КонецЕсли;
Если ФиксацияВторичныхДанныхВДокументах.ОбновитьДанныеШапки(РеквизитыБанка, ЭтотОбъект, ПараметрыФиксации) Тогда
Модифицирован = Истина;
КонецЕсли;
КонецЕсли;
Иначе
Если ЗначениеЗаполнено(Банк)
И Не ФиксацияВторичныхДанныхВДокументах.РеквизитыШапкиЗафиксированы(ЭтотОбъект, РеквизитыБанка) Тогда
ЗаполнитьРеквизитыБанкаПоСсылке(РеквизитыБанка);
Если ФиксацияВторичныхДанныхВДокументах.ОбновитьДанныеШапки(РеквизитыБанка, ЭтотОбъект, ПараметрыФиксации) Тогда
Модифицирован = Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Возврат Модифицирован;
КонецФункции
Процедура ЗаполнитьРеквизитыБанкаПоСсылке(РеквизитыБанка)
Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Банк, "Наименование, Код, КоррСчет");
РеквизитыБанка.НаименованиеБанка = Реквизиты.Наименование;
РеквизитыБанка.БИКБанка = Реквизиты.Код;
РеквизитыБанка.КоррСчетБанка = Реквизиты.КоррСчет;
КонецПроцедуры
Функция ЗаполнитьКонтактыФизическогоЛица(ПараметрыФиксации)
Если Не ЗначениеЗаполнено(ФизическоеЛицо) Тогда
Возврат Ложь;
КонецЕсли;
Реквизиты = Новый Структура("АдресПолучателяФактический, АдресПолучателяРегистрации, ТелефонПолучателя");
ВидАдресПоПрописке = КадровыйУчет.ВидКонтактнойИнформацииАдресПоПропискеФизическиеЛица();
ВидТелефонДомашний = КадровыйУчет.ВидКонтактнойИнформацииТелефонДомашнийФизическиеЛица();
ВидТелефонМобильный = КадровыйУчет.ВидКонтактнойИнформацииТелефонМобильныйФизическиеЛица();
ВидыКИ = Новый Массив;
ВидыКИ.Добавить(ВидАдресПоПрописке);
ВидыКИ.Добавить(ВидТелефонДомашний);
ВидыКИ.Добавить(ВидТелефонМобильный);
Если ЗначениеЗаполнено(ВидАдресаПочтовогоПеревода) Тогда
ВидыКИ.Добавить(ВидАдресаПочтовогоПеревода);
КонецЕсли;
ТаблицаКИ = КонтактнаяИнформацияБЗК.КонтактнаяИнформацияОбъектов(ФизическоеЛицо, , ВидыКИ);
СтрокаКИ = ТаблицаКИ.Найти(ВидАдресПоПрописке, "Вид");
Если СтрокаКИ <> Неопределено Тогда
Реквизиты.АдресПолучателяРегистрации = СтрокаКИ.Значение;
КонецЕсли;
СтрокаКИ = ТаблицаКИ.Найти(ВидТелефонДомашний, "Вид");
Если СтрокаКИ <> Неопределено Тогда
Реквизиты.ТелефонПолучателя = СтрокаКИ.Значение;
КонецЕсли;
Если Не ЗначениеЗаполнено(Реквизиты.ТелефонПолучателя) Тогда
СтрокаКИ = ТаблицаКИ.Найти(ВидТелефонМобильный, "Вид");
Если СтрокаКИ <> Неопределено Тогда
Реквизиты.ТелефонПолучателя = СтрокаКИ.Значение;
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(ВидАдресаПочтовогоПеревода) Тогда
СтрокаКИ = ТаблицаКИ.Найти(ВидАдресаПочтовогоПеревода, "Вид");
Если СтрокаКИ <> Неопределено Тогда
Реквизиты.АдресПолучателяФактический = СтрокаКИ.Значение;
КонецЕсли;
КонецЕсли;
Возврат ФиксацияВторичныхДанныхВДокументах.ОбновитьДанныеШапки(Реквизиты, ЭтотОбъект, ПараметрыФиксации);
КонецФункции
Функция ЗаполнитьКодыАдресаПочтовогоПеревода(ПараметрыФиксации)
Если Не ЗначениеЗаполнено(АдресПолучателяФактический)
Или СпособВыплатыПособия <> Перечисления.СпособыВыплатыПособия.ПочтовымПереводом Тогда
Возврат Ложь;
КонецЕсли;
Реквизиты = Новый Структура("АдресПолучателяФактическийИдентификаторФИАС, АдресПолучателяФактическийКодКЛАДР");
Если ФиксацияВторичныхДанныхВДокументах.РеквизитыШапкиЗафиксированы(ЭтотОбъект, Реквизиты) Тогда
Возврат Ложь;
КонецЕсли;
ТекстОшибки = "";
КодыАдреса = ПрямыеВыплатыПособийСоциальногоСтрахования.КодыАдреса(АдресПолучателяФактический, ТекстОшибки);
Если КодыАдреса = Неопределено Тогда
СообщенияБЗК.СообщитьОПроблеме(ТекстОшибки, ЭтотОбъект, "АдресПолучателяФактический");
Иначе
Реквизиты.АдресПолучателяФактическийИдентификаторФИАС = КодыАдреса.ИдентификаторОбъектаФИАС;
Реквизиты.АдресПолучателяФактическийКодКЛАДР = ?(СтрДлина(КодыАдреса.КодКЛАДР) = 16, "0" + КодыАдреса.КодКЛАДР, КодыАдреса.КодКЛАДР);
КонецЕсли;
Возврат ФиксацияВторичныхДанныхВДокументах.ОбновитьДанныеШапки(Реквизиты, ЭтотОбъект, ПараметрыФиксации);
КонецФункции
Функция ЗаполнитьОснованияЛьгот(ПараметрыФиксации, ПредшествующиеСведения)
Если ПредшествующиеСведения = Неопределено Тогда
Возврат Ложь;
КонецЕсли;
Реквизиты = Новый Структура("ОтношениеКОсобойЗоне, ВидОсобойЗоныПроживанияРаботы");
Если ФиксацияВторичныхДанныхВДокументах.РеквизитыШапкиЗафиксированы(ЭтотОбъект, Реквизиты) Тогда
Возврат Ложь;
КонецЕсли;
Реквизиты.ОтношениеКОсобойЗоне = ПредшествующиеСведения.ОтношениеКОсобойЗоне;
Реквизиты.ВидОсобойЗоныПроживанияРаботы = ПредшествующиеСведения.ВидОсобойЗоныПроживанияРаботы;
Возврат ФиксацияВторичныхДанныхВДокументах.ОбновитьДанныеШапки(Реквизиты, ЭтотОбъект, ПараметрыФиксации);
КонецФункции
Функция ЗаполнитьФлажокИзмененыСведенияОЗастрахованномЛице(ПараметрыФиксации, ПредшествующиеСведения)
Если Дата < ПрямыеВыплатыПособийСоциальногоСтрахования.ДатаВступленияВСилуФорм2021Года() Тогда
Возврат Ложь;
КонецЕсли;
Реквизиты = Новый Структура("ИзмененыСведенияОЗастрахованномЛице");
Если ФиксацияВторичныхДанныхВДокументах.РеквизитыШапкиЗафиксированы(ЭтотОбъект, Реквизиты) Тогда
Возврат Ложь;
КонецЕсли;
Если ПредшествующиеСведения = Неопределено Тогда
Реквизиты.ИзмененыСведенияОЗастрахованномЛице = Истина;
Иначе
СутьОтличий = СутьОтличийВСведенияхОЗастрахованномЛице(ПредшествующиеСведения);
Реквизиты.ИзмененыСведенияОЗастрахованномЛице = ЗначениеЗаполнено(СутьОтличий);
КонецЕсли;
Возврат ФиксацияВторичныхДанныхВДокументах.ОбновитьДанныеШапки(Реквизиты, ЭтотОбъект, ПараметрыФиксации);
КонецФункции
Функция ЗаполнитьСреднийЗаработок(ПараметрыФиксации)
Если ВидПособия <> Перечисления.ПособияНазначаемыеФСС.ОтпускСверхЕжегодногоНаПериодЛечения Тогда
Возврат Ложь;
КонецЕсли;
Если ФиксацияВторичныхДанныхВДокументах.РеквизитШапкиЗафиксирован(ЭтотОбъект, "СреднийЗаработок") Тогда
Возврат Ложь;
КонецЕсли;
Если Не ЗначениеЗаполнено(ДатаНачалаОтпускаПоУходуЗаРебенком) Тогда
Возврат Ложь;
КонецЕсли;
ЕстьИзменения = Ложь;
Таблица = СреднийЗаработок.Выгрузить();
Таблица.Колонки.Добавить("Соответствует", Новый ОписаниеТипов("Булево"));
Таблица.Сортировать("Период");
Период = НачалоМесяца(ДобавитьМесяц(ДатаНачалаОтпускаПоУходуЗаРебенком, -12));
Для НомерМесяца = 1 По 12 Цикл
СтрокаТаблицы = Таблица.Найти(Период, "Период");
Если СтрокаТаблицы = Неопределено Тогда
СтрокаТаблицы = Таблица.Добавить();
СтрокаТаблицы.Период = Период;
ЕстьИзменения = Истина;
КонецЕсли;
СтрокаТаблицы.Соответствует = Истина;
Период = ДобавитьМесяц(Период, 1);
КонецЦикла;
СтрокиКУдалению = Таблица.НайтиСтроки(Новый Структура("Соответствует", Ложь));
Для Каждого СтрокаКУдалению Из СтрокиКУдалению Цикл
Таблица.Удалить(СтрокаКУдалению);
ЕстьИзменения = Истина;
КонецЦикла;
Если ЕстьИзменения Тогда
СреднийЗаработок.Загрузить(Таблица);
СреднийЗаработок.Сортировать("Период");
КонецЕсли;
Возврат ЕстьИзменения;
КонецФункции
#КонецОбласти
#Область СведенияОЗастрахованномЛице
Процедура ПроверитьОтсутствиеДваждыИзмененныхСведенийОЗастрахованномЛице(Отказ)
Если Не ИзмененыСведенияОЗастрахованномЛице Тогда
Возврат;
КонецЕсли;
Если Дата < ПрямыеВыплатыПособийСоциальногоСтрахования.ДатаВступленияВСилуФорм2021Года() Тогда
Возврат;
КонецЕсли;
ПредшествующиеСведения = ПредшествующиеСведенияОЗастрахованномЛице();
Если ПредшествующиеСведения = Неопределено
Или НачалоДня(ПредшествующиеСведения.Дата) < НачалоДня(Дата) Тогда
Возврат;
КонецЕсли;
Если Не ЭтоНовый() И ПредшествующиеСведения.Ссылка = Ссылка Тогда
Текст = НСтр("ru = 'Функция %1 вернула ссылку на текущий документ.'");
Текст = СтрШаблон(Текст, Метаданные().ПолноеИмя() + ".МодульОбъекта.ПредшествующиеСведенияОЗастрахованномЛице");
СообщенияБЗК.СообщитьОПроблеме(Текст, ЭтотОбъект, "Дата");
Возврат;
КонецЕсли;
СутьОтличий = СутьОтличийВСведенияхОЗастрахованномЛице(ПредшествующиеСведения);
Если ПустаяСтрока(СутьОтличий) Тогда
Возврат;
КонецЕсли;
Если Не Проведен Или ЭтоНовый() Тогда
ТекущийВведенПозже = Истина;
Иначе
Если Организация = ПредшествующиеСведения.Организация И Лев(Номер, 5) = Лев(ПредшествующиеСведения.Номер, 5) Тогда
ТекущийВведенПозже = Номер > ПредшествующиеСведения.Номер;
Иначе
ТекущийВведенПозже = Ссылка > ПредшествующиеСведения.Ссылка;
КонецЕсли;
КонецЕсли;
Текст = НСтр("ru = 'Сведения о застрахованном лице дважды изменены за одну дату (%1) документами: %2 и %3 (суть отличий: %4). Предлагается выбрать один документ с включенным флажком ""Изменены сведения о застрахованном лице"" с актуальными сведениями (предположительно - %5), а в другом документе отменить исправления сведений о застрахованном лице (предположительно - %6).'");
Если ЗначениеЗаполнено(Номер) И Не ЭтоНовый() Тогда
ТекущиеСведенияНомер = СтрШаблон(НСтр("ru = '%1 (текущим)'"), Номер);
ВТекущем = СтрШаблон(НСтр("ru = 'в текущем, с номером %1'"), Номер);
Иначе
ТекущиеСведенияНомер = НСтр("ru = 'текущим'");
ВТекущем = НСтр("ru = 'в текущем'");
КонецЕсли;
ВПредшествующем = СтрШаблон(НСтр("ru = 'в предшествующем, с номером %1'"), ПредшествующиеСведения.Номер);;
Если ТекущийВведенПозже Тогда
ВКакомОставитьФлажок = ВПредшествующем;
ВКакомОтключитьФлажок = ВТекущем;
Иначе
ВКакомОставитьФлажок = ВТекущем;
ВКакомОтключитьФлажок = ВПредшествующем;
КонецЕсли;
Текст = СтрШаблон(
Текст,
Формат(Дата, "ДЛФ=D"),
ПредшествующиеСведения.Номер,
ТекущиеСведенияНомер,
СутьОтличий,
ВКакомОставитьФлажок,
ВКакомОтключитьФлажок);
ИмяРеквизита = "ИзмененыСведенияОЗастрахованномЛице";
СообщенияБЗК.СообщитьОбОшибкеВОбъекте(Отказ, ПредшествующиеСведения.Ссылка, Текст, ИмяРеквизита);
КонецПроцедуры
Функция ПредшествующиеСведенияОЗастрахованномЛице()
Если Не ЗначениеЗаполнено(ФизическоеЛицо) Тогда
Возврат Неопределено;
КонецЕсли;
Если ЗначениеЗаполнено(Дата) Тогда
НачалоДняЗаявления = КонецДня(Дата) + 1;
Иначе
НачалоДняЗаявления = КонецДня(ТекущаяДатаСеанса()) + 1;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| Сведения.Ссылка КАК Ссылка,
| Сведения.ВерсияДанных КАК ВерсияДанных,
| Сведения.ПометкаУдаления КАК ПометкаУдаления,
| Сведения.Номер КАК Номер,
| Сведения.Дата КАК Дата,
| Сведения.Проведен КАК Проведен,
| Сведения.АдресПолучателяРегистрации КАК АдресПолучателяРегистрации,
| Сведения.АдресПолучателяРегистрацииИдентификаторФИАС КАК АдресПолучателяРегистрацииИдентификаторФИАС,
| Сведения.АдресПолучателяРегистрацииКодКЛАДР КАК АдресПолучателяРегистрацииКодКЛАДР,
| Сведения.АдресПолучателяФактический КАК АдресПолучателяФактический,
| Сведения.АдресПолучателяФактическийИдентификаторФИАС КАК АдресПолучателяФактическийИдентификаторФИАС,
| Сведения.АдресПолучателяФактическийКодКЛАДР КАК АдресПолучателяФактическийКодКЛАДР,
| Сведения.Банк КАК Банк,
| Сведения.БИКБанка КАК БИКБанка,
| Сведения.ВерсияДокумента КАК ВерсияДокумента,
| Сведения.ВидАдресаПочтовогоПеревода КАК ВидАдресаПочтовогоПеревода,
| Сведения.ВидДокументаНаПроживание КАК ВидДокументаНаПроживание,
| Сведения.ВидДокументаУдостоверяющегоЛичностьЗаявителя КАК ВидДокументаУдостоверяющегоЛичностьЗаявителя,
| Сведения.ВидДокументаУдостоверяющегоЛичностьПолучателя КАК ВидДокументаУдостоверяющегоЛичностьПолучателя,
| Сведения.ВидОсобойЗоныПроживанияРаботы КАК ВидОсобойЗоныПроживанияРаботы,
| Сведения.ВидПособия КАК ВидПособия,
| Сведения.ВидРеестра КАК ВидРеестра,
| Сведения.ВторойЗамененныйГод КАК ВторойЗамененныйГод,
| Сведения.ВторойРасчетныйГод КАК ВторойРасчетныйГод,
| Сведения.Гражданство КАК Гражданство,
| Сведения.ДатаВыдачиДокументаНаПроживание КАК ДатаВыдачиДокументаНаПроживание,
| Сведения.ДатаВыдачиДокументаУдостоверяющегоЛичностьЗаявителя КАК ДатаВыдачиДокументаУдостоверяющегоЛичностьЗаявителя,
| Сведения.ДатаВыдачиДокументаУдостоверяющегоЛичностьПолучателя КАК ДатаВыдачиДокументаУдостоверяющегоЛичностьПолучателя,
| Сведения.ДатаДействияДокументаУдостоверяющегоЛичностьПолучателя КАК ДатаДействияДокументаУдостоверяющегоЛичностьПолучателя,
| Сведения.ДатаДоговораОПередачеРебенкаВПриемнуюСемью КАК ДатаДоговораОПередачеРебенкаВПриемнуюСемью,
| Сведения.ДатаЗаявленияОЗаменеРасчетныхГодов КАК ДатаЗаявленияОЗаменеРасчетныхГодов,
| Сведения.ДатаИногоДокументаПодтверждающегоРождение КАК ДатаИногоДокументаПодтверждающегоРождение,
| Сведения.ДатаЛисткаНетрудоспособности КАК ДатаЛисткаНетрудоспособности,
| Сведения.ДатаНачалаОтпускаПоУходуЗаРебенком КАК ДатаНачалаОтпускаПоУходуЗаРебенком,
| Сведения.ДатаНачалаРасчетногоПериода КАК ДатаНачалаРасчетногоПериода,
| Сведения.ДатаНачалаТрудовогоДоговораПолучателя КАК ДатаНачалаТрудовогоДоговораПолучателя,
| Сведения.ДатаОкончанияОтпускаПоУходуЗаРебенком КАК ДатаОкончанияОтпускаПоУходуЗаРебенком,
| Сведения.ДатаОкончанияРасчетногоПериода КАК ДатаОкончанияРасчетногоПериода,
| Сведения.ДатаОкончанияТрудовогоДоговораПолучателя КАК ДатаОкончанияТрудовогоДоговораПолучателя,
| Сведения.ДатаПредставленияПакетаДокументов КАК ДатаПредставленияПакетаДокументов,
| Сведения.ДатаПриказаОЗаменеПослеродовогоОтпуска КАК ДатаПриказаОЗаменеПослеродовогоОтпуска,
| Сведения.ДатаПриказаОПредоставленииОтпускаПоУходуЗаРебенком КАК ДатаПриказаОПредоставленииОтпускаПоУходуЗаРебенком,
| Сведения.ДатаРешенияОбОпеке КАК ДатаРешенияОбОпеке,
| Сведения.ДатаРешенияОбУсыновлении КАК ДатаРешенияОбУсыновлении,
| Сведения.ДатаРожденияПолучателя КАК ДатаРожденияПолучателя,
| Сведения.ДатаРожденияРебенка КАК ДатаРожденияРебенка,
| Сведения.СНИЛСРебенка КАК СНИЛСРебенка,
| Сведения.ДатаСвидетельстваОРождении КАК ДатаСвидетельстваОРождении,
| Сведения.ДатаСправкиОНеполученииПособияОтМатери КАК ДатаСправкиОНеполученииПособияОтМатери,
| Сведения.ДатаСправкиОНеполученииПособияОтОтца КАК ДатаСправкиОНеполученииПособияОтОтца,
| Сведения.ДатаСправкиОНеполученииПособияПоДругимМестамРаботы КАК ДатаСправкиОНеполученииПособияПоДругимМестамРаботы,
| Сведения.ДатаСправкиОПостановкеНаУчетВРанниеСрокиБеременности КАК ДатаСправкиОПостановкеНаУчетВРанниеСрокиБеременности,
| Сведения.ДатаСправкиОРожденииРебенка КАК ДатаСправкиОРожденииРебенка,
| Сведения.ДокументОснование КАК ДокументОснование,
| Сведения.ДолжностнойОклад КАК ДолжностнойОклад,
| Сведения.ДолжностьПредставителяСФР КАК ДолжностьПредставителяСФР,
| Сведения.ДоляВремени КАК ДоляВремени,
| Сведения.ЗамененыКалендарныеГодыРасчетаСреднегоЗаработка КАК ЗамененыКалендарныеГодыРасчетаСреднегоЗаработка,
| Сведения.ЗаработокВторойГодРасчета КАК ЗаработокВторойГодРасчета,
| Сведения.ЗаработокПервыйГодРасчета КАК ЗаработокПервыйГодРасчета,
| Сведения.ИдентификаторСтрокиОснования КАК ИдентификаторСтрокиОснования,
| Сведения.ИзвещениеИзФССДата КАК ИзвещениеИзФССДата,
| Сведения.ИзвещениеИзФССНомер КАК ИзвещениеИзФССНомер,
| Сведения.ИмяЗаявителя КАК ИмяЗаявителя,
| Сведения.ИмяПолучателя КАК ИмяПолучателя,
| Сведения.ИмяРебенка КАК ИмяРебенка,
| Сведения.ИННПолучателя КАК ИННПолучателя,
| Сведения.ИсправленныйДокумент КАК ИсправленныйДокумент,
| Сведения.КартаМИР КАК КартаМИР,
| Сведения.КемВыданДокументНаПроживание КАК КемВыданДокументНаПроживание,
| Сведения.КемВыданДокументУдостоверяющийЛичностьЗаявителя КАК КемВыданДокументУдостоверяющийЛичностьЗаявителя,
| Сведения.КемВыданДокументУдостоверяющийЛичностьПолучателя КАК КемВыданДокументУдостоверяющийЛичностьПолучателя,
| Сведения.КодПричиныПерерасчета КАК КодПричиныПерерасчета,
| Сведения.КоличествоОплаченныхДнейНетрудоспособностиИнвалида КАК КоличествоОплаченныхДнейНетрудоспособностиИнвалида,
| Сведения.Комментарий КАК Комментарий,
| Сведения.КоррСчетБанка КАК КоррСчетБанка,
| Сведения.МРОТ КАК МРОТ,
| Сведения.НаименованиеБанка КАК НаименованиеБанка,
| Сведения.НаименованиеОрганизации КАК НаименованиеОрганизации,
| Сведения.НаименованиеТерриториальногоОрганаФСС КАК НаименованиеТерриториальногоОрганаФСС,
| Сведения.НаличиеОдногоИзДокументовНаПредыдущихДетей КАК НаличиеОдногоИзДокументовНаПредыдущихДетей,
| Сведения.НаличиеСвидетельстваОСмертиПредыдущихДетей КАК НаличиеСвидетельстваОСмертиПредыдущихДетей,
| Сведения.НеоплачиваемыйПериодДатаНачала КАК НеоплачиваемыйПериодДатаНачала,
| Сведения.НеоплачиваемыйПериодДатаОкончания КАК НеоплачиваемыйПериодДатаОкончания,
| Сведения.НомерДоговораОПередачеРебенкаВПриемнуюСемью КАК НомерДоговораОПередачеРебенкаВПриемнуюСемью,
| Сведения.НомерДокументаНаПроживание КАК НомерДокументаНаПроживание,
| Сведения.НомерДокументаУдостоверяющегоЛичностьЗаявителя КАК НомерДокументаУдостоверяющегоЛичностьЗаявителя,
| Сведения.НомерДокументаУдостоверяющегоЛичностьПолучателя КАК НомерДокументаУдостоверяющегоЛичностьПолучателя,
| Сведения.НомерЗаявленияОЗамененРасчетныхГодов КАК НомерЗаявленияОЗамененРасчетныхГодов,
| Сведения.НомерИногоДокументаПодтверждающегоРождение КАК НомерИногоДокументаПодтверждающегоРождение,
| Сведения.НомерЛисткаНетрудоспособности КАК НомерЛисткаНетрудоспособности,
| Сведения.НомерЛицевогоСчета КАК НомерЛицевогоСчета,
| Сведения.НомерПриказаОЗаменеПослеродовогоОтпуска КАК НомерПриказаОЗаменеПослеродовогоОтпуска,
| Сведения.НомерПриказаОПредоставленииОтпускаПоУходуЗаРебенком КАК НомерПриказаОПредоставленииОтпускаПоУходуЗаРебенком,
| Сведения.НомерРешенияОбОпеке КАК НомерРешенияОбОпеке,
| Сведения.НомерРешенияОбУсыновлении КАК НомерРешенияОбУсыновлении,
| Сведения.НомерСвидетельстваОРождении КАК НомерСвидетельстваОРождении,
| Сведения.НомерСправкиОНеполученииПособияОтМатери КАК НомерСправкиОНеполученииПособияОтМатери,
| Сведения.НомерСправкиОНеполученииПособияОтОтца КАК НомерСправкиОНеполученииПособияОтОтца,
| Сведения.НомерСправкиОНеполученииПособияПоДругимМестамРаботы КАК НомерСправкиОНеполученииПособияПоДругимМестамРаботы,
| Сведения.НомерСправкиОПостановкеНаУчетВРанниеСрокиБеременности КАК НомерСправкиОПостановкеНаУчетВРанниеСрокиБеременности,
| Сведения.НомерСправкиОРожденииРебенка КАК НомерСправкиОРожденииРебенка,
| Сведения.Организация КАК Организация,
| Сведения.ОснованиеПодписиПредставителяСФР КАК ОснованиеПодписиПредставителяСФР,
| Сведения.Ответственный КАК Ответственный,
| Сведения.ОтношениеКОсобойЗоне КАК ОтношениеКОсобойЗоне,
| Сведения.ОтчествоЗаявителя КАК ОтчествоЗаявителя,
| Сведения.ОтчествоПолучателя КАК ОтчествоПолучателя,
| Сведения.ОтчествоРебенка КАК ОтчествоРебенка,
| Сведения.ПервыйЗамененныйГод КАК ПервыйЗамененныйГод,
| Сведения.ПервыйРасчетныйГод КАК ПервыйРасчетныйГод,
| Сведения.Перерасчет КАК Перерасчет,
| Сведения.ПериодПростоя1ДатаНачала КАК ПериодПростоя1ДатаНачала,
| Сведения.ПериодПростоя1ДатаОкончания КАК ПериодПростоя1ДатаОкончания,
| Сведения.ПериодПростоя1СреднийЗаработок КАК ПериодПростоя1СреднийЗаработок,
| Сведения.ПериодПростоя2ДатаНачала КАК ПериодПростоя2ДатаНачала,
| Сведения.ПериодПростоя2ДатаОкончания КАК ПериодПростоя2ДатаОкончания,
| Сведения.ПериодПростоя2СреднийЗаработок КАК ПериодПростоя2СреднийЗаработок,
| Сведения.ПолучательНеЯвляетсяЗаявителем КАК ПолучательНеЯвляетсяЗаявителем,
| Сведения.ПорядокРасчетаСреднегоЗаработка КАК ПорядокРасчетаСреднегоЗаработка,
| Сведения.РайонныйКоэффициент КАК РайонныйКоэффициент,
| Сведения.СерияДокументаНаПроживание КАК СерияДокументаНаПроживание,
| Сведения.СерияДокументаУдостоверяющегоЛичностьЗаявителя КАК СерияДокументаУдостоверяющегоЛичностьЗаявителя,
| Сведения.СерияДокументаУдостоверяющегоЛичностьПолучателя КАК СерияДокументаУдостоверяющегоЛичностьПолучателя,
| Сведения.СерияСвидетельстваОРождении КАК СерияСвидетельстваОРождении,
| Сведения.СНИЛСПолучателя КАК СНИЛСПолучателя,
| Сведения.Сотрудник КАК Сотрудник,
| Сведения.СпособВыплатыПособия КАК СпособВыплатыПособия,
| Сведения.СправкаОНеполученииПособия КАК СправкаОНеполученииПособия,
| Сведения.СреднийДневнойЗаработок КАК СреднийДневнойЗаработок,
| Сведения.СреднийЗаработокЗаРасчетныйПериод КАК СреднийЗаработокЗаРасчетныйПериод,
| Сведения.СтатусНалогоплательщикаПолучателя КАК СтатусНалогоплательщикаПолучателя,
| Сведения.СчитатьПоПравилам2010Года КАК СчитатьПоПравилам2010Года,
| Сведения.ТелефонПолучателя КАК ТелефонПолучателя,
| Сведения.ТелефонУполномоченногоПредставителя КАК ТелефонУполномоченногоПредставителя,
| Сведения.ТипЗанятостиРаботника КАК ТипЗанятостиРаботника,
| Сведения.УдалитьНеоплачиваемыйПериод1ДатаОкончания КАК УдалитьНеоплачиваемыйПериод1ДатаОкончания,
| Сведения.УдалитьНеоплачиваемыйПериод2ДатаОкончания КАК УдалитьНеоплачиваемыйПериод2ДатаОкончания,
| Сведения.УдалитьНеполноеРабочееВремя КАК УдалитьНеполноеРабочееВремя,
| Сведения.УдалитьНомерКартыМИР КАК УдалитьНомерКартыМИР,
| Сведения.УдалитьФИОУполномоченного КАК УдалитьФИОУполномоченного,
| Сведения.ПредставительСФР КАК ПредставительСФР,
| Сведения.ФамилияЗаявителя КАК ФамилияЗаявителя,
| Сведения.ФамилияПолучателя КАК ФамилияПолучателя,
| Сведения.ФамилияРебенка КАК ФамилияРебенка,
| Сведения.ФизическоеЛицо КАК ФизическоеЛицо,
| Сведения.ФинансированиеФедеральнымБюджетом КАК ФинансированиеФедеральнымБюджетом,
| Сведения.ФормаСправкиОРожденииРебенка КАК ФормаСправкиОРожденииРебенка,
| Сведения.ЧислоКалендарныхДнейРасчетногоПериода КАК ЧислоКалендарныхДнейРасчетногоПериода,
| Сведения.ИзмененыСведенияОЗастрахованномЛице КАК ИзмененыСведенияОЗастрахованномЛице,
| Сведения.ИнаяИнформация КАК ИнаяИнформация,
| Сведения.ГоловнаяОрганизация КАК ГоловнаяОрганизация
|ИЗ
| Документ.ЗаявлениеСотрудникаНаВыплатуПособия КАК Сведения
|ГДЕ
| Сведения.ФизическоеЛицо = &ФизическоеЛицо
| И Сведения.ИзмененыСведенияОЗастрахованномЛице
| И Сведения.ГоловнаяОрганизация = &ГоловнаяОрганизация
| И Сведения.Ссылка <> &Ссылка
| И Сведения.Проведен
| И Сведения.Дата < &НачалоДняЗаявления
|
|УПОРЯДОЧИТЬ ПО
| Сведения.Дата УБЫВ,
| Сведения.Ссылка ВОЗР";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("НачалоДняЗаявления", НачалоДняЗаявления);
Запрос.УстановитьПараметр("ФизическоеЛицо", ФизическоеЛицо);
Запрос.УстановитьПараметр("ГоловнаяОрганизация", ГоловнаяОрганизация);
Таблица = Запрос.Выполнить().Выгрузить();
Если Таблица.Количество() > 0 Тогда
Возврат Таблица[0];
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
Функция СутьОтличийВСведенияхОЗастрахованномЛице(ПредшествующиеСведенияОЗастрахованномЛице)
Менеджер = Документы.ЗаявлениеСотрудникаНаВыплатуПособия;
СтруктураСведений1 = Менеджер.СведенияОЗастрахованномЛицеДляФСС(ПредшествующиеСведенияОЗастрахованномЛице);
СтруктураСведений2 = Менеджер.СведенияОЗастрахованномЛицеДляФСС(ЭтотОбъект);
ГруппыПолей = Новый Массив;
Для Каждого КлючИЗначение Из СтруктураСведений1 Цикл
Ключ = КлючИЗначение.Ключ;
Если ОбщегоНазначенияБЗК.ЗначенияСовпадают(КлючИЗначение.Значение, СтруктураСведений2[Ключ]) Тогда
Продолжить;
КонецЕсли;
Если СтрСравнить(Ключ, "ФамилияПолучателя") = 0
Или СтрСравнить(Ключ, "ИмяПолучателя") = 0
Или СтрСравнить(Ключ, "ОтчествоПолучателя") = 0 Тогда
Группа = НСтр("ru = 'ФИО'");
Иначе
Группа = Ключ;
КонецЕсли;
ОбщегоНазначенияБЗК.ДобавитьЗначениеВМассив(ГруппыПолей, Группа);
КонецЦикла;
Возврат СтрСоединить(ГруппыПолей, ", ");
КонецФункции
#КонецОбласти
#КонецОбласти
#Иначе
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
#КонецЕсли