Получение Значения Итога В Скд

Skellar

Well-known member
22.07.2008
87
0
#1
Всем доброго времени суток. Такой вопрос возник - можно ли получить значения итогов (программно или еще как), которые СКД формирует автоматически.
 

Skellar

Well-known member
22.07.2008
87
0
#4
К примеру, у меня есть отчет(скрин), который собран из нескольких схем компановки. Мне нужно добавить строку с итогом по всем таблицам, то есть сумму итогов всех схем - Итого Запасы + Итого Деб задолженность. Значение поля "Итого" скд формирует автоматически, так вот, можно ли получить значение этого поля? Идеальный вариант - получить его программно из самих таблиц и подставить в новую таблицу.
 

Вложения

Darlock

Well-known member
04.01.2008
560
1
#5
А компоновка и вывод нескольких схем в один элемент управления у вас программный? Или несколько схем реализовано в одной схеме?
 

Skellar

Well-known member
22.07.2008
87
0
#6
Да, программный, из модуля формы вывожу все схемы. (Сделал бы по-другому, но не знаю как в одной схеме реализовать несколько таблиц с разной структурой)
 

Darlock

Well-known member
04.01.2008
560
1
#7
Тогда в процессе вывода каждой таблицы в переменную вписывай общие итоги по текущей схеме
 

Skellar

Well-known member
22.07.2008
87
0
#8
Прошу прощения, а как это реализовать ?) Вывода у меня стандартный, вот такой:

Код:
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

Настройки = ДополнительнаяСхемаКомпоновки.НастройкиПоУмолчанию;

КомпоновщикНАстроек.ЗагрузитьНастройки(Настройки);

УстановитьНастройки();

МакетКомпоновки = КомпоновщикМакета.Выполнить(ДополнительнаяСхемаКомпоновки,Настройки);

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;

ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);

ДокументРезультат = ЭлементыФормы.Результат;

ПроцессорВывода= Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;

ПроцессорВывода.УстановитьДокумент(ДокументРезультат);

ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
 

Allexei

Well-known member
02.05.2008
322
1
#9
Проще всего будет как сказал Darlock перед выводом сделать итоги по двум таблицам а потом вывести этот итог в 3-ю. Можно "извратится"добавить в каждую из этих таблиц колонку "Итого" (можно любое другое имя), для каждой строки внести одно и то же значение, сделать группировку по колонке Итого с суммированием Суммы на начало и Суммы на конец, потом сделать объединение по общему поле колонки итого с суммированием или вычитанием и вывести все это дело на печать :rolleyes:
 

Skellar

Well-known member
22.07.2008
87
0
#10
А где эти итоги делать? В запросе? Если под Итогом вы подразумеваете поле с суммой по всем строкам, то тут кроется корень проблемы, на моем скрине выше сумма итога на КОНЕЦ по последним 3м строкам равна 450 тысяч с чем-то, и это в разрезе субконто. А если получать значение итога в запросе без такого разреза, то из итоговой суммы пропадает строка где начальная и конечная сумма равны и результат = 445 тыщ. Поэтому вместо поисков как переделать запрос, я хотел взять годовое число из таблицы.
 

Darlock

Well-known member
04.01.2008
560
1
#11
Так и возьми его. Не надо править запрос. Скомпоновал, но перед выводом прочитай первую строку результата компоновки и получишь общие итоги по таблице в целом. А потом выводи на печать. Мне кажется или в коде не хватает "СкомпоноватьРезультат" с двумя параметрами? Во вложении мой отчет из нескольких схем. и различными манипуляциями с результатом
 

Вложения

Skellar

Well-known member
22.07.2008
87
0
#12
Вот, да, пока не знаю как "взять" значение. За отчет спасибо, сейчас посмотрю.
 

Skellar

Well-known member
22.07.2008
87
0
#13
Только начал смотреть ваш отчет, как я понимаю вы через расшифровку работаете с результатом и значениями?
 

Darlock

Well-known member
04.01.2008
560
1
#14
не совсем. в расшифровке - я в зависимости от типа открывают форму элемента/документа. Похожий принцип и у вас должен сработать. вы работаете с конкретным элементом результата компоновки. у вас есть индекс, есть набор, получите по индексу конкретное значение, конкретного набора и будет вам счастье.
 

Skellar

Well-known member
22.07.2008
87
0
#15
Сделал вот так:
Код:
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
...	
МакетКомпоновки = КомпоновщикМакета.Выполнить(ДополнительнаяСхемаКомпоновки,Настройки,ДанныеРасшифровки);
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки);
...

СкомпоноватьРезультат(ЭлементыФормы.Результат, ДанныеРасшифровки); 

ЭлементРасшифровкиДанных = ДанныеРасшифровки.Элементы[0];

ЭлементРасшифровкиДанныхПоля = ЭлементРасшифровкиДанных.ПолучитьПоля()[0];
И начал перебирать по индексам элементы данных расшифровки. Не получилось найти ни одно числовое значение, итоги тоже не понял как выразить, что я делаю не так?
 

Skellar

Well-known member
22.07.2008
87
0
#16
Сделал примерно такой вариант:

Код:
Обл = ДокументРезультат.НайтиТекст("Итого")	;

Если Обл<>неопределено и ДополнительнаяСхемаКомпоновки<>"СхемаВнеоборотныеАктивы" Тогда

CтрокаЧтения1 = Обл.Низ;
СтрокаЧтения2 = Обл.Право;

r = "R"+формат(CтрокаЧтения1,"ЧГ=");
c = "C"+формат(СтрокаЧтения2+1,"ЧГ=");

СуммаНаНачало = СуммаНаНачало + Число(ДокументРезультат.Область(r+c).Текст); 

КонецЕсли;
Но все равно интересно, как через расшифровку можно это реализовать.
 

Darlock

Well-known member
04.01.2008
560
1
#17
Расшифровка вызывается при "открытии" ячейки табличного документа. Смотрите внимательно в отладчике. Конкретнее - "МакетКомпоновки", если мне не изменяет память. В отладчике будет что-то типа дерева значений одного и того же типа (это группировки со значениями).
 

Skellar

Well-known member
22.07.2008
87
0
#18
Вот оно что, спасибо. Тогда вариант с расшифровкой не пройдет - нужно чтобы из всех итогов собиралась общая сумма сразу при открытии отчета. Просто я думал, что есть какой-нибудь простой способ получить итоги по таблице, их сложить и куда-нибудь впихнуть.