Имя: Пароль:
1C
1С v8
Дерево значений
0 may-100
 
15.08.11
11:38
Добрый день!
Нужно решить такую задачу: вывести список статей денежных средств и суммы, которые проходили по этим статьям за определенный период, в виде дерева значений с группировками.Проблема состоит в том, если в справочнике "Статьи движения денежных средств" внутри папки есть еще вложенные папки и просто элементы, то группировка при выводе повторяется.
Например,
1.Входящие платежи        1000
 1.1. Платежи от полкупателей
1 may-100
 
15.08.11
11:42
1.Входящие платежи              1000

1.1. Платежи от покупателей   500
      По отсновной деят.      200
      По ЕНВД                 300
1. Входящие платежи           500
      Возврат от поставщиков  500

А нужно, чтобы выводилось так:

1.Входящие платежи              1000

1.1. Платежи от покупателей   500
      По отсновной деят.      200
      По ЕНВД                 300

Возврат от поставщиков       500

Как это реализовать?
2 Maxus43
 
15.08.11
11:43
На закладке Итоги только по элементам стоит? или с Иерархией ещё?
3 may-100
 
15.08.11
11:49
Выгружаю с помощью этотго запроса:


Запрос = Новый Запрос;
   МВТ = Новый МенеджерВременныхТаблиц;
   Запрос.МенеджерВременныхТаблиц = МВТ;
   Запрос.Текст = "ВЫБРАТЬ ";
   СЧ = 0;
   Для Каждого Колонка Из ТаблицаДДС.Колонки Цикл
       СЧ = СЧ + 1;
       Запрос.Текст = Запрос.Текст + Символы.ПС + "ТЗСостав."+ Колонка.Имя + " КАК "+ Колонка.Имя + ?(СЧ = ТаблицаДДС.Колонки.Количество(),"",",");
   КонецЦикла;
   Запрос.Текст = Запрос.Текст + Символы.ПС + "ПОМЕСТИТЬ ТЗВременная
   |ИЗ
   |    &ТЗСостав КАК ТЗСостав";
   
   Запрос.УстановитьПараметр("ТЗСостав",ТаблицаДДС);
   Запрос.Выполнить();
   
   Запрос = Новый Запрос;
   Запрос.МенеджерВременныхТаблиц = МВТ;
   Запрос.Текст = "ВЫБРАТЬ ";
   СЧ = 0;
   Для Каждого Колонка Из ТаблицаДДС.Колонки Цикл
       СЧ = СЧ + 1;
       Запрос.Текст = Запрос.Текст + Символы.ПС + "ТЗСостав."+ Колонка.Имя + " КАК "+ Колонка.Имя + ?(СЧ = ТаблицаДДС.Колонки.Количество(),"",",");
   КонецЦикла;
   Запрос.Текст = Запрос.Текст + Символы.ПС + " ИЗ
   |    ТЗВременная КАК ТЗСостав
   |ИТОГИ";
   СЧ = 0;
   Для Каждого КолонкаПересчета Из СтруктураКолонокПересчета Цикл
       СЧ = СЧ + 1;
       Запрос.Текст = Запрос.Текст + Символы.ПС + КолонкаПересчета.Значение + " ("+ КолонкаПересчета.Ключ + ")" + ?(СЧ = СтруктураКолонокПересчета.Количество(),"",",");    
   КонецЦикла;
   Запрос.Текст = Запрос.Текст + Символы.ПС + "ПО
   |    " + ИмяКолонки + " Только ИЕРАРХИЯ";
   ДеревоСтатей = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
4 Maxus43
 
15.08.11
11:54
"Только ИЕРАРХИЯ" Другое значение поставь
5 may-100
 
15.08.11
12:12
Если я ставлю "Иерархия", то тогда элементы повторяются
  Поступления от покупателей - 5000
      Поступления от покупателей  - 5000
  прочие поступления - 3000
      Прочие поступления - 3000

Что не так?
6 Axel2009
 
15.08.11
12:27
ВыборкаИзРезультатаЗапроса (QueryResultSelection)
ТипЗаписи (RecordType)
Синтаксис:
ТипЗаписи()
Возвращаемое значение:
Тип: ТипЗаписиЗапроса.
Описание:
Получает тип текущей записи выборки.
Пример:
ТекТип = Выборка.ТипЗаписи();
7 Maxus43
 
15.08.11
12:28
(5) "Элементы" и "Элементы И Иерархия" тоже криво?
8 may-100
 
15.08.11
13:01
Если оставить просто элементы, то нет группировок,а они нужны.
Если "Элементы и иерархия", то выводится 2 строки, одна - элемент, а вторая - группировка с именем аналогичным элементу. Получается одна строчка лишняя.
9 Alexandr Puzakov
 
15.08.11
13:32
(3) пиля-а-а-ть! Код переписать! Жутко сложно читается...
10 Axel2009
 
15.08.11
13:50
(8) выбирать выборкой. не учитывать те строки, которые типзаписи имеют итог по группировке, если есть итог по иерархии.
Закон Брукера: Даже маленькая практика стоит большой теории.