Имя: Пароль:
1C
1С v8
Выгрузка данных запроса в дерево значений
0 arhiordinator
 
05.02.14
12:28
Добрый день! Есть вопрос при выгрузке данных запроса дерево значений
возникает следующая проблема
данные выгружаются следующим образом.
Как сделать так, чтобы в строках где указано название номенклатуры, не указывалось название склада. Соответственно без построчного обхода результата запроса.

склады          номенклатуры
склад 1        
|_склад1       номенклатура 1
|_склад1       номенклатура 2
ВЫБРАТЬ
|ТоварыВНТТОстатки.Склад КАК СкладНаименование,
|ТоварыВНТТОстатки.Номенклатура КАК Номенклатура
|ИЗ
|РегистрНакопления.ТоварыВНТТ.Остатки
|УПОРЯДОЧИТЬ ПО
|СкладНаименование
|ИТОГИ ПО
|СкладНаименование";    

ТабПереоценка = Тест.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
Тип дерево значений.
1 Wobland
 
05.02.14
12:35
а чем мешает?
2 salvator
 
05.02.14
12:43
СКД решит твою проблему
3 GANR
 
05.02.14
12:46
4 Godofsin
 
05.02.14
13:02
(2) +1
5 arhiordinator
 
05.02.14
13:48
Это только часть текста запроса, в целом это построитель отчета, как то так. Так как решить данную проблему, заказчик не хочет что бы данные отображались именно так, нужно склад пустым оставить, обход использовать не хочу достаточно долго, может можно установить какие то настройки дерева значений.
6 Defender aka LINN
 
05.02.14
13:55
(5) "нужно склад пустым оставить" - это тебе прямо заказчик сказал, да? Так и вижу эту картину: "да, arhiordinator, а на форме захреначь мне дерево. Только смотри, не дай бог в нем поле, которое только программно видеть можно, заполненным будет - ни копейки тебе не заплачу!"
Так дело было? Или просто некий одинэснег изобрел проктологический путь решения задачи?
7 arhiordinator
 
05.02.14
14:26
(6) Правильно говоришь. В общем будем менять подход к делу.
8 Зойч
 
05.02.14
14:27
нужно сделать отдельное поле представление и туда писать склад/номенклатуру
9 arhiordinator
 
05.02.14
14:35
(8) это возможно только при построчном обходе результата
10 Defender aka LINN
 
05.02.14
14:40
(7) Уже лучше.
Что мешает скрывать на верхнем уровне номенклатуру, а на нижнем - склад?
11 arhiordinator
 
05.02.14
14:55
(10) А как приблизительно это сделать, если без обхода?
С обходом у меня уже есть :)
12 Dimel
 
05.02.14
14:57
что то типа такого запроса?
ВЫБРАТЬ
|ТоварыВНТТОстатки.Склад КАК СкладНаименование,
|ТоварыВНТТОстатки.Номенклатура КАК Номенклатура
|ИЗ
|РегистрНакопления.ТоварыВНТТ.Остатки
|УПОРЯДОЧИТЬ ПО
|СкладНаименование
|ИТОГИ
  ЕСТЬNULL(СкладНаименование, Номенклатура) КАК СкладНоменклатура
ПО
    СкладНоменклатура,
    СкладНаименование,
    Номенклатура";
13 Dimel
 
05.02.14
15:16
Вот в своей базе построил
Запрос:
ВЫБРАТЬ
    НедостачиОстатки.Номенклатура КАК Номенклатура,
    НедостачиОстатки.Склад КАК Склад,
    НедостачиОстатки.КоличествоОстаток КАК Количество
ИЗ
    РегистрНакопления.Недостачи.Остатки КАК НедостачиОстатки
ИТОГИ
    Склад КАК Номенклатура
ПО
    Склад

Результат:
Склад1
   Номенклатура1
   Номенклатура2
   Номенклатура3
14 arhiordinator
 
05.02.14
15:27
(13)  А ты в консоль результат выводишь, просто при выводе в таблицу значений такого результата нет

ПостроительОтчета.Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам) - вот в чем проблема сидит.
15 Hmster
 
05.02.14
15:33
(14) используй СКД
16 Dimel
 
05.02.14
15:40
(14) Я скорее всего не правильно понял задачу и сделал вывод разных типов в одну колонку, т.е у меня и склад и номенклатура в одной колонке дерева значений.
17 arhiordinator
 
05.02.14
15:46
(16) Даже если в одной колонке будут, это вполне неплохо,
У меня всё равно так не получается.
Вот вывод в таблицу значений
    ТабПереоценка = ПостроительОтчета.Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);

        ЭлементыФормы.ТабПереоценка.СоздатьКолонки();
18 Dimel
 
05.02.14
15:48
почитай http://infostart.ru/public/71130/ Про хитрые запросы. Не стандартное использование итогов.
19 arhiordinator
 
05.02.14
16:00
(18) Понял, фишка в выводе в табличное поле, а не в таблицу значений, такой код у меня есть. Ток пока, что не стыкуется с дальнейшей логикой обработки, буду думать как состыковать.