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