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