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