Итоги в Макете
Добрый день. Ситуация такая.
При выводе макета происходит следующая процедура:
Стр=ЭлементыФормы.Инфо.ТекущаяСтрока;
ТабДок = Новый ТабличныйДокумент;
Макет = Обработки.РабочийСтол.ПолучитьМакет(«Отчет»);
Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| РасчетыОстаткиИОбороты.Заявка,
| ПРЕДСТАВЛЕНИЕ(РасчетыОстаткиИОбороты.Заявка),
| РасчетыОстаткиИОбороты.Клиент,
| ПРЕДСТАВЛЕНИЕ(РасчетыОстаткиИОбороты.Клиент),
| РасчетыОстаткиИОбороты.Программа,
| ПРЕДСТАВЛЕНИЕ(РасчетыОстаткиИОбороты.Программа),
| РасчетыОстаткиИОбороты.СуммаUSDОборотДт,
| РасчетыОстаткиИОбороты.СуммаUSDОборотКт,
| РасчетыОстаткиИОбороты.СуммаUSDКонечныйОстаток,
| РасчетыОстаткиИОбороты.ИтогоПрограммаСоставляетОборотДт
|ИЗ
| РегистрБухгалтерии.Расчеты.ОстаткиИОбороты КАК РасчетыОстаткиИОбороты
|ГДЕ
| РасчетыОстаткиИОбороты.Заявка = &Заявка»;
Запрос.УстановитьПараметр(«Заявка», Стр.Заявка);
Результат = Запрос.Выполнить();
ОбластьЗаголовок = Макет.ПолучитьОбласть(«Заголовок»);
ОбластьПодвал = Макет.ПолучитьОбласть(«Подвал»);
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть(«ШапкаТаблицы»);
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть(«ПодвалТаблицы»);
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть(«Детали»);
ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);
Рез=Результат.Выбрать();
Пока Рез.Следующий() Цикл
ОбластьШапкаТаблицы.Параметры.Заявка=Рез.ЗаявкаПредставление;
ОбластьШапкаТаблицы.Параметры.Программа=Рез.ПрограммаПредставление;
ОбластьШапкаТаблицы.Параметры.ИтогоПрограммаСоставляет=Рез.ИтогоПрограммаСоставляетОборотДт;
КонецЦикла;
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();
Пока ВыборкаДетали.Следующий() Цикл
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);
ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());
КонецЦикла;
ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(ОбластьПодвалТаблицы);
ТабДок.Вывести(ОбластьПодвал);
ТабДок.Показать();
Как мне вывести ОбщийИтог в область ОбластьШапкаТаблицы получив из области ОбластьДетальныхЗаписей?
Источник
Вывести в печатную форму итог по колонке Сумма
Есть документ «Накладная» В документе колонка «Сумма» Как вывести итог по колонке «Сумма» в печатную форму
Процедура Печать(ТабДок, Ссылка) Экспорт
// <<_КОНСТРУКТОР_ПЕЧАТИ(Печать)
Макет = Документы.Накладная.ПолучитьМакет(«Печать»);
Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| Накладная.Дата,
| Накладная.Итого,
| Накладная.Клиент,
| Накладная.Номер,
| Накладная.Материалы.(
| НомерСтроки,
| Номенклатура,
| Количество,
| Цена,
| Сумма
| )
|ИЗ
| Документ.Накладная КАК Накладная
|ГДЕ
| Накладная.Ссылка В (&Ссылка)»;
Запрос.Параметры.Вставить(«Ссылка», Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
ОбластьЗаголовок = Макет.ПолучитьОбласть(«Заголовок»);
Шапка = Макет.ПолучитьОбласть(«Шапка»);
ОбластьМатериалыШапка = Макет.ПолучитьОбласть(«МатериалыШапка»);
ОбластьМатериалы = Макет.ПолучитьОбласть(«Материалы»);
Подвал = Макет.ПолучитьОбласть(«Подвал»);
ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());
ТабДок.Вывести(ОбластьМатериалыШапка);
ВыборкаМатериалы = Выборка.Материалы.Выбрать();
Пока ВыборкаМатериалы.Следующий() Цикл
ОбластьМатериалы.Параметры.Заполнить(ВыборкаМатериалы);
ТабДок.Вывести(ОбластьМатериалы, ВыборкаМатериалы.Уровень());
КонецЦикла;
Подвал.Параметры.Заполнить(Выборка);
Подвал.Параметры.Итого=ТУТ ДОЛЖНА БЫТЬ ИТОГОВАЯ ПО КОЛОНКЕ СУММА;
ТабДок.Вывести(Подвал);
ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
//>>
КонецПроцедуры
А посмотреть в типовых формах? Там везде итоги по количеству и суммам выводятся.
Эх, 86-е. тяжелое детство. игрушки, прибитые к потолку.
Собирай сумму в той части где ты делаешь обход по табличной части, не забыв при этом обнулить её перед обходом по циклу.
Источник
Вывести ИТОГИ в макете
Собираю запросом ведомости на определенную дату. Далее, мне надо их вывести в отчет, с итоговыми суммами по каждой ведомости. Вот так: https://d.radikal.ru/d12/1901/11/85661d54c454.jpg желтым цветом выделила итоги, с выводом которых — возникла проблема, т.к. выводится итог только у последней ведомости.
Вот макет: https://a.radikal.ru/a18/1901/d0/b1ce0944393a.jpg
Ниже код, который выводит все как мне нужно, только итоги выводятся у последней ведомости, а надо после каждой ведомости:
&НаСервере
Функция СформироватьНаСервере()
ТабДок = Новый ТабличныйДокумент;
Макет = Объект.РеквизитМакетОтчет;
НПП = 0;
ИтогСумма = 0;
ИтогНДФЛ = 0;
Пока ВыборкаВедомостиВБанк.Следующий() Цикл
Если СтароеЗначение <> ТекущееЗначение Тогда
НПП = 1;
ОбластьМакетаШапка = Макет.ПолучитьОбласть(«Шапка»);
ОбластьМакетаСтрока = Макет.ПолучитьОбласть(«Строка»);
ОбластьМакетаИтог = Макет.ПолучитьОбласть(«Итог»);
ОбластьМакетаСтрока.Параметры.НПП = НПП;
ОбластьМакетаСтрока.Параметры.НомерЛицевогоСчета = ВыборкаВедомостиВБанк.НомерЛицевогоСчета;
ОбластьМакетаСтрока.Параметры.Физлицо = ВыборкаВедомостиВБанк.Сотрудник.ФизическоеЛицо;
ОбластьМакетаСтрока.Параметры.Подразделение = ВыборкаВедомостиВБанк.Подразделение;
ОбластьМакетаСтрока.Параметры.КВыплате = ВыборкаВедомостиВБанк.КВыплате;
ОбластьМакетаСтрока.Параметры.НДФЛ = ВыборкаВедомостиВБанк.НДФЛ;
ИтогСумма = ИтогСумма + ВыборкаВедомостиВБанк.КВыплате;
ИтогНДФЛ = ИтогНДФЛ + ВыборкаВедомостиВБанк.НДФЛ;
ОбластьМакетаСтрока.Параметры.НПП = НПП;
ОбластьМакетаСтрока.Параметры.НомерЛицевогоСчета = ВыборкаВедомостиВБанк.НомерЛицевогоСчета;
ОбластьМакетаСтрока.Параметры.Физлицо = ВыборкаВедомостиВБанк.Сотрудник.ФизическоеЛицо;
ОбластьМакетаСтрока.Параметры.Подразделение = ВыборкаВедомостиВБанк.Подразделение;
ОбластьМакетаСтрока.Параметры.КВыплате = ВыборкаВедомостиВБанк.КВыплате;
ОбластьМакетаСтрока.Параметры.НДФЛ = ВыборкаВедомостиВБанк.НДФЛ;
ИтогСумма = ИтогСумма + ВедБанкКВыплате;
ИтогНДФЛ = ИтогНДФЛ + ВедБанкНДФЛ;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр(«Массив», Ведомости);
Запрос.Текст =
«ВЫБРАТЬ
| ВедомостьНаВыплатуЗарплатыВБанкЗарплата.Ссылка КАК Ссылка,
| ВедомостьНаВыплатуЗарплатыВБанкЗарплата.Сотрудник КАК Сотрудник,
| ВедомостьНаВыплатуЗарплатыВБанкЗарплата.Подразделение КАК Подразделение,
| ВедомостьНаВыплатуЗарплатыВБанкЗарплата.КВыплате КАК КВыплате,
| ВедомостьНаВыплатуЗарплатыВБанкЗарплата.НомерЛицевогоСчета КАК НомерЛицевогоСчета,
| ВедомостьНаВыплатуЗарплатыВБанкЗарплата.Ссылка.Номер КАК Номер,
| ВедомостьНаВыплатуЗарплатыВБанкЗарплата.Ссылка.ПериодРегистрации КАК ПериодРегистрации
|ПОМЕСТИТЬ ВТ_ТЧЗарплата
|ИЗ
| Документ.ВедомостьНаВыплатуЗарплатыВБанк.Зарплата КАК ВедомостьНаВыплатуЗарплатыВБанкЗарплата
|ГДЕ
| ВедомостьНаВыплатуЗарплатыВБанкЗарплата.Ссылка В(&Массив)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_ТЧЗарплата.Ссылка КАК Ссылка,
| ВТ_ТЧЗарплата.Сотрудник КАК Сотрудник,
| ВТ_ТЧЗарплата.Подразделение КАК Подразделение,
| СУММА(ВТ_ТЧЗарплата.КВыплате) КАК КВыплате,
| ВТ_ТЧЗарплата.НомерЛицевогоСчета КАК НомерЛицевогоСчета,
| СУММА(РасчетыНалогоплательщиковСБюджетомПоНДФЛОбороты.СуммаРасход) КАК НДФЛ,
| ВТ_ТЧЗарплата.Номер КАК Номер,
| ВТ_ТЧЗарплата.ПериодРегистрации КАК ПериодРегистрации
|ИЗ
| ВТ_ТЧЗарплата КАК ВТ_ТЧЗарплата
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Обороты(, , Регистратор, ) КАК РасчетыНалогоплательщиковСБюджетомПоНДФЛОбороты
| ПО ВТ_ТЧЗарплата.Ссылка = РасчетыНалогоплательщиковСБюджетомПоНДФЛОбороты.Регистратор
| И ВТ_ТЧЗарплата.Сотрудник.ФизическоеЛицо = РасчетыНалогоплательщиковСБюджетомПоНДФЛОбороты.ФизическоеЛицо
|
|СГРУППИРОВАТЬ ПО
| ВТ_ТЧЗарплата.НомерЛицевогоСчета,
| ВТ_ТЧЗарплата.Подразделение,
| ВТ_ТЧЗарплата.Ссылка,
| ВТ_ТЧЗарплата.Сотрудник,
| ВТ_ТЧЗарплата.Номер,
| ВТ_ТЧЗарплата.ПериодРегистрации
|
|УПОРЯДОЧИТЬ ПО
| Номер»;
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
&НаКлиенте
Процедура Сформировать(Команда)
ТабДок = СформироватьНаСервере();
ТабДок.Показать();
Источник
Вывод итогов из запроса в макет
Создала макет печатной формы, запросом выбираю данные в макет. В запросе, так же, считаю Итоги по двум колонкам. После вывода печатной формы, итоги в печатной форме идут первыми, а после идет перечисление всех ОС. Как вывести итоги туда куда мне нужно? Вот код:
ЗапросСтрока = Новый Запрос;
ЗапросСтрока.УстановитьПараметр(«ТекущийДокумент», СсылкаНаОбъект.Ссылка);
ЗапросСтрока.Текст = «ВЫБРАТЬ
| НКС_РеализацияТоваровУслугОС.СтоимостьБУ КАК ПервСтоим,
| НКС_РеализацияТоваровУслугОС.АмортизацияБУ КАК СуммаЗноса,
| НКС_РеализацияТоваровУслугОС.ОсновноеСредство.НКС_КодПоКлассификатору КАК ИнвНомер,
| НКС_РеализацияТоваровУслугОС.ОсновноеСредство.НаименованиеПолное КАК Наименование,
| ЕСТЬNULL(ДатыВводаОС.ДатаСостояния, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаЕкс,
| НКС_РеализацияТоваровУслугОС.НомерСтроки КАК НомерСтроки
|ИЗ
| Документ.НКС_РеализацияТоваровУслуг.ОС КАК НКС_РеализацияТоваровУслугОС
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| СостоянияОСОрганизаций.ОсновноеСредство КАК ОсновноеСредство,
| СостоянияОСОрганизаций.Организация КАК Организация,
| МАКСИМУМ(СостоянияОСОрганизаций.ДатаСостояния) КАК ДатаСостояния
| ИЗ
| РегистрСведений.СостоянияОСОрганизаций КАК СостоянияОСОрганизаций
| ГДЕ
| СостоянияОСОрганизаций.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияОС.ВведеноВЭксплуатацию)
| И СостоянияОСОрганизаций.ОсновноеСредство В
| (ВЫБРАТЬ
| НКС_РеализацияТоваровУслугОС.ОсновноеСредство
| ИЗ
| Документ.НКС_РеализацияТоваровУслуг.ОС КАК НКС_РеализацияТоваровУслугОС
| ГДЕ
| НКС_РеализацияТоваровУслугОС.Ссылка = &ТекущийДокумент)
|
| СГРУППИРОВАТЬ ПО
| СостоянияОСОрганизаций.ОсновноеСредство,
| СостоянияОСОрганизаций.Организация) КАК ДатыВводаОС
| ПО НКС_РеализацияТоваровУслугОС.ОсновноеСредство = ДатыВводаОС.ОсновноеСредство
| И НКС_РеализацияТоваровУслугОС.Ссылка.Организация = ДатыВводаОС.Организация
|ГДЕ
| НКС_РеализацияТоваровУслугОС.Ссылка = &ТекущийДокумент
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки
|ИТОГИ
| СУММА(ПервСтоим),
| СУММА(СуммаЗноса),
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ НомерСтроки)
|ПО
| ОБЩИЕ»;
Строка = ЗапросСтрока.Выполнить().Выбрать();
Источник
Как вывести ИТОГИ в печатную форму в ПОДВАЛ
Переменная не определена (СуммаИтого)
У вас в запросе нет переменной СуммаИтого, поэтому предложенный код не работает, выдает ошибку. В этом то и заключается весь мой вопрос, как присвоить переменную ИТОГам в запросе?
Переменная не определена (ВыборкаОбщийИтог)
1с не видит такой переменной и в запросе выше её нет.
Даже поменяв на переменную куда записан результат запроса:
СуммаИтого = ВыборкаДетальныеЗаписи.СуммаОборот;
Ошибок нет, но никаких значений не выводит. Я так пробовал ранее ничего не получается. Так как ИТОГИ не записаны в переменную и их нет в результате запроса походу.
вот и определяется твоя переменная, а после уже пиши:
СуммаИтого = ВыборкаОбщийИтог.Сумма;
ОбластьПодвал.РеквизитДобавленныйВМакет = СуммаИтого; — тут уже заполняешь подвал в макете
параметр в самом макете должен быть назван: РеквизитДобавленныйВМакет
Не получилось, вообще строка пропала с суммой и итог пустой.
Выложу весь запрос, так как у меня нет суммы в документе, а беру её из оборотов документа. Может из-за этого итог не выводится?
Запрос.УстановитьПараметр(«ВыбРегистратор», СсылкаНаДокумент);
Запрос.УстановитьПараметр(«КорСчет», ПланыСчетов.Хозрасчетный.СпецодеждаВЭксплуатации);
.
Дальше выборка строк в цикле из запроса и ниже выводим подвал
.
ВыборкаОбщийИтог = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
СуммаИтого = ВыборкаОбщийИтог.СуммаОборот;
ОбластьПодвал.Параметры.СуммаИтог = СуммаИтого;
ТабличныйДокумент.Вывести(ОбластьПодвал);
Источник