Здравствуйте, помогите суммировать результаты в отчете, очень давно не пользовался семеркой, так сказать "отупел", поэтому прошу помощи. На скриншоте я красным обвел что нужно сделать, но как это реализовать в коде я не знаю.
Процедура Сформировать()
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
Таб.ВывестиСекцию("Шапка");
Таб.ВывестиСекцию("Строка1");
Док = СоздатьОбъект("Документ.ЗаказПродукцииНовый");
Док.ВыбратьДокументы(ВыбНачПериода,ВыбКонПериода);
Пока Док.ПолучитьДокумент() > 0 Цикл
Если (Док.Проведен() <> 1) Тогда Продолжить; КонецЕсли;
РасшДок=Док.ТекущийДокумент();
Таб.ВывестиСекцию("Строка2");
КонецЦикла;
Таб.ВывестиСекцию("Подвал");
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать","");
КонецПроцедуры
//********************************************************************
//*** ***
//********************************************************************
Процедура ПриОткрытии()
ВыбНачПериода=НачМесяца(ТекущаяДата());
ВыбКонПериода=КонМесяца(ТекущаяДата());
КонецПроцедуры
ПоказатьПрикрепленные файлы:
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Смотреть нужно в таблице какие данные в соответствующих колонках выводятся, ибо в неё по любому лезть придётся для добавления итогов.
А так, смею предположить, что-то типа:
А так, смею предположить, что-то типа:
Процедура Сформировать()
косяки = 0;
Если ПустоеЗначение(выбНачПериода) = 1 Тогда
Сообщить("Дата начала отчёта не выбрана", "!");
косяки = косяки + 1;
КонецЕсли;
Если ПустоеЗначение(выбКонПериода) = 1 Тогда
Сообщить("Дата окончания отчёта не выбрана", "!");
косяки = косяки + 1;
КонецЕсли;
Если (косяки = 0) И (выбНачПериода > выбКонПериода) Тогда
Сообщить("Дата начала отчёта позже даты окончания", "!");
КонецЕсли;
Если косяки > 0 Тогда
Возврат;
КонецЕсли;
таб = СоздатьОбъект("Таблица");
таб.ИсходнаяТаблица("Сформировать");
таб.ВывестиСекцию("Заголовок");
начПовторения = таб.ВысотаТаблицы() + 1;
таб.ВывестиСекцию("Шапка");
конПовторения = таб.ВысотаТаблицы();
таб.ПараметрыСтраницы(1,,,,,,,,,1);
таб.Опции(0,0,конПовторения);
таб.ПовторятьПриПечатиСтроки(начПовторения,конПовторения);
таб.ТолькоПросмотр(1);
суммаКол = 0;
суммаЛот = 0;
док = СоздатьОбъект("Документ.ЗаказПродукцииНовый");
док.ВыбратьДокументы(выбНачПериода,выбКонПериода);
Пока док.ПолучитьДокумент() = 1 Цикл
Если док.Проведен() = 0 Тогда
Продолжить;
КонецЕсли;
расшДок = док.ТекущийДокумент();
таб.ВывестиСекцию("Строка2");
суммаКол = суммаКол + расшДок.Итог("Количество"); // вот суммируем кол-во
суммаЛот = суммаЛот + расшДок.Итог("Сумма"); // а здесь суммы
КонецЦикла;
таб.ВывестиСекцию("Подвал");
таб.Показать("Реестр");
КонецПроцедуры
Показать
(6) JMW пасибки большое бро, прям от души, в общем я сделал так:
Процедура Сформировать()
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
Таб.ВывестиСекцию("Шапка");
Таб.ВывестиСекцию("Строка1");
СуммаКол = 0;
СуммаЛот = 0;
Док = СоздатьОбъект("Документ.ЗаказПродукцииНовый");
Док.ВыбратьДокументы(ВыбНачПериода,ВыбКонПериода);
Пока Док.ПолучитьДокумент() > 0 Цикл
Если (Док.Проведен() <> 1) Тогда Продолжить; КонецЕсли;
РасшДок=Док.ТекущийДокумент();
Таб.ВывестиСекцию("Строка2");
СуммаКол = СуммаКол + РасшДок.КоличествоДокументов;
СуммаЛот = СуммаЛот + РасшДок.КоличествоЛотков;
КонецЦикла;
Таб.ВывестиСекцию("Подвал");
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать","");
КонецПроцедуры
//********************************************************************
//*** ***
//********************************************************************
Процедура ПриОткрытии()
ВыбНачПериода=НачМесяца(ТекущаяДата());
ВыбКонПериода=КонМесяца(ТекущаяДата());
КонецПроцедуры
ПоказатьПрикрепленные файлы:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот