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