Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- процедура Рассчитать(Регистратор, ПериодРегистрации) экспорт
- ///////
- /////// ОСНОВ. НАЧИСЛЕНИЯ
- ///////
- НаборОсновные = РегистрыРасчета.ОсновныеНачисления.СоздатьНаборЗаписей();
- НаборОсновные.Отбор.Регистратор.установить(Регистратор);
- НаборОсновные.Прочитать();
- Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ
- | ОсновныеНачисленияДанныеГрафика.НомерСтроки,
- | ОсновныеНачисленияДанныеГрафика.ВидРасчета,
- | ОсновныеНачисленияДанныеГрафика.ЗначениеФактическийПериодДействия КАК ФактДней,
- | ОсновныеНачисленияДанныеГрафика.ЗначениеПериодДействия КАК НормаДней,
- | ОсновныеНачисленияДанныеГрафика.Размер,
- | ЕСТЬNULL(ОсновныеНачисленияБазаОсновныеНачисления.РезультатБаза, 0) + ЕСТЬNULL(ОсновныеНачисленияБазаДополнительныеНачисления.РезультатБаза, 0) КАК База
- |ИЗ
- | РегистрРасчета.ОсновныеНачисления.ДанныеГрафика(
- | Регистратор = &Регистратор
- | И ПериодРегистрации = &ПериодРегистрации) КАК ОсновныеНачисленияДанныеГрафика
- | ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ОсновныеНачисления.БазаОсновныеНачисления(
- | &Измерения,
- | &Измерения,
- | ,
- | Регистратор = &Регистратор
- | И ПериодРегистрации = &ПериодРегистрации) КАК ОсновныеНачисленияБазаОсновныеНачисления
- | ПО ОсновныеНачисленияДанныеГрафика.НомерСтроки = ОсновныеНачисленияБазаОсновныеНачисления.НомерСтроки
- | ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ОсновныеНачисления.БазаДополнительныеНачисления(
- | &Измерения,
- | &Измерения,
- | ,
- | Регистратор = &Регистратор
- | И ПериодРегистрации = &ПериодРегистрации) КАК ОсновныеНачисленияБазаДополнительныеНачисления
- | ПО ОсновныеНачисленияДанныеГрафика.НомерСтроки = ОсновныеНачисленияБазаДополнительныеНачисления.НомерСтроки";
- Измерения = Новый Массив(2);
- Измерения[0]= "Сотрудник";
- Измерения[1]= "Подразделение";
- Запрос.УстановитьПараметр("Измерения", Измерения);
- Запрос.УстановитьПараметр("ПериодРегистрации", ПериодРегистрации);
- Запрос.УстановитьПараметр("Регистратор", Регистратор);
- Результат = Запрос.Выполнить();
- ВыборкаДетальныеЗаписи = Результат.Выбрать();
- Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
- Запись = НаборОсновные[ВыборкаДетальныеЗаписи.номерстроки-1];
- ОкладЗначение = ?(ВыборкаДетальныеЗаписи.НормаДней, ВыборкаДетальныеЗаписи.Размер/ ВыборкаДетальныеЗаписи.НормаДней * ВыборкаДетальныеЗаписи.ФактДней, 0);
- Если ВыборкаДетальныеЗаписи.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Оклад Тогда
- Запись.Результат = ОкладЗначение
- Иначе
- КомандировкаЗначение = ?(ВыборкаДетальныеЗаписи.НормаДней, ВыборкаДетальныеЗаписи.База/ ВыборкаДетальныеЗаписи.НормаДней * ВыборкаДетальныеЗаписи.ФактДней, 0);
- Запись.Результат = Макс(ОкладЗначение, КомандировкаЗначение);
- КонецЕсли;
- КонецЦикла;
- НаборОсновные.Записать(, );
- ///////
- /////// ДОП. НАЧИСЛЕНИЯ
- ///////
- НаборДополнительные = РегистрыРасчета.ДополнительныеНачисления.СоздатьНаборЗаписей();
- НаборДополнительные.Отбор.Регистратор.установить(Регистратор);
- НаборДополнительные.Прочитать();
- Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ
- | ДополнительныеНачисленияБазаОсновныеНачисления.НомерСтроки,
- | ДополнительныеНачисленияБазаОсновныеНачисления.Размер,
- | ЕСТЬNULL(ДополнительныеНачисленияБазаОсновныеНачисления.РезультатБаза, 0) КАК База
- |ИЗ
- | РегистрРасчета.ДополнительныеНачисления.БазаОсновныеНачисления(
- | &Измерения,
- | &Измерения,
- | ,
- | Регистратор = &Регистратор
- | И ПериодРегистрации = &ПериодРегистрации) КАК ДополнительныеНачисленияБазаОсновныеНачисления";
- Измерения = Новый Массив(2);
- Измерения[0]= "Сотрудник";
- Измерения[1]= "Подразделение";
- Запрос.УстановитьПараметр("Измерения", Измерения);
- Запрос.УстановитьПараметр("ПериодРегистрации", ПериодРегистрации);
- Запрос.УстановитьПараметр("Регистратор", Регистратор);
- Результат = Запрос.Выполнить();
- ВыборкаДетальныеЗаписи = Результат.Выбрать();
- Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
- Запись = НаборДополнительные[ВыборкаДетальныеЗаписи.номерстроки-1];
- Запись.Результат = ВыборкаДетальныеЗаписи.Размер/100 * ВыборкаДетальныеЗаписи.База;
- КонецЦикла;
- НаборДополнительные.Записать(, );
- КонецПроцедуры
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement