Имя: Пароль:
1C
1С v8
Иерархия Чтоб её
0 88g88
 
19.10.16
16:27
Приветствую вас форумчане.
есть вот такой код

    таб.НачатьАвтогруппировкуСтрок();
    Выборка = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
    пока Выборка.Следующий()цикл
        ВыборкаРезультат = выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
        Пока ВыборкаРезультат.Следующий() цикл
            Если ВыборкаРезультат.Клиент <> "ПУСТО" Тогда
                Данные2.Параметры.Клиент = ВыборкаРезультат.Клиент;
                Таб.Вывести(Данные2, ВыборкаРезультат.Уровень(),,Истина);
            КонецЕсли;
        КонецЦикла;
        Данные.Параметры.Заполнить(Выборка);
        Таб.Вывести(Данные, Выборка.Уровень());
    КонецЦикла;
    
    Таб.ЗакончитьАвтогруппировкуСтрок();

Это попытка создать иерархичный отчет.
Первый "вложенный" обход отрабатывает. (Выборка.Следующий())
Второе ошибки выдает, через отладчик пишет Ошибка чтения значения    . и не заполняет. (ВыборкаРезультат.Следующий())

много подобных примеров в интернете но у меня не прокатывает даже на элементарном варианте. Второй вложенный обход постоянно никакой.
Помогите разобраться.
1 Ёпрст
 
19.10.16
16:32
а че, в Клиент - строки у тебя ?
2 Euguln
 
19.10.16
16:33
Имя группировки не надо указывать чтоль?
3 Ёпрст
 
19.10.16
16:33
ну и текст запроса покажи хоть
4 88g88
 
19.10.16
16:36
(1) до стрроки клиент не доходит, сыпется раньше.
ВыборкаРезультат.Следующий() = лож

А в поле клиент Наименование элемента справочника.
опрашиваю документы. где есть клиенты и (ответственный как менеджер)
5 88g88
 
19.10.16
16:36
Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Событие.Дата КАК Дата,
    |    Событие.НачалоСобытия КАК НачалоСобытия,
    |    Событие.КонтактноеЛицоБезКонтрагента КАК Клиент,
    |    Событие.КонтактноеЛицоБезКонтрагента.СфераДеятельности КАК СфераДеятельности,
    |    Событие.Территория,
    |    Событие.Помещение,
    |    Событие.ТипВзаимодействия,
    |    Событие.РезультатСвязи,
    |    Событие.Статус,
    |    Событие.Ответственный КАК Менеджер,
    |    Событие.Комментарий
    |ИЗ
    |    Документ.Событие КАК Событие
    |ГДЕ
    |    Событие.Дата >= &НачалоПериода
    |    И Событие.Дата <= &КонецПериода
    |    И Событие.КонтактноеЛицоБезКонтрагента В ИЕРАРХИИ(&Клиент)
    |    И Событие.Ответственный В ИЕРАРХИИ(&Ответственный)
    |
    |УПОРЯДОЧИТЬ ПО
    |    Менеджер ИЕРАРХИЯ,
    |    Клиент УБЫВ
    |АВТОУПОРЯДОЧИВАНИЕ";
    
    Запрос.УстановитьПараметр("НачалоПериода",НачалоПериода);
    Запрос.УстановитьПараметр("КонецПериода",КонецПериода);
    Запрос.УстановитьПараметр("Клиент",Клиент);
    Запрос.УстановитьПараметр("Ответственный",Менеджер);
    
    Результат = Запрос.Выполнить();
6 Tatitutu
 
19.10.16
16:38
Шофер КАМАЗа возвращается на свою базу, весь убитый. Заходит в диспетчерскую:
- Грёбаный "Запорожец"!
Другие шоферы его обступают, спрашивают, что случилось-то?
Он только:
- Ну, гр...аный "Запорожец"!
Чуть не плачет. Все:
- Ну ты объясни.
- Загрузился сегодня под завязку. А на подъеме крутом, ну никак мотор не тянет. Туда, сюда, ну никак. Полчаса мудохался. Вдруг останавливается рядом запор, вылезает какой-то хрен и говорит, давай, мол, подтяну. Я говорю: "Ты соображаешь, "Запорожцем" полный КАМАЗ, чудила?" Он: "Нет, запросто вытяну". Я ему ответил, что если он КАМАЗ в гору с места сдвинет, я у него отсосу.
- И что?
- Ну, Гр....аный "Запорожец"!!! ...
7 Ёпрст
 
19.10.16
16:43
(5) И ? где тут ИТОГИ ?
8 Ёпрст
 
19.10.16
16:43
Ясен пень, что будет одна группировка
9 88g88
 
19.10.16
16:44
(8) а подробнее?
10 88g88
 
19.10.16
16:45
ну так "на палцах" так сказать
11 Tatitutu
 
19.10.16
16:45
добавить ИТОГИ
по СОБЫТИЕ и КЛИЕНТ
12 Ёпрст
 
19.10.16
16:45
(10) Иоги добавь в текст запроса
13 88g88
 
19.10.16
16:47
(12)     |ИТОГИ ПО
    |    Менеджер
Этого хватит?
14 Tatitutu
 
19.10.16
16:49
(13) это тебе решать
по чему ты собрался отчет делать

для тебя "на палцах"
ИТОГ = Выборка.Выбрать(....
2ИТОГ = ИТОГ.Выбрать(....
15 88g88
 
19.10.16
16:49
Ага! нашел косяк в коде.
выведение строк до вложенного цикла
Данные.Параметры.Заполнить(Выборка);
        Таб.Вывести(Данные, Выборка.Уровень());
а то основное поле снизу а группировка сверху
16 Ёпрст
 
19.10.16
16:50
(13) сколько полей перечислишь в Итогах, столько группировок будет на выходе.
17 88g88
 
19.10.16
16:51
(16) Прикольно. а если менеджеров 30?
18 88g88
 
19.10.16
16:52
(16) ну группирую я по менеджеру а сформировал на одного сейчас
19 88g88
 
19.10.16
16:52
а не на всех
20 88g88
 
19.10.16
16:53
(16) Сори парни затупил!!!!!
21 88g88
 
19.10.16
16:53
В запросе не хватало итогов, вот оно что. СПС за помощь.
22 88g88
 
19.10.16
16:55
В запросе не хватало итогов. вот оно что.
СПС!!!!
(6) а камазист сам подставился)))))
ему просто помощь предложили!