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