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