#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
СсылкаНового = Параметры.Ключ;
Если Не ЗначениеЗаполнено(СсылкаНового) Тогда
СсылкаНового = Документы.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов.ПолучитьСсылку();
Если Не ЗначениеЗаполнено(Объект.ИсправленныйДокумент) Тогда
Объект.ОтправлятьЧерезСЭДО = СЭДОФСС.НачатПереходНаВерсиюПроактива_2_41();
ЗначенияДляЗаполнения = Новый Структура("Организация, Ответственный",
"Объект.Организация",
"Объект.Ответственный");
ЗарплатаКадры.ЗаполнитьПервоначальныеЗначенияВФорме(ЭтаФорма, ЗначенияДляЗаполнения);
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.Дата) Тогда
Объект.Дата = ТекущаяДатаСеанса();
КонецЕсли;
Объект.ВерсияДокумента = Документы.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов.АктуальнаяВерсия();
ПриПолученииДанныхНаСервере("Объект");
КонецЕсли;
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтаФорма);
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
УправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначения.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплата");
МодульПроцессыОбработкиДокументовЗарплата.ПриСозданииНаСервере(ЭтотОбъект, Объект);
КонецЕсли;
Элемент = Элементы.ОплатыСтатус;
Для Каждого ЭлементСписка Из Элемент.СписокВыбора Цикл
ЭлементУО = ОбщегоНазначенияБЗК.ДобавитьУсловноеОформление(ЭтотОбъект, Элемент.Имя);
ОбщегоНазначенияБЗК.УстановитьПараметрУсловногоОформления(ЭлементУО, "Текст", ЭлементСписка.Представление);
ОбщегоНазначенияБЗК.ДобавитьОтборУсловногоОформления(ЭлементУО, Элемент.ПутьКДанным, "=", ЭлементСписка.Значение);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтотОбъект, ИмяСобытия, Параметр) Тогда
ОбновитьЭлементыДополнительныхРеквизитов();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
Если ИмяСобытия = "Запись_ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов"
И (Источник = Объект.Ссылка Или Не ЗначениеЗаполнено(Источник)) Тогда
ПодключитьОбработчикОжиданияПрочитатьОбновитьВторичныеДанные();
ИначеЕсли ИмяСобытия = "Запись_РегистрацииЗаявленийОВозмещенииВыплатРодителямДетейИнвалидов"
И (Источник = Объект.Ссылка Или Не ЗначениеЗаполнено(Источник)) Тогда
ПодключитьОбработчикОжиданияПрочитатьОбновитьВторичныеДанные();
ИначеЕсли ИмяСобытия = "Запись_Организации"
Или ИмяСобытия = "Запись_РодственникиФизическихЛиц" Тогда
ПодключитьОбработчикОжиданияПрочитатьОбновитьВторичныеДанные();
ИначеЕсли ИмяСобытия = СЭДОФССКлиент.ИмяСобытияПослеПолученияСообщенийОтФСС()
Или ИмяСобытия = СЭДОФССКлиент.ИмяСобытияПослеОтправкиПодтвержденияПолучения() Тогда
ПодключитьОбработчикОжиданияПрочитатьОбновитьВторичныеДанные();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
ТекстЗапросаXML = ТекущийОбъект.ХранилищеXML.Получить();
ИсправленныйДокументДоЗаписи = ТекущийОбъект.ИсправленныйДокумент;
ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
ПриПолученииДанныхНаСервере(ТекущийОбъект);
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
УправлениеСвойствами.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначения.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплата");
МодульПроцессыОбработкиДокументовЗарплата.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки)
Если Подробно <> ОплатыПодробно Тогда
Подробно = ОплатыПодробно;
ОбновитьЭлементыФормы();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
ФормаОткрыта = Не Отказ;
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
ФиксацияЗаполнитьИдентификаторыФиксТЧ(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ФиксацияСохранитьРеквизитыФормыФикс(ЭтаФорма, ТекущийОбъект);
ТекущийОбъект.ДополнительныеСвойства.Вставить("СсылкаНового", СсылкаНового);
УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначения.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплата");
МодульПроцессыОбработкиДокументовЗарплата.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи, Отказ);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
ТекстЗапросаXML = ТекущийОбъект.ХранилищеXML.Получить();
УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
ПриПолученииДанныхНаСервере(ТекущийОбъект);
ФиксацияЗаполнитьРеквизитыФормыФикс(ТекущийОбъект);
ФиксацияУстановитьОбъектЗафиксирован();
ФиксацияОбновитьФиксациюВФорме();
ПодписиДокументов.ПослеЗаписиНаСервере(ЭтотОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначения.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплата");
МодульПроцессыОбработкиДокументовЗарплата.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначенияКлиент.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплатаКлиент");
МодульПроцессыОбработкиДокументовЗарплата.ПередЗакрытием(ЭтотОбъект, Объект, Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
Оповестить("Запись_ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов", ПараметрыЗаписи, Объект.Ссылка);
Если ИсправленныйДокументДоЗаписи <> Объект.ИсправленныйДокумент Тогда
Если ЗначениеЗаполнено(ИсправленныйДокументДоЗаписи) Тогда
Оповестить("Запись_ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов", Неопределено, ИсправленныйДокументДоЗаписи);
КонецЕсли;
Если ЗначениеЗаполнено(Объект.ИсправленныйДокумент) Тогда
Оповестить("Запись_ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов", Неопределено, Объект.ИсправленныйДокумент);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
ТекущийОбъект = РеквизитФормыВЗначение("Объект");
Если Не ТекущийОбъект.ПроверитьЗаполнение() Тогда
Если Не Объект.ОтключитьПроверкиПроведения Тогда
Отказ = Истина;
КонецЕсли;
КонецЕсли;
ОбработатьСообщенияПользователю();
ПроверяемыеРеквизиты.Удалить(ПроверяемыеРеквизиты.Найти("Объект"));
УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
ЗарплатаКадрыКлиент.КлючевыеРеквизитыЗаполненияФормыОчиститьТаблицы(ЭтаФорма);
ОрганизацияПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
ДатаПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура НадписьДокументПроведенИОтправленОбработкаНавигационнойСсылки(Элемент, Адрес, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Измерения = Новый Структура("ИдентификаторСообщения", Объект.ИдентификаторСообщения);
ПараметрыЗаписи = Новый Массив(1);
ПараметрыЗаписи[0] = Измерения;
КлючРегистра = Новый(Тип("РегистрСведенийКлючЗаписи.РегистрацииЗаявленийОВозмещенииВыплатРодителямДетейИнвалидов"), ПараметрыЗаписи);
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Ключ", КлючРегистра);
ОткрытьФорму(
"РегистрСведений.РегистрацииЗаявленийОВозмещенииВыплатРодителямДетейИнвалидов.ФормаЗаписи",
ПараметрыФормы,
,
,
,
,
,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ОтправлятьЧерезСЭДОЧисломПриИзменении(Элемент)
Объект.ОтправлятьЧерезСЭДО = ОтправлятьЧерезСЭДОЧислом;
ОбновитьЭлементыФормы();
КонецПроцедуры
&НаКлиенте
Процедура АдресЭлектроннойПочтыОрганизацииПриИзменении(Элемент)
ФиксацияЗафиксироватьИзменениеРеквизита("АдресЭлектроннойПочтыОрганизации");
КонецПроцедуры
&НаКлиенте
Процедура ПримечаниеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Обработчик = Новый ОписаниеОповещения("ПримечаниеЗавершениеВыбора", ЭтотОбъект);
СЭДОФССКлиент.ПоказатьФормуРедактированияКомментария(Элемент, Обработчик, "Объект.Примечание", Элемент.Заголовок);
КонецПроцедуры
&НаКлиенте
Процедура БанкПриИзменении(Элемент)
ФиксацияЗафиксироватьИзменениеРеквизита("Банк");
ОбновитьВторичныеДанныеИЭлементыФормы();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыОплаты
&НаКлиенте
Процедура ОплатыПриАктивизацииСтроки(Элемент)
ПодключитьОбработчикОжидания("ОбновитьОтображениеПредупрежденийТЧ_Оплаты", 0.2, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ОплатыПриИзменении(Элемент)
ОбновитьВторичныеДанныеИЭлементыФормы();
КонецПроцедуры
&НаКлиенте
Процедура ОплатыСотрудникПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Оплаты.ТекущиеДанные;
Если ТекущаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
Идентификатор = ТекущаяСтрока.ПолучитьИдентификатор();
ФиксацияВторичныхДанныхВДокументахКлиентСервер.СброситьФиксациюИзмененийРеквизитовПоОснованиюЗаполнения(ЭтотОбъект, "Сотрудник", Идентификатор);
ФиксацияВторичныхДанныхВДокументахКлиентСервер.СброситьФиксациюИзмененийРеквизитовПоОснованиюЗаполнения(ЭтотОбъект, "Ребенок", Идентификатор);
КонецПроцедуры
&НаКлиенте
Процедура ОплатыСреднедневнойЗаработокПриИзменении(Элемент)
ФиксацияВторичныхДанныхВДокументахКлиентСервер.ЗафиксироватьИзменениеРеквизита(ЭтотОбъект, "СреднедневнойЗаработок", ЭтотОбъект.ТекущийЭлемент.ТекущаяСтрока);
КонецПроцедуры
&НаКлиенте
Процедура ОплатыСуммаПособияПриИзменении(Элемент)
ФиксацияВторичныхДанныхВДокументахКлиентСервер.ЗафиксироватьИзменениеРеквизита(ЭтотОбъект, "СуммаПособия", ЭтотОбъект.ТекущийЭлемент.ТекущаяСтрока);
КонецПроцедуры
&НаКлиенте
Процедура ОплатыСуммаВзносовПриИзменении(Элемент)
ФиксацияВторичныхДанныхВДокументахКлиентСервер.ЗафиксироватьИзменениеРеквизита(ЭтотОбъект, "СуммаВзносов", ЭтотОбъект.ТекущийЭлемент.ТекущаяСтрока);
КонецПроцедуры
&НаКлиенте
Процедура ОплатыКоличествоСтраницПриИзменении(Элемент)
ФиксацияВторичныхДанныхВДокументахКлиентСервер.ЗафиксироватьИзменениеРеквизита(ЭтотОбъект, "КоличествоСтраниц", ЭтотОбъект.ТекущийЭлемент.ТекущаяСтрока);
КонецПроцедуры
&НаКлиенте
Процедура ОплатыДокументОснованиеПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Оплаты.ТекущиеДанные;
Если ТекущаяСтрока = Неопределено Или Не ЗначениеЗаполнено(ТекущаяСтрока.ДокументОснование) Тогда
Возврат;
КонецЕсли;
Идентификатор = ТекущаяСтрока.ПолучитьИдентификатор();
ФиксацияВторичныхДанныхВДокументахКлиентСервер.СброситьФиксациюИзмененийРеквизитовПоОснованиюЗаполнения(ЭтотОбъект, "ДокументОснование", Идентификатор);
ФиксацияВторичныхДанныхВДокументахКлиентСервер.СброситьФиксациюИзмененийРеквизитовПоОснованиюЗаполнения(ЭтотОбъект, "Сотрудник", Идентификатор);
ФиксацияВторичныхДанныхВДокументахКлиентСервер.СброситьФиксациюИзмененийРеквизитовПоОснованиюЗаполнения(ЭтотОбъект, "Ребенок", Идентификатор);
ОбновитьВторичныеДанныеИЭлементыФормы();
КонецПроцедуры
&НаКлиенте
Процедура ОплатыРебенокПриИзменении(Элемент)
ОбновитьВторичныеДанныеИЭлементыФормы();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры
#Область ОбработчикиСобытийПроцессыОбработкиДокументов
&НаКлиенте
Процедура Подключаемый_ВыполнитьЗадачуПоОбработкеДокумента(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначенияКлиент.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплатаКлиент");
МодульПроцессыОбработкиДокументовЗарплата.ВыполнитьЗадачу(ЭтотОбъект, Команда, Объект)
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьЗадачуПоОбработкеДокументаОповещение(Контекст, ДополнительныеПараметры) Экспорт
ВыполнитьЗадачуПоОбработкеДокументаНаСервере(Контекст);
ВыполнитьОбработкуОповещения(ДополнительныеПараметры, Контекст);
КонецПроцедуры
&НаСервере
Процедура ВыполнитьЗадачуПоОбработкеДокументаНаСервере(Контекст)
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначения.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплата");
МодульПроцессыОбработкиДокументовЗарплата.ВыполнитьЗадачу(ЭтотОбъект, Контекст, Объект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КомментарийНаправившегоОткрытие(Элемент, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначенияКлиент.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплатаКлиент");
МодульПроцессыОбработкиДокументовЗарплата.КомментарийНаправившегоОткрытие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КомментарийСледующемуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначенияКлиент.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплатаКлиент");
МодульПроцессыОбработкиДокументовЗарплата.КомментарийСледующемуНачалоВыбора(ЭтотОбъект, Элемент, ДанныеВыбора, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
&НаКлиенте
Процедура ЗаполнитьОплаты(Команда)
ЗаполнитьНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьВторичныеДанные(Команда)
ОбновитьВторичныеДанныеИЭлементыФормы();
КонецПроцедуры
&НаКлиенте
Процедура ОтменитьВсеИсправления(Команда)
ОтменитьВсеИсправленияНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ОплатыПодробно(Команда)
ОплатыПодробно = Не ОплатыПодробно;
Подробно = ОплатыПодробно;
ОбновитьЭлементыФормы();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПояснениеНажатие(Элемент, СтандартнаяОбработка = Ложь)
СотрудникиКлиент.ПояснениеНажатие(Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ОтключитьПроверкиПроведения(Команда)
Объект.ОтключитьПроверкиПроведения = Не Объект.ОтключитьПроверкиПроведения;
Модифицированность = Истина;
ОбновитьЭлементыФормы();
КонецПроцедуры
&НаКлиенте
Процедура ВопросВПоддержку(Команда)
СЭДОФССКлиент.ОткрытьВопросВПоддержку(ПодготовитьВопросВПоддержку());
КонецПроцедуры
&НаКлиенте
Процедура ВключитьВозможностьРедактирования(Команда)
ВключитьВозможностьРедактированияНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ОчиститьДанныеОбОтправке(Команда)
Если Не ЗначениеЗаполнено(Объект.ДатаОтправки)
И Не ЗначениеЗаполнено(Объект.ИдентификаторСообщения) Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Очистка не требуется'"));
Возврат;
КонецЕсли;
Обработчик = Новый ОписаниеОповещения("ОчиститьДанныеОбОтправкеЗавершение", ЭтотОбъект);
Строка1 = Элементы.ОчиститьДанныеОбОтправке.РасширеннаяПодсказка.Заголовок;
Строка2 = Символы.ПС + Символы.ПС + НСтр("ru = 'Очистить сведения об отправке документа в СЭДО?'");
ТекстВопроса = Новый ФорматированнаяСтрока(Строка1, Строка2);
Кнопки = Новый СписокЗначений;
Кнопки.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Понимаю последствия, очистить отправку'"));
Кнопки.Добавить(КодВозвратаДиалога.Нет, НСтр("ru = 'Не очищать сведения об отправке'"));
ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю();
ПараметрыВопроса.Заголовок = НСтр("ru = 'Внимание'");
ПараметрыВопроса.КнопкаПоУмолчанию = КодВозвратаДиалога.Нет;
ПараметрыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь;
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Обработчик, ТекстВопроса, Кнопки, ПараметрыВопроса);
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьИсправление(Команда)
Исправление = Исправление(Объект.Ссылка);
Если Не ЗначениеЗаполнено(Исправление) Тогда
ПодключитьОбработчикОжиданияПрочитатьОбновитьВторичныеДанные();
Иначе
ПараметрыФормы = Новый Структура("Ключ", Исправление);
ОткрытьФорму("Документ.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов.Форма.ФормаДокумента", ПараметрыФормы);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область Свойства
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
#Область ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
#КонецОбласти
#Область Поддержка
&НаСервере
Функция ПодготовитьВопросВПоддержку()
ДокументОбъект = РеквизитФормыВЗначение("Объект");
Вложения = Новый Массив;
Возврат СЭДОФСС.ПодготовитьВопросВПоддержку(ДокументОбъект, Вложения);
КонецФункции
#КонецОбласти
#Область ПодписиДокументов
&НаКлиенте
Процедура Подключаемый_ПодписиДокументовЭлементПриИзменении(Элемент)
ПодписиДокументовКлиент.ПриИзмененииПодписывающегоЛица(ЭтотОбъект, Элемент.Имя);
Если Элемент.Имя = ПодписиДокументовКлиентСервер.ИмяЭлементаФормыПоРолиПодписанта("Руководитель") Тогда
ФиксацияВторичныхДанныхВДокументахКлиентСервер.ЗафиксироватьИзменениеРеквизита(ЭтотОбъект, "Руководитель");
ОбновитьВторичныеДанныеИЭлементыФормы();
ИначеЕсли Элемент.Имя = ПодписиДокументовКлиентСервер.ИмяЭлементаФормыПоРолиПодписанта("ПредставительСФР") Тогда
ФиксацияВторичныхДанныхВДокументахКлиентСервер.ЗафиксироватьИзменениеРеквизита(ЭтотОбъект, "ПредставительСФР");
ОбновитьВторичныеДанныеИЭлементыФормы();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПодписиДокументовЭлементНажатие(Элемент)
ПодписиДокументовКлиент.РасширеннаяПодсказкаНажатие(ЭтотОбъект, Элемент.Имя);
КонецПроцедуры
#КонецОбласти
#Область ФиксацияВторичныхДанныхВДокументах
&НаСервере
Функция ПараметрыФиксацииВторичныхДанных() Экспорт
ПараметрыФиксации = ОбщегоНазначенияБЗК.ЗначениеСвойства(ЭтотОбъект, "ПараметрыФиксацииВторичныхДанных");
Если ПараметрыФиксации <> Неопределено Тогда
Возврат ПараметрыФиксации;
КонецЕсли;
ПараметрыФиксации = Документы.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов.ПараметрыФиксацииВторичныхДанных();
ПараметрыФиксации.Вставить("ОписаниеФормы", ФиксацияОписаниеФормы(ПараметрыФиксации));
Возврат ПараметрыФиксации;
КонецФункции
&НаСервере
Функция ФиксацияОписаниеФормы(ПараметрыФиксации) Экспорт
ОписаниеЭлементовФормы = Новый Соответствие;
ПустоеОписаниеЭлементаФормы = ФиксацияВторичныхДанныхВДокументахФормы.ОписаниеЭлементаФормы();
ОписаниеЭлементаФормы = ФиксацияВторичныхДанныхВДокументахФормы.ОписаниеЭлементаФормы();
ОписаниеЭлементаФормы.ПрефиксПути = "Объект";
ОписаниеЭлементаФормы.ПрефиксПутиТекущиеДанные = "Элементы.Оплаты.ТекущиеДанные";
Для каждого ОписаниеФиксацииРеквизита Из ПараметрыФиксации.ОписаниеФиксацииРеквизитов Цикл
ОписаниеЭлементовФормы.Вставить(ОписаниеФиксацииРеквизита.Ключ, ОписаниеЭлементаФормы);
КонецЦикла;
ИнициализироватьПоляВводаКонтактнойИнформации();
Для Каждого КлючИЗначение Из ПоляВводаКонтактнойИнформации.БыстрыйПоискРеквизитовФормы Цикл
ОписаниеЭлементовФормы.Вставить(КлючИЗначение.Значение, ПустоеОписаниеЭлементаФормы);
КонецЦикла;
ОписаниеФормы = ФиксацияВторичныхДанныхВДокументахФормы.ОписаниеФормы();
ОписаниеФормы.ОписаниеЭлементовФормы = ОписаниеЭлементовФормы;
ОписаниеФормы.ФормаРедактируетсяПослеФиксации = Ложь;
Возврат ОписаниеФормы;
КонецФункции
&НаСервере
Функция ФиксацияБыстрыйПоискРеквизитов()
БыстрыйПоискРеквизитов = Новый Соответствие;
ПараметрыФиксации = ЭтотОбъект["ПараметрыФиксацииВторичныхДанных"];
Для Каждого КлючИЗначение Из ПараметрыФиксации.ОписаниеФиксацииРеквизитов Цикл
ИмяРеквизита = КлючИЗначение.Значение.ИмяРеквизита;
Если Элементы.Найти(ИмяРеквизита) <> Неопределено Тогда
БыстрыйПоискРеквизитов.Вставить(ИмяРеквизита, ИмяРеквизита);
ИначеЕсли Элементы.Найти(ИмяРеквизита + "Представление") <> Неопределено Тогда
БыстрыйПоискРеквизитов.Вставить(ИмяРеквизита + "Представление", ИмяРеквизита);
ИначеЕсли Элементы.Найти("Оплаты" + ИмяРеквизита) <> Неопределено Тогда
БыстрыйПоискРеквизитов.Вставить("Оплаты" + ИмяРеквизита, ИмяРеквизита);
КонецЕсли;
КонецЦикла;
Возврат БыстрыйПоискРеквизитов;
КонецФункции
&НаСервере
Процедура ФиксацияОбновитьФиксациюВФорме()
ФиксацияВторичныхДанныхВДокументахКлиентСервер.ОбновитьФорму(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ФиксацияЗаполнитьРеквизитыФормыФикс(ТекущийОбъект)
ФиксацияВторичныхДанныхВДокументахФормы.ЗаполнитьРеквизитыФормыФикс(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ФиксацияЗаполнитьИдентификаторыФиксТЧ(Форма)
ФиксацияВторичныхДанныхВДокументахКлиентСервер.ЗаполнитьИдентификаторыСтрок(Форма);
КонецПроцедуры
&НаСервере
Процедура ФиксацияСохранитьРеквизитыФормыФикс(Форма, ТекущийОбъект)
ФиксацияВторичныхДанныхВДокументахКлиентСервер.СохранитьРеквизитыФормыФикс(Форма, ТекущийОбъект);
КонецПроцедуры
&НаСервере
Процедура ФиксацияУстановитьОбъектЗафиксирован()
ФиксацияВторичныхДанныхВДокументахФормы.УстановитьОбъектЗафиксирован(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ОбновитьВторичныеДанныеНаСервере(Заполнить)
Если Не ФиксацияВторичныхДанныхВДокументахКлиентСервер.ОбъектФормыЗафиксирован(ЭтотОбъект) Тогда
Если ЗначениеЗаполнено(Объект.Год) И Не Элементы.Год.Видимость Тогда
Объект.Год = 0;
Модифицированность = Истина;
КонецЕсли;
ФиксацияЗаполнитьИдентификаторыФиксТЧ(ЭтотОбъект);
ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДокументОбъект.ДополнительныеСвойства.Вставить("СсылкаНового", СсылкаНового);
ФиксацияСохранитьРеквизитыФормыФикс(ЭтотОбъект, ДокументОбъект);
ЕстьИзменения = Ложь;
Если Заполнить Тогда
ДокументОбъект.Заполнить(Неопределено);
ЕстьИзменения = Истина;
КонецЕсли;
Если ДокументОбъект.ОбновитьВторичныеДанные() Тогда
ЕстьИзменения = Истина;
КонецЕсли;
Если ЕстьИзменения Тогда
Если Не ДокументОбъект.ЭтоНовый() Тогда
ФиксацияВторичныхДанныхВДокументахФормы.УстановитьМодифицированность(ЭтотОбъект, Истина);
КонецЕсли;
ЗначениеВРеквизитФормы(ДокументОбъект, "Объект");
ФиксацияЗаполнитьРеквизитыФормыФикс(Объект);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОтменитьВсеИсправленияНаСервере()
ФиксацияВторичныхДанныхВДокументахКлиентСервер.ОчиститьФиксациюИзменений(ЭтаФорма, Объект);
ФиксацияЗаполнитьРеквизитыФормыФикс(Объект);
ОбновитьВторичныеДанныеИЭлементыФормы();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ЗафиксироватьИзменениеРеквизитаВФорме(Элемент, СтандартнаяОбработка = Ложь) Экспорт
ИдентификаторСтроки = Элементы.Оплаты.ТекущаяСтрока;
ОписаниеЭлементов = ФиксацияБыстрыйПоискРеквизитов();
ФиксацияВторичныхДанныхВДокументахКлиентСервер.Подключаемый_ЗафиксироватьИзменениеРеквизитаВФорме(ЭтотОбъект, Элемент, ОписаниеЭлементов, ИдентификаторСтроки);
ОбновитьЭлементыФормы();
КонецПроцедуры
&НаСервере
Функция ОбъектЗафиксирован() Экспорт
Возврат Документы.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов.ОбъектЗафиксирован(Объект);
КонецФункции
&НаКлиенте
Процедура ОбновитьОтображениеПредупрежденийТЧ_Оплаты()
ФиксацияВторичныхДанныхВДокументахКлиентСервер.ОбновитьОтображениеПредупрежденийТЧ(ЭтотОбъект, "Оплаты", Элементы.Оплаты.ТекущаяСтрока);
КонецПроцедуры
&НаКлиенте
Процедура ФиксацияЗафиксироватьИзменениеРеквизита(ИмяРеквизита, ТекущаяСтрока = 0)
ФиксацияВторичныхДанныхВДокументахКлиентСервер.ЗафиксироватьИзменениеРеквизита(ЭтаФорма, ИмяРеквизита, ТекущаяСтрока)
КонецПроцедуры
#КонецОбласти
#Область КлючевыеРеквизитыЗаполненияФормы
&НаСервере
Функция КлючевыеРеквизитыЗаполненияФормыТаблицыОчищаемыеПриИзменении() Экспорт
Массив = Новый Массив;
Массив.Добавить("Объект.Оплаты");
Возврат Массив
КонецФункции
&НаСервере
Функция КлючевыеРеквизитыЗаполненияФормыОписаниеКлючевыхРеквизитов() Экспорт
Массив = Новый Массив;
Массив.Добавить(Новый Структура("ЭлементФормы, Представление", "Организация", НСтр("ru = 'организации'")));
Возврат Массив
КонецФункции
#КонецОбласти
#Область КонтактнаяИнформация
&НаСервере
Процедура ОбновитьЭлементыКонтактнойИнформации()
ИнициализироватьПоляВводаКонтактнойИнформации();
Для Каждого КлючИЗначение Из ПоляВводаКонтактнойИнформации Цикл
ИмяРеквизитаФормы = КлючИЗначение.Ключ;
Если ИмяРеквизитаФормы = "БыстрыйПоискРеквизитовФормы" Тогда
Продолжить;
КонецЕсли;
Реквизит = КлючИЗначение.Значение;
Если Реквизит.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда
КонтактнаяИнформацияБЗК.ОбновитьПолеВводаАдреса(ЭтотОбъект, ИмяРеквизитаФормы, Объект[Реквизит.Имя]);
ИначеЕсли Реквизит.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
КонтактнаяИнформацияБЗК.ОбновитьПолеВводаТелефона(ЭтотОбъект, ИмяРеквизитаФормы, Объект[Реквизит.Имя]);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ИнициализироватьПоляВводаКонтактнойИнформации()
Если ПоляВводаКонтактнойИнформации <> Неопределено Тогда
Возврат;
КонецЕсли;
ПоляВводаКонтактнойИнформации = Новый Структура;
БыстрыйПоискРеквизитовФормы = Новый Соответствие;
Реквизит = ОписаниеРеквизитаКонтактнойИнформации();
Реквизит.Имя = "ТелефонСоставителя";
Реквизит.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
Реквизит.Вид = "Справочник.ВидыКонтактнойИнформации.ТелефонОрганизации";
ПоляВводаКонтактнойИнформации.Вставить(Реквизит.Имя + "Представление", Реквизит);
БыстрыйПоискРеквизитовФормы.Вставить(Реквизит.Имя, Реквизит.Имя + "Представление");
Реквизит = ОписаниеРеквизитаКонтактнойИнформации();
Реквизит.Имя = "АдресОрганизации";
Реквизит.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
Реквизит.Вид = "Справочник.ВидыКонтактнойИнформации.ЮрАдресОрганизации";
ПоляВводаКонтактнойИнформации.Вставить(Реквизит.Имя + "Представление", Реквизит);
БыстрыйПоискРеквизитовФормы.Вставить(Реквизит.Имя, Реквизит.Имя + "Представление");
ПоляВводаКонтактнойИнформации.Вставить("БыстрыйПоискРеквизитовФормы", БыстрыйПоискРеквизитовФормы);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ОписаниеРеквизитаКонтактнойИнформации()
Возврат Новый Структура("Имя, Тип, Вид");
КонецФункции
&НаСервере
Процедура АдаптироватьСообщениеПользователюКПолямВводаКонтактнойИнформации(Сообщение)
ИмяРеквизита = ПоляВводаКонтактнойИнформации.БыстрыйПоискРеквизитовФормы[Сообщение.Поле];
Если ЗначениеЗаполнено(ИмяРеквизита) Тогда
Сообщение.Поле = ИмяРеквизита;
Сообщение.ПутьКДанным = "";
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеВводаКонтактнойИнформацииПриИзменении(Элемент)
Текст = Элемент.ТекстРедактирования;
ПолеВводаКонтактнойИнформацииПриИзмененииПриИзмененииНаСервере(Текст, Элемент.Имя);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеВводаКонтактнойИнформацииНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Реквизит = ПоляВводаКонтактнойИнформации[Элемент.Имя];
Оповещение = Новый ОписаниеОповещения("ПолеВводаКонтактнойИнформацииЗавершениеВыбора", ЭтотОбъект, Реквизит);
ПараметрыОткрытия = УправлениеКонтактнойИнформациейКлиент.ПараметрыФормыКонтактнойИнформации(
ПредопределенноеЗначение(Реквизит.Вид),
Объект[Реквизит.Имя]);
УправлениеКонтактнойИнформациейКлиент.ОткрытьФормуКонтактнойИнформации(ПараметрыОткрытия, ЭтотОбъект, Оповещение);
КонецПроцедуры
&НаСервере
Процедура ПолеВводаКонтактнойИнформацииПриИзмененииПриИзмененииНаСервере(Текст, ИмяЭлемента)
Реквизит = ПоляВводаКонтактнойИнформации[ИмяЭлемента];
Если ПустаяСтрока(Текст) Тогда
Значение = "";
Иначе
Значение = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияПоПредставлению(
Текст,
ПредопределенноеЗначение(Реквизит.Вид));
КонецЕсли;
Объект[Реквизит.Имя] = Значение;
ФиксацияВторичныхДанныхВДокументахКлиентСервер.ЗафиксироватьИзменениеРеквизита(ЭтотОбъект, Реквизит.Имя);
ОбновитьВторичныеДанныеИЭлементыФормы();
КонецПроцедуры
&НаКлиенте
Процедура ПолеВводаКонтактнойИнформацииЗавершениеВыбора(РезультатВыбора, Реквизит) Экспорт
Если ТипЗнч(РезультатВыбора) = Тип("Структура")Тогда
Объект[Реквизит.Имя] = РезультатВыбора.Значение;
ФиксацияВторичныхДанныхВДокументахКлиентСервер.ЗафиксироватьИзменениеРеквизита(ЭтотОбъект, Реквизит.Имя);
ОбновитьВторичныеДанныеИЭлементыФормы();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
&НаСервере
Процедура ОрганизацияПриИзмененииНаСервере()
ФиксацияВторичныхДанныхВДокументахКлиентСервер.СброситьФиксациюИзмененийРеквизитовПоОснованиюЗаполнения(ЭтаФорма, "Организация");
ОбновитьВторичныеДанныеИЭлементыФормы();
КонецПроцедуры
&НаСервере
Процедура ДатаПриИзмененииНаСервере()
ОбновитьВторичныеДанныеИЭлементыФормы();
КонецПроцедуры
&НаСервере
Процедура ПриПолученииДанныхНаСервере(ТекущийОбъект)
НаПроактивеВерсия_2_41 = СЭДОФСС.НачатПереходНаВерсиюПроактива_2_41();
Подробно = ОплатыПодробно;
ПодписиДокументов.ПриСозданииНаСервере(ЭтотОбъект);
ФиксацияВторичныхДанныхВДокументахФормы.ИнициализироватьМеханизмФиксацииРеквизитов(ЭтотОбъект, ТекущийОбъект);
ФиксацияВторичныхДанныхВДокументахФормы.ПодключитьОбработчикиФиксацииИзмененийРеквизитов(ЭтотОбъект, ФиксацияБыстрыйПоискРеквизитов());
ТолькоПросмотр = Объект.ОтправлятьЧерезСЭДО И ОбъектЗафиксирован();
ОбновитьВторичныеДанныеИЭлементыФормы();
КонецПроцедуры
#Область Форма
&НаКлиенте
Процедура ПодключитьОбработчикОжиданияПрочитатьОбновитьВторичныеДанные()
ОтключитьОбработчикОжидания("ПрочитатьОбновитьВторичныеДанные");
ПодключитьОбработчикОжидания("ПрочитатьОбновитьВторичныеДанные", 0.1, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ПрочитатьОбновитьВторичныеДанные()
ПрочитатьОбновитьВторичныеДанныеНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПрочитатьОбновитьВторичныеДанныеНаСервере()
Если Модифицированность Или Объект.Ссылка.Пустая() Тогда
ОбновитьВторичныеДанныеИЭлементыФормы();
Иначе
Прочитать();
Надпись = Элементы.Найти("ПредупреждениеОбновленияВторичныхДанных");
Если Надпись <> Неопределено И Надпись.Видимость Тогда
Модифицированность = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбновитьВторичныеДанныеИЭлементыФормы(Знач Заполнить = Ложь)
ОбновитьВторичныеДанныеНаСервере(Заполнить);
ОбновитьЭлементыФормы();
КонецПроцедуры
#КонецОбласти
#Область Регистрация
&НаСервере
Процедура ОбновитьПанельСостоянияДокумента()
ПоложениеКнопкиЗакрыть = ПоложениеКнопкиВКоманднойПанели.ВДополнительномПодменю;
ПоложениеКнопкиСкопировать = ПоложениеКнопкиВКоманднойПанели.ВДополнительномПодменю;
ВидимостьКнопкиПроверить = Ложь;
КнопкаПоУмолчанию = Неопределено;
ЕстьПравоИзменения = (Элементы.Найти("ФормаПровести") <> Неопределено);
ЕстьПравоОтправки = СЭДОФСС.ЕстьПравоОтправки();
ЕстьПравоЭДОФСС = СЭДОФСС.ЕстьПравоОбмена();
Если Объект.ПометкаУдаления Тогда
ТекущаяСтраница = Элементы.СтраницаДокументПомеченНаУдаление;
Если ЕстьПравоИзменения Тогда
КнопкаПоУмолчанию = Элементы.ФормаЗаписать;
КонецЕсли;
ИначеЕсли Не Объект.ОтправлятьЧерезСЭДО Тогда
ТекущаяСтраница = Элементы.СтраницаДокументНаБумажномНосителе;
Если ЕстьПравоИзменения Тогда
КнопкаПоУмолчанию = Элементы.ФормаПровестиИЗакрыть;
КонецЕсли;
ИначеЕсли Не Объект.Проведен Тогда
ТекущаяСтраница = Элементы.СтраницаДокументНеПроведен;
Если ЕстьПравоИзменения Тогда
КнопкаПоУмолчанию = Элементы.ФормаПровести;
КонецЕсли;
ИначеЕсли Не ЗначениеЗаполнено(Объект.ДатаОтправки) Или Не ЗначениеЗаполнено(Объект.ИдентификаторСообщения) Тогда
ТекущаяСтраница = Элементы.СтраницаДокументПроведенИНеОтправлен;
Если Объект.ОтправлятьЧерезСЭДО И ЕстьПравоОтправки И ЕстьПравоЭДОФСС Тогда
КнопкаПоУмолчанию = Элементы.ОтправитьВФонд;
КонецЕсли;
Иначе
СостояниеОтправки = СостояниеОтправки();
Если СостояниеОтправки.ЕстьОшибки Тогда
ТекущаяСтраница = Элементы.СтраницаДокументПроведенИЕстьОшибки;
Элементы.НадписьДокументПроведенИЕстьОшибки.Заголовок = СостояниеОтправки.ЗаголовокНадписи;
ПоложениеКнопкиСкопировать = ПоложениеКнопкиВКоманднойПанели.ВКоманднойПанелиИВДополнительномПодменю;
Если ЕстьПравоИзменения Тогда
КнопкаПоУмолчанию = Элементы.КнопкаСкопировать;
КонецЕсли;
ИначеЕсли СостояниеОтправки.ЕстьПредупреждения Тогда
ТекущаяСтраница = Элементы.СтраницаДокументПроведенИЕстьПредупреждения;
Элементы.НадписьДокументПроведенИЕстьПредупреждения.Заголовок = СостояниеОтправки.ЗаголовокНадписи;
ПоложениеКнопкиСкопировать = ПоложениеКнопкиВКоманднойПанели.ВКоманднойПанелиИВДополнительномПодменю;
Если ЕстьПравоИзменения Тогда
КнопкаПоУмолчанию = Элементы.КнопкаСкопировать;
КонецЕсли;
Иначе
ТекущаяСтраница = Элементы.СтраницаДокументПроведенИОтправлен;
Элементы.НадписьДокументПроведенИОтправлен.Заголовок = СостояниеОтправки.ЗаголовокНадписи;
ПоложениеКнопкиЗакрыть = ПоложениеКнопкиВКоманднойПанели.ВКоманднойПанелиИВДополнительномПодменю;
ВидимостьКнопкиПроверить = Истина;
КнопкаПоУмолчанию = Элементы.ФормаЗакрыть;
КонецЕсли;
КонецЕсли;
Если КнопкаПоУмолчанию <> Неопределено Тогда
КнопкаПоУмолчанию.КнопкаПоУмолчанию = Истина;
КонецЕсли;
Элементы.СтраницыСостоянияДокумента.ТекущаяСтраница = ТекущаяСтраница;
Если ЕстьПравоИзменения Тогда
Элементы.КнопкаСкопировать.ПоложениеВКоманднойПанели = ПоложениеКнопкиСкопировать;
КонецЕсли;
Элементы.ФормаЗакрыть.ПоложениеВКоманднойПанели = ПоложениеКнопкиЗакрыть;
Если ЕстьПравоОтправки Тогда
Элементы.ОтправитьВФонд.Видимость = ЕстьПравоЭДОФСС И Объект.ОтправлятьЧерезСЭДО И Не ТолькоПросмотр;
Элементы.ПроверитьНаличиеОтвета.Видимость = ЕстьПравоЭДОФСС И ВидимостьКнопкиПроверить;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция СостояниеОтправки()
ВариантыСостояний = Перечисления.СостоянияДокументаСЭДОФСС;
НаборЗаписей = РегистрыСведений.РегистрацииЗаявленийОВозмещенииВыплатРодителямДетейИнвалидов.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.ИдентификаторСообщения.Установить(Объект.ИдентификаторСообщения);
НаборЗаписей.Прочитать();
Если НаборЗаписей.Количество() > 0 Тогда
Запись = НаборЗаписей[0];
Состояние = Запись.Состояние;
РегистрацияСтатус = Запись.РегистрацияСтатус;
ВыплатаСтатус = Запись.ВыплатаСтатус;
Иначе
Состояние = ВариантыСостояний.ПустаяСсылка();
РегистрацияСтатус = "";
ВыплатаСтатус = 0;
КонецЕсли;
ЕстьОшибки = Ложь;
ЕстьПредупреждения = Ложь;
МожноОтправить = Ложь;
Если Состояние = ВариантыСостояний.ПодготовленКОтправке Или Не ЗначениеЗаполнено(Состояние) Тогда
МожноОтправить = Истина;
Представление = Элементы.НадписьДокументПроведенИНеОтправлен.Заголовок;
ИначеЕсли Состояние = ВариантыСостояний.ОшибкаПриОтправке Тогда
ЕстьПредупреждения = Истина;
МожноОтправить = Истина;
Представление = НСтр("ru = 'При отправке <a href=""1"">возникла ошибка</a>'");
ИначеЕсли Состояние = ВариантыСостояний.ОтправленОператору Тогда
Представление = НСтр("ru = '<a href=""1"">Отправлен оператору</a>'");
ИначеЕсли Состояние = ВариантыСостояний.Отправлен Тогда
Представление = НСтр("ru = '<a href=""1"">Отправлен в Фонд</a>'");
ИначеЕсли Состояние = ВариантыСостояний.ОшибкаЛогическогоКонтроля Тогда
ЕстьОшибки = Истина;
Представление = НСтр("ru = 'Не принят, см. <a href=""1"">ошибки логического контроля</a>'");
ИначеЕсли Состояние = ВариантыСостояний.Принят
Или Состояние = ВариантыСостояний.ПринятСЗамечаниями Тогда
Если ВыплатаСтатус = 2 Тогда
Представление = НСтр("ru = '<a href=""1"">Документ СФР направлен на оплату</a>'");
ИначеЕсли ВыплатаСтатус = 3 Тогда
Представление = НСтр("ru = '<a href=""1"">Пособие успешно выплачено</a>'");
ИначеЕсли ВыплатаСтатус = 4 Тогда
Представление = НСтр("ru = '<a href=""1"">Оплата не прошла, отказ от банка</a>'");
ИначеЕсли ВыплатаСтатус = 5 Тогда
Представление = НСтр("ru = '<a href=""1"">Получено извещение СФР</a>'");
Иначе
Представление = СтрШаблон(НСтр("ru = '<a href=""1"">%1</a>'"), Строка(Состояние));
ЕстьПредупреждения = (Состояние = ВариантыСостояний.ПринятСЗамечаниями);
КонецЕсли;
ИначеЕсли Состояние = ВариантыСостояний.НеПринят Тогда
Если РегистрацияСтатус = "2" Тогда
ЕстьПредупреждения = Истина;
МожноОтправить = Истина;
Представление = НСтр("ru = 'Произошла <a href=""1"">техническая ошибка</a>. Повторите отправку позже.'");
Иначе
ЕстьОшибки = Истина;
Представление = НСтр("ru = 'Не принят, см. <a href=""1"">протокол</a>'");
КонецЕсли;
Иначе
СостояниеСтрокой = Строка(Состояние);
СостояниеСтрокой = НРег(Лев(СостояниеСтрокой, 1)) + Сред(СостояниеСтрокой, 2);
Представление = СтрШаблон(НСтр("ru = 'Проведен и <a href=""1"">%1</a>'"), СостояниеСтрокой);
КонецЕсли;
Результат = Новый Структура("Состояние, ЗаголовокНадписи, ЕстьОшибки, ЕстьПредупреждения, МожноОтправить");
Результат.Состояние = Состояние;
Результат.ЗаголовокНадписи = СтроковыеФункции.ФорматированнаяСтрока(Представление);
Результат.ЕстьОшибки = ЕстьОшибки;
Результат.ЕстьПредупреждения = ЕстьПредупреждения;
Результат.МожноОтправить = МожноОтправить;
Возврат Результат;
КонецФункции
#КонецОбласти
&НаСервере
Процедура ОбновитьЭлементыФормы()
Если Не ЗначениеЗаполнено(ДатаФорм2022) Тогда
Менеджер = Документы.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов;
ВидимостьПоляРебенок = СЭДОФСС.ВидимостьПоляРодственник();
ВидимостьПоляДокументОснование = Менеджер.ВидимостьОснования();
ДатаФорм2022 = Менеджер.ДатаФорм2022();
ДатаФорм2024 = Менеджер.ДатаФорм2024();
КонецЕсли;
Элементы.КодПодчиненностиФСС.Видимость = (Объект.ТипСообщения <> 12010);
ОбновитьЭлементыКонтактнойИнформации();
ПодписиДокументовКлиентСервер.УстановитьПредставлениеПодписей(ЭтотОбъект);
ЗарплатаКадрыКлиентСервер.ЗаполнитьМесяцПоДатеВТабличнойЧасти(Объект.Оплаты, "Месяц", "МесяцСтрокой");
ЗарплатаКадрыКлиентСервер.КлючевыеРеквизитыЗаполненияФормыУстановитьОтображениеПредупреждения(ЭтотОбъект);
ФиксацияОбновитьФиксациюВФорме();
ДействуетФорма2022 = Объект.Дата >= ДатаФорм2022;
ДействуетФорма2024 = Объект.Дата >= ДатаФорм2024;
Элементы.ОплатыДокументОснование.Видимость = ВидимостьПоляДокументОснование;
Элементы.ОплатыЗаполнить.Видимость = ВидимостьПоляДокументОснование И Не ДействуетФорма2024;
Элементы.ОплатыЗаполнитьПоГоду.Видимость = ВидимостьПоляДокументОснование И ДействуетФорма2024;
Элементы.ОплатыПриказНомер.Видимость = ДействуетФорма2024 И (Не ВидимостьПоляДокументОснование Или Подробно);
Элементы.ОплатыПриказДата.Видимость = ДействуетФорма2024 И (Не ВидимостьПоляДокументОснование Или Подробно);
Элементы.ОплатыРебенок.Видимость = ДействуетФорма2022 И ВидимостьПоляРебенок;
Элементы.ОплатыРебенокФИО.Видимость = ДействуетФорма2022 И (Не ВидимостьПоляРебенок Или Подробно);
Элементы.ОплатыРебенокДатаРождения.Видимость = ДействуетФорма2022 И (Не ВидимостьПоляРебенок Или Подробно);
Элементы.ОплатыРебенокСНИЛС.Видимость = ДействуетФорма2022 И (Не ВидимостьПоляРебенок Или Подробно);
Элементы.ОплатыСтатус.Видимость = Не ДействуетФорма2022 Или Не ВидимостьПоляРебенок Или Подробно;
Элементы.ОплатыСотрудникФИО.Видимость = Подробно;
Элементы.ОплатыСотрудникСНИЛС.Видимость = Подробно;
Элементы.ОплатыПодробно.Пометка = ОплатыПодробно;
Элементы.Год.Видимость = Элементы.ОплатыЗаполнитьПоГоду.Видимость;
Элементы.ОплатыГруппаДниЗаМесяц.ОтображатьВШапке = ДействуетФорма2024;
Элементы.ОплатыКоличествоЧасовЗаМесяц.Видимость = ДействуетФорма2024;
Элементы.ОплатыГруппаНакоплено.ОтображатьВШапке = ДействуетФорма2024;
Элементы.ОплатыНакопленоДнейЗаМесяц.Видимость = ДействуетФорма2024;
Элементы.ОплатыНакопленоЧасовЗаМесяц.Видимость = ДействуетФорма2024;
Элементы.ОплатыГруппаДниЗаГод.ОтображатьВШапке = ДействуетФорма2024;
Элементы.ОплатыКоличествоДнейЗаГод.Видимость = ДействуетФорма2024;
Элементы.ОплатыКоличествоЧасовЗаГод.Видимость = ДействуетФорма2024;
Элементы.ОплатыСреднедневнойЗаработокЗаГод.Видимость = ДействуетФорма2024;
Элементы.ОплатыГруппаСправка.ОтображатьВШапке = ДействуетФорма2024;
Элементы.ОплатыСправкаНомер.Видимость = ДействуетФорма2024;
Элементы.ОплатыСправкаДатаВыдачи.Видимость = ДействуетФорма2024;
Элементы.ОплатыСправкаДатаОкончания.Видимость = ДействуетФорма2024;
Элементы.ОплатыСправкаДатаУстановления.Видимость = ДействуетФорма2024;
ДоступнаВерсия_2_41 = НаПроактивеВерсия_2_41 И ДействуетФорма2024;
Элементы.ОтправлятьЧерезСЭДОЧислом.Видимость = ДоступнаВерсия_2_41;
Элементы.Перерасчет.Видимость = Объект.ОтправлятьЧерезСЭДО;
Элементы.ВидЗанятостиГруппа.Видимость = Объект.ОтправлятьЧерезСЭДО;
Элементы.ИдентификаторПервичногоРеестра.Видимость = Объект.ОтправлятьЧерезСЭДО И Объект.Перерасчет;
Элементы.Примечание.Видимость = Объект.ОтправлятьЧерезСЭДО;
Элементы.ОплатыСправкаСерия.Видимость = Объект.ОтправлятьЧерезСЭДО;
Элементы.ОплатыВидЗанятости.Видимость = Объект.ОтправлятьЧерезСЭДО;
Элементы.ИдентификаторРеестра.Видимость = Объект.ОтправлятьЧерезСЭДО;
Элементы.ГруппаИсправление.Видимость = Объект.Исправлен;
ОтправлятьЧерезСЭДОЧислом = Объект.ОтправлятьЧерезСЭДО;
Элементы.ГруппаРегистрационныйНомерСФР.Видимость = ЗначениеЗаполнено(Объект.РегистрационныйНомерСФР)
Или ЗарплатаКадры.ИспользованиеРегистрационногоНомераСФР(Объект.ДатаОтправки);
Элементы.ДополнительныеСведенияДляПеречисления.Видимость = Не ДействуетФорма2022
Или ЗначениеЗаполнено(Объект.ДополнительныеСведенияДляПеречисления);
Элементы.ФормаОтключитьПроверкиПроведения.Пометка = Объект.ОтключитьПроверкиПроведения;
Элементы.ФормаОбновитьВторичныеДанные.Доступность = Не ТолькоПросмотр;
ОбновитьПанельСостоянияДокумента();
ОбработатьОтображениеПолейСтраховогоНомераПФР();
КонецПроцедуры
&НаСервере
Процедура ОбработатьСообщенияПользователю()
Сообщения = ПолучитьСообщенияПользователю(Объект.ОтключитьПроверкиПроведения);
Для Каждого Сообщение Из Сообщения Цикл
Если Не ЗначениеЗаполнено(Сообщение.КлючДанных)
И Не ЗначениеЗаполнено(Сообщение.ПутьКДанным)
И Не СтрНачинаетсяС(Сообщение.Поле, "Объект.") Тогда
Сообщение.ПутьКДанным = "Объект";
КонецЕсли;
Если ЗначениеЗаполнено(Сообщение.Поле) Тогда
АдаптироватьСообщениеПользователюКПолямВводаКонтактнойИнформации(Сообщение);
КонецЕсли;
КонецЦикла;
Если Не Подробно И Сообщения.Количество() > 0 Тогда
Подробно = Истина;
ОбновитьЭлементыФормы();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНаСервере()
ОбновитьВторичныеДанныеИЭлементыФормы(Истина);
КонецПроцедуры
&НаКлиенте
Процедура ОплатыМесяцПриИзменении(Элемент)
ЗарплатаКадрыКлиент.ВводМесяцаПриИзменении(
Элементы.Оплаты.ТекущиеДанные,
"Месяц",
"МесяцСтрокой",
Модифицированность);
КонецПроцедуры
&НаКлиенте
Процедура ОплатыМесяцНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаНачалоВыбора(
ЭтотОбъект,
Элементы.Оплаты.ТекущиеДанные,
"Месяц",
"МесяцСтрокой");
КонецПроцедуры
&НаКлиенте
Процедура ОплатыМесяцРегулирование(Элемент, Направление, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаРегулирование(
Элементы.Оплаты.ТекущиеДанные,
"Месяц",
"МесяцСтрокой",
Направление,
Модифицированность);
КонецПроцедуры
&НаКлиенте
Процедура ОплатыМесяцАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаАвтоПодборТекста(Текст, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ОплатыМесяцОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаОкончаниеВводаТекста(Текст, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
#Область Примечание
&НаКлиенте
Процедура ПримечаниеЗавершениеВыбора(Текст, ПустойПараметр) Экспорт
Подключаемый_ЗафиксироватьИзменениеРеквизитаВФорме(Элементы.Примечание);
КонецПроцедуры
#КонецОбласти
#Область Команды
&НаСервере
Процедура ВключитьВозможностьРедактированияНаСервере()
ВозможностьРедактирования = Не Элементы.ВключитьВозможностьРедактирования.Пометка;
Элементы.ВключитьВозможностьРедактирования.Пометка = ВозможностьРедактирования;
Элементы.СлужебныеПоляГруппа.ТолькоПросмотр = Не ВозможностьРедактирования;
Элементы.ОчиститьДанныеОбОтправке.Доступность = ВозможностьРедактирования;
КонецПроцедуры
&НаКлиенте
Процедура ОчиститьДанныеОбОтправкеЗавершение(Ответ, ПараметрыВыполнения) Экспорт
Если Ответ <> Неопределено И Ответ.Значение = КодВозвратаДиалога.Да Тогда
ОчиститьДанныеОбОтправкеНаСервере();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОчиститьДанныеОбОтправкеНаСервере()
Если Не ЗначениеЗаполнено(Объект.ДатаОтправки)
И Не ЗначениеЗаполнено(Объект.ИдентификаторСообщения) Тогда
Возврат;
КонецЕсли;
МенеджерРегистра = РегистрыСведений.РегистрацииЗаявленийОВозмещенииВыплатРодителямДетейИнвалидов;
Набор = МенеджерРегистра.НачатьЗаписьНабора(Объект.ИдентификаторСообщения);
Если Набор = Неопределено Или Набор.Количество() = 0 Тогда
МенеджерРегистра.ОтменитьЗаписьНабора(Набор);
Иначе
Набор.Очистить();
МенеджерРегистра.ЗавершитьЗаписьНабора(Набор);
КонецЕсли;
Объект.ДатаОтправки = Неопределено;
Объект.ИдентификаторСообщения = Неопределено;
Записать();
КонецПроцедуры
&НаСервереБезКонтекста
Функция Исправление(Ссылка)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| Шапка.Ссылка КАК Ссылка
|ИЗ
| Документ.ЗаявлениеВФССОВозмещенииВыплатРодителямДетейИнвалидов КАК Шапка
|ГДЕ
| Шапка.ИсправленныйДокумент = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.Ссылка;
КонецЕсли;
Возврат Неопределено;
КонецФункции
#КонецОбласти
&НаСервере
Процедура ОбработатьОтображениеПолейСтраховогоНомераПФР()
Для Каждого СтрокаОплат Из Объект.Оплаты Цикл
Если КадровыйУчетКлиентСервер.СНИЛСЗаполнен(СтрокаОплат.СотрудникСНИЛС) Тогда
РегламентированныеДанныеКлиентСервер.СтраховойНомерПФРСоответствуетТребованиям(СтрокаОплат.СотрудникСНИЛС, СтрокаОплат.СотрудникСНИЛСТекстПроверки);
Иначе
СтрокаОплат.СотрудникСНИЛСТекстПроверки = "";
КонецЕсли;
Если КадровыйУчетКлиентСервер.СНИЛСЗаполнен(СтрокаОплат.РебенокСНИЛС) Тогда
РегламентированныеДанныеКлиентСервер.СтраховойНомерПФРСоответствуетТребованиям(СтрокаОплат.РебенокСНИЛС, СтрокаОплат.РебенокСНИЛСТекстПроверки);
Иначе
СтрокаОплат.РебенокСНИЛСТекстПроверки = "";
КонецЕсли;
КонецЦикла;
КонецПроцедуры
#КонецОбласти