можно ли решать расч. задачи таким запросом?
Если нет то плиз расскажите почему.
Процедура Расчет(Ссылка, Перерасчет = Ложь) Экспорт
Запрос = Новый Запрос(
"ВЫБРАТЬ
| ПереодическиеПоказателиСрезПоследних.ВидРасчета,
| ПереодическиеПоказателиСрезПоследних.Значение
|ИЗ
| РегистрСведений.ПереодическиеПоказатели.СрезПоследних(&Момент, ) КАК ПереодическиеПоказателиСрезПоследних");
Запрос.УстановитьПараметр("Момент",Ссылка.МоментВремени());
Запрос.УстановитьПараметр("РазмерКомпенсации",0);
Запрос.УстановитьПараметр("Норма",0);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.ВидРасчета = ПланыВидовРасчета.ДополнительныеНачисления.Сверхурочные Тогда
Запрос.УстановитьПараметр("Норма",Выборка.Значение);
ИначеЕсли Выборка.ВидРасчета = ПланыВидовРасчета.ДополнительныеНачисления.ЗатратыНаОбмундирование Тогда
Запрос.УстановитьПараметр("РазмерКомпенсации",Выборка.Значение);
КонецЕсли;
КонецЦикла;
Запрос.Текст =
"ВЫБРАТЬ
| ОсновныеНачисления.ПериодРегистрации,
| ОсновныеНачисления.Регистратор,
| ОсновныеНачисления.НомерСтроки,
| ОсновныеНачисления.ВидРасчета,
| ОсновныеНачисления.ПериодДействия,
| ОсновныеНачисления.ПериодДействияНачало,
| ОсновныеНачисления.ПериодДействияКонец,
| ОсновныеНачисления.БазовыйПериодНачало,
| ОсновныеНачисления.БазовыйПериодКонец,
| ОсновныеНачисления.Активность,
| ОсновныеНачисления.Сторно,
| ОсновныеНачисления.Сотрудник,
| ВЫБОР
| КОГДА НЕ &Перерасчет
| ИЛИ Перерасчет1.Сотрудник = ОсновныеНачисления.Сотрудник
| ТОГДА ВЫБОР ОсновныеНачисления.ВидРасчета
| КОГДА &ТарифЧасовой
| ТОГДА ВЫБОР ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.ЗначениеПериодДействия, 0)
| КОГДА 0
| ТОГДА 0
| ИНАЧЕ ОсновныеНачисления.Показатель * (ОсновныеНачисленияДанныеГрафика.ЗначениеФактическийПериодДействия / ОсновныеНачисленияДанныеГрафика.ЗначениеПериодДействия)
| КОНЕЦ
| КОГДА &Больничный
| ТОГДА ВЫБОР ЕСТЬNULL(ОсновныеНачисленияБазаОсновныеНачисления.ВремяБаза, 0)
| КОГДА 0
| ТОГДА 0
| ИНАЧЕ ОсновныеНачисленияДанныеГрафика.ЗначениеФактическийПериодДействия * (ОсновныеНачисленияБазаОсновныеНачисления.СуммаБаза / ОсновныеНачисленияБазаОсновныеНачисления.ВремяБаза)
| КОНЕЦ
| КОГДА &Прогул
| ТОГДА 0
| ИНАЧЕ 0
| КОНЕЦ * ВЫБОР ОсновныеНачисления.Сторно
| КОГДА ИСТИНА
| ТОГДА -1
| ИНАЧЕ 1
| КОНЕЦ
| ИНАЧЕ ОсновныеНачисления.Сумма
| КОНЕЦ КАК Сумма,
| ВЫБОР
| КОГДА НЕ &Перерасчет
| ИЛИ Перерасчет1.Сотрудник = ОсновныеНачисления.Сотрудник
| ТОГДА ВЫБОР
| КОГДА ОсновныеНачисления.ВидРасчета В (&Оклад, &Больничный, &Прогул)
| ТОГДА ОсновныеНачисленияДанныеГрафика.ЗначениеФактическийПериодДействия
| ИНАЧЕ 0
| КОНЕЦ * ВЫБОР ОсновныеНачисления.Сторно
| КОГДА ИСТИНА
| ТОГДА -1
| ИНАЧЕ 1
| КОНЕЦ
| ИНАЧЕ ОсновныеНачисления.Время
| КОНЕЦ КАК Время,
| ОсновныеНачисления.Смена,
| ОсновныеНачисления.Показатель
|ИЗ
| РегистрРасчета.ОсновныеНачисления КАК ОсновныеНачисления
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ОсновныеНачисления.ДанныеГрафика(Регистратор = &Регистратор) КАК ОсновныеНачисленияДанныеГрафика
| ПО ОсновныеНачисления.НомерСтроки = ОсновныеНачисленияДанныеГрафика.НомерСтроки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ОсновныеНачисления.БазаОсновныеНачисления(&Измерения, &Измерения, , Регистратор = &Регистратор) КАК ОсновныеНачисленияБазаОсновныеНачисления
| ПО ОсновныеНачисления.НомерСтроки = ОсновныеНачисленияБазаОсновныеНачисления.НомерСтроки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ОсновныеНачисления.Перерасчет1 КАК Перерасчет1
| ПО ОсновныеНачисления.Регистратор = Перерасчет1.ОбъектПерерасчета
| И ОсновныеНачисления.ВидРасчета = Перерасчет1.ВидРасчета
| И ОсновныеНачисления.Сотрудник = Перерасчет1.Сотрудник
|ГДЕ
| ОсновныеНачисления.Регистратор = &Регистратор
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДополнительныеНачисления.ПериодРегистрации,
| ДополнительныеНачисления.Регистратор,
| ДополнительныеНачисления.НомерСтроки,
| ДополнительныеНачисления.ВидРасчета,
| ДополнительныеНачисления.БазовыйПериодНачало,
| ДополнительныеНачисления.БазовыйПериодКонец,
| ДополнительныеНачисления.Активность,
| ДополнительныеНачисления.Сторно,
| ДополнительныеНачисления.Сотрудник,
| ДополнительныеНачисления.Показатель,
| ВЫБОР
| КОГДА НЕ &Перерасчет
| ИЛИ ДополнительныеНачисления.Сотрудник = Перерасчет2.Сотрудник
| ТОГДА ВЫБОР ДополнительныеНачисления.ВидРасчета
| КОГДА &Компенсация
| ТОГДА &РазмерКомпенсации
| КОГДА &Сверхурочные
| ТОГДА ВЫБОР
| КОГДА ЕСТЬNULL(ДополнительныеНачисленияБазаОсновныеНачисления.ВремяБаза, 0) > &Норма
| ТОГДА (ЕСТЬNULL(ДополнительныеНачисленияБазаОсновныеНачисления.ВремяБаза, 0) - &Норма) * 100
| ИНАЧЕ 0
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ
| ИНАЧЕ ДополнительныеНачисления.Сумма
| КОНЕЦ КАК Сумма
|ИЗ
| РегистрРасчета.ДополнительныеНачисления КАК ДополнительныеНачисления
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ДополнительныеНачисления.Перерасчет2 КАК Перерасчет2
| ПО ДополнительныеНачисления.Регистратор = Перерасчет2.ОбъектПерерасчета
| И ДополнительныеНачисления.ВидРасчета = Перерасчет2.ВидРасчета
| И ДополнительныеНачисления.Сотрудник = Перерасчет2.Сотрудник
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ДополнительныеНачисления.БазаОсновныеНачисления(&Измерения, &Измерения, , Регистратор = &Регистратор) КАК ДополнительныеНачисленияБазаОсновныеНачисления
| ПО ДополнительныеНачисления.НомерСтроки = ДополнительныеНачисленияБазаОсновныеНачисления.НомерСтроки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ДополнительныеНачисления.БазаДополнительныеНачисления(&Измерения, &Измерения, , Регистратор = &Регистратор) КАК ДополнительныеНачисленияБазаДополнительныеНачисления
| ПО ДополнительныеНачисления.НомерСтроки = ДополнительныеНачисленияБазаДополнительныеНачисления.НомерСтроки
|ГДЕ
| ДополнительныеНачисления.Регистратор = &Регистратор";
ИзмМассив = Новый Массив;
ИзмМассив.Добавить("Сотрудник");
Запрос.УстановитьПараметр("Измерения",ИзмМассив);
Запрос.УстановитьПараметр("Перерасчет",Перерасчет);
Запрос.УстановитьПараметр("Регистратор",Ссылка);
Запрос.УстановитьПараметр("Компенсация",ПланыВидовРасчета.ДополнительныеНачисления.ЗатратыНаОбмундирование);
Запрос.УстановитьПараметр("Сверхурочные",ПланыВидовРасчета.ДополнительныеНачисления.Сверхурочные);
Запрос.УстановитьПараметр("ТарифЧасовой",ПланыВидовРасчета.ОсновныеНачисления.Тариф);
Запрос.УстановитьПараметр("Больничный",ПланыВидовРасчета.ОсновныеНачисления.Больничный);
Запрос.УстановитьПараметр("Прогул",ПланыВидовРасчета.ОсновныеНачисления.Прогул);
МассивРезультатов = Запрос.ВыполнитьПакет();
НаборЗаписей = РегистрыРасчета.ОсновныеНачисления.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Ссылка);
НаборЗаписей.Загрузить(МассивРезультатов[0].Выгрузить());
НаборЗаписей.Записать(,,Ложь);
НаборЗаписей = РегистрыРасчета.ДополнительныеНачисления.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Ссылка);
НаборЗаписей.Загрузить(МассивРезультатов[1].Выгрузить());
НаборЗаписей.Записать(,,Ложь);
КонецПроцедуры