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