Консультация № 80698
02.04.2007, 13:19
0.00 руб.
0 3 3
Подскажите пожалуйста как сделать подсчет суммы по строкам в отчете.

Обсуждение

Неизвестный
02.04.2007, 13:35
общий
это ответ
Здравствуйте, Шмачков!
Тут возможны варианты.
Во-первых, Вы забыли уточнить версию 1С : 7.7 или 8.0
А вообще существенно различных 2 подхода:
1) Вы получаете эти данные с помощью запроса, вместе с остальными. В 8.0 для этого можно использовать ИТОГИ
2) Вы вычисляете эти данные в том же (или соседнем) цикле, в котором выводите строки в отчет.
Неизвестный
02.04.2007, 13:35
общий
это ответ
Здравствуйте, Шмачков!

Есть отчет. Нужно подсчитать итого. Вот код:
Процедура Сформировать()
Перем Спр, Спс; // переменные
Перем Итого; // переменная в которой будет накапливатся сумма
НомПП = 1;
Таб = СоздатьОбъект("Таблица");
Спр = СоздатьОбъект ("Справочник.Родители");
Спс = СоздатьОбъект ("СписокЗначений"); // список значений
Таб.ИсходнаяТаблица("Реестр");
ДатаСч = ВыбПериода;
Спр.ИспользоватьРодителя(ВыбраннаяГруппа);
Спр.ВыбратьЭлементы ();
Таб.ВывестиСекцию("Шапка");
Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
Пока Спр.ПолучитьЭлемент()>0 Цикл
Если Спр.ЭтоГруппа() =1 Тогда // группы пропускаем
Продолжить;
КонецЕсли;
Таб.ВывестиСекцию("Строка_1");
НомПП = НомПП + 1;
Спс.ДобавитьЗначение(Спр.НомерСчета); // добавляем НомерСчета
Спс.ДобавитьЗначение(Спр.ФИО); // добавляем ФИО
Спс.ДобавитьЗначение(Спр.Сумма); // добавляем Сумма
Итого=Итого+Спр.Сумма; //!!!!---В цикле накапливается Сумма
Спс.ДобавитьЗначение(НомПП);
КонецЦикла;
Таб.ВывестиСекцию("Подвал");
Таб.ТолькоПросмотр(1);
Таб.Показать("Реестр","");
КонецПроцедуры

вот теперь в макете в подвале объявляете шаблон (или выражение ) Итого и все ))
Неизвестный
02.04.2007, 14:19
общий
это ответ
Здравствуйте, Шмачков!
Смотри простое приложение
ТЗ-таблицазначений, в которыой присутсятвует реквизит сумма, тип число

Приложение:
Таб=создатьОбъект("Таблица");Итсумм=0Тз.выбратьстроки();Пока ТЗ.получитьСтроку()=1 циклТаб.вывестисекцию("Строка");Итсумм=итсумм+ТЗ.сумма;Конеццикла;Таб.вывестисецию("Итог")//в секции итог должно быть значение ИтсуммТаб.показать();
Форма ответа