Untitled
unknown
plain_text
2 years ago
7.5 kB
3
Indexable
Процедура ОбработкаПроведения(Отказ, РежимПроведения) // ДВИЖЕНИЯ ПО РЕГИСТРУ ОСНОВНЫЕ НАЧИСЛЕНИЯ Движения.ОсновныеНачисления.Записывать = Истина; // Запрос для формирования рабочего набора записей Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | НачислениеЗарплатыОсновныеНачисления.Сотрудник КАК Сотрудник, | НачислениеЗарплатыОсновныеНачисления.Подразделение КАК Подразделение, | НачислениеЗарплатыОсновныеНачисления.График КАК График, | НачислениеЗарплатыОсновныеНачисления.ВидРасчета КАК ВидРасчета, | НачислениеЗарплатыОсновныеНачисления.ДатаНачала КАК ПериодДействияНачало, | НачислениеЗарплатыОсновныеНачисления.ДатаОкончания КАК ПериодДействияКонец |ПОМЕСТИТЬ ВТ_ДанныеПоОкладу |ИЗ | Документ.НачислениеЗарплаты.ОсновныеНачисления КАК НачислениеЗарплатыОсновныеНачисления |ГДЕ | НачислениеЗарплатыОсновныеНачисления.Ссылка = &Ссылка | И НачислениеЗарплатыОсновныеНачисления.ВидРасчета = &ВидРасчетаОклад | |ИНДЕКСИРОВАТЬ ПО | Сотрудник, | Подразделение |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | &ПериодРегистрации КАК ПериодРегистрации, | ВТ_ДанныеПоОкладу.Сотрудник КАК Сотрудник, | ВТ_ДанныеПоОкладу.Подразделение КАК Подразделение, | ВТ_ДанныеПоОкладу.График КАК График, | ВТ_ДанныеПоОкладу.ВидРасчета КАК ВидРасчета, | ВТ_ДанныеПоОкладу.ПериодДействияНачало КАК ПериодДействияНачало, | ВТ_ДанныеПоОкладу.ПериодДействияКонец КАК ПериодДействияКонец, | ЕСТЬNULL(СведенияОСотрудникахСрезПоследних.Оклад, 0) КАК Параметр, | NULL КАК БазовыйПериодНачало, | NULL КАК БазовыйПериодКонец |ИЗ | ВТ_ДанныеПоОкладу КАК ВТ_ДанныеПоОкладу | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОСотрудниках.СрезПоследних( | &ПериодРегистрации, | (Сотрудник, Подразделение) В | (ВЫБРАТЬ | ВТ_ДанныеПоОкладу.Сотрудник, | ВТ_ДанныеПоОкладу.Подразделение | ИЗ | ВТ_ДанныеПоОкладу КАК ВТ_ДанныеПоОкладу)) КАК СведенияОСотрудникахСрезПоследних | ПО ВТ_ДанныеПоОкладу.Сотрудник = СведенияОСотрудникахСрезПоследних.Сотрудник | И ВТ_ДанныеПоОкладу.Подразделение = СведенияОСотрудникахСрезПоследних.Подразделение | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | &ПериодРегистрации, | НачислениеЗарплатыОсновныеНачисления.Сотрудник, | НачислениеЗарплатыОсновныеНачисления.Подразделение, | ЗНАЧЕНИЕ(Справочник.Графики.Шестидневка), | НачислениеЗарплатыОсновныеНачисления.ВидРасчета, | НачислениеЗарплатыОсновныеНачисления.ДатаНачала, | НачислениеЗарплатыОсновныеНачисления.ДатаОкончания, | NULL, | ДОБАВИТЬКДАТЕ(&ПериодРегистрации, МЕСЯЦ, -2), | ДОБАВИТЬКДАТЕ(&ПериодРегистрации, СЕКУНДА, -1) |ИЗ | Документ.НачислениеЗарплаты.ОсновныеНачисления КАК НачислениеЗарплатыОсновныеНачисления |ГДЕ | НачислениеЗарплатыОсновныеНачисления.Ссылка = &Ссылка | И НачислениеЗарплатыОсновныеНачисления.ВидРасчета = &ВидРасчетаКомандировка"; Запрос.УстановитьПараметр("Ссылка", Ссылка); Запрос.УстановитьПараметр("ПериодРегистрации", НачалоМесяца(Дата)); Запрос.УстановитьПараметр("ВидРасчетаОклад", ПланыВидовРасчета.ОсновныеНачисления.Оклад); Запрос.УстановитьПараметр("ВидРасчетаКомандировка", ПланыВидовРасчета.ОсновныеНачисления.Командировка); // Заполнение набора записей Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Движение = Движения.ОсновныеНачисления.Добавить(); ЗаполнитьЗначенияСвойств(Движение, Выборка); КонецЦикла; // Необходима обработка дополнительных сторно записей, так как командировка может вводится задним числом СторноЗаписи = Движения.ОсновныеНачисления.ПолучитьДополнение(); Для Каждого Запись из СторноЗаписи Цикл Движение = Движения.ОсновныеНачисления.Добавить(); ЗаполнитьЗначенияСвойств(Движение, Запись); Движение.ПериодДействияНачало = Запись.ПериодДействияНачалоСторно; Движение.ПериодДействияКонец = Запись.ПериодДействияКонецСторно; Движение.ПериодРегистрации = Запись.ПериодРегистрацииСторно; Движение.Сторно = Истина; КонецЦикла; // Запись рабочего набора записей Движения.Записать(); // Окончательный расчет данных в регистре Расчет.РассчитатьНачисления(Ссылка, Движения.ОсновныеНачисления); КонецПроцедуры
Editor is loading...