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