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