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