Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Индексированная таблица и ее метод Группировать (число прочтений - 2595 )
mc
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 59
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Индексированная таблица и ее метод Группировать
23. Ноября 2010 :: 11:41
Печать  
Помогите разобраться, как свернуть таблицу, чтобы получить итоги по всем уровням групп справочника.
Например есть таблица
Товар/Покупатель/РасходКво

Справочники многоуровневые: Товар (5 уровней) и Покупатели (3 уровня)
1) как получить итоги по всем группам "Товар"
Итог.ГруппаПервогоУровня1
Итог.ГруппаВторогоУровня1
Итог.ГруппаТретьегоУровня1
Элемент1
Итог.ГруппаТретьегоУровня2
Элемент2
2) возможно ли одновременно получить и итоги по всем группам Покупателей, учитывая порядок рассчета либо Товар/Покупатель, либо Покупатель/Товар.

спасибо за помощь.
  
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Индексированная таблица и ее метод Группировать
Ответ #1 - 23. Ноября 2010 :: 11:57
Печать  
Ты хоть сам то понял что написал?
Я например ничего не понял.
И вообще как можно вести подсчет по разным группам?
У тебе ж 2 разных справочника.
Ты для начала определись по какому справочнику будешь гулять.
В твоем случае
Группировка покупатели начнется только когда доберешся до самого элемента товара.
дальше пойдут группировки клиентов.
  
Наверх
 
IP записан
 
mc
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 59
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Индексированная таблица и ее метод Группировать
Ответ #2 - 23. Ноября 2010 :: 12:04
Печать  
varelchik писал(а) 23. Ноября 2010 :: 11:57:
Ты хоть сам то понял что написал?
Я например ничего не понял.
И вообще как можно вести подсчет по разным группам?
У тебе ж 2 разных справочника.
Ты для начала определись по какому справочнику будешь гулять.
В твоем случае
Группировка покупатели начнется только когда доберешся до самого элемента товара.
дальше пойдут группировки клиентов.


я спрашиваю для начало по одному справочнику как получить итоги по всем группам
и 2-й вариант: сначала получаем итоги в разрезе спр.Товар, а внутри по спр. Покупатели, или наоборот
  
Наверх
 
IP записан
 
mc
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 59
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Индексированная таблица и ее метод Группировать
Ответ #3 - 23. Ноября 2010 :: 15:32
Печать  
все. всем спасибо. все работает. нет никаких проблем с последовательным получением итогов по группам любого к-ва справочников
  
Наверх
 
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Индексированная таблица и ее метод Группировать
Ответ #4 - 24. Ноября 2010 :: 09:27
Печать  
Если понял сам, поделись со вслед идущим!
  
Наверх
IP записан
 
mc
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 59
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Индексированная таблица и ее метод Группировать
Ответ #5 - 24. Ноября 2010 :: 13:16
Печать  
Базовая инфа сдесь http://www.1cpp.ru/docum/html/IndexedTable.html#group
Все самое основное вот в этом куске
Цитата:
При группировке возможно также подсчитывать суммы по группам справочников - для этого в списке модификаторов индекса нужно указать '&'. Если в таблице есть колонка с именем '<ИмяКолонкиСправочника>_Родитель', то родитель для элемента будет браться из этой колонки - это уменьшает количество обращений к базе, и заметно увеличивает производительность. Итоговая таблица будет организована в виде дерева, в точности повторяющего структуру справочника. Следующий уровень группировки располагается в листьях этого дерева (т.е. в строках, не являющихся группами). Для удобства работы с полученным деревом в таблицу добавляется колонка '__ЭтоГруппа__', в которую записывается 1 для всех групп, и ПустоеЗначение для элементов. Также добавляется колонка '__Уровень__', которая заполняется значением уровня групп справочника (нумерация начинается с 1). Для элементов в колонку '__Уровень__' записывается ПустоеЗначение.


1) При "Группировать" по первому полю получаем таблицу с итогами по самым верхним группам справочника.
Из поля "тзПотомки" можно вынуть такую ИТЗ только с итогами по группам 2-го уровня, и т.д.
Код
Выбрать все
моИТ.Группировать("ИндПокупатели2:&Покупатели", "РасходСум, РасходКво", 0); 



2) Теперь переходим к итогам по 2-м полям
Сначала делаем все как в п.1), только добавляем сразу же в группировку и 2-е поле.
Код
Выбрать все
моИТ.Группировать("ИндТовары2:&Товары;ИндПокупатели1:Покупатели", "РасходСум, РасходКво", 0); 


Теперь нужно отследить когда доходит алгоритм до ИТЗ с элементами справочника и вытянув ИТЗ "тзПотомки" нужно теперь к ней применить группировку с итогами по группам и повторяем п.1)
Код
Выбрать все
оИТ = поИТ.тзПотомки;
оИТ.Группировать("ИндПокупатели2:&Покупатели", "РасходСум, РасходКво", 0); 



Я написал рекурсией для вывода отчета.

жду комментариев. Очень довольный
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать