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