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