Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

таблица Значений в Дерево значений

таблица Значений в Дерево значений
Я
   MAPATNK2
 
15.05.19 - 09:29
Всем доброго дня. Нашла много вариантов выгрузки ТЗ в ДЗ, но так и не нашла работающий. Подскажите пожалуйста.
Есть таблица значений вида:
Номенклатура  |        кол-во остаток      | Дней закупа

Все выводимые данные в виде элементов без иерархии.
Как теперь добавить иерархию в ТЗ. Изначально в запрос добавить иерархию и вывести можно, но после запроса есть гигантский код, который переделывать не вариант, а при добавлении иерархии все ломается и перестает работать.
Поэтому хочу уже к готовой таблице добавить иерархию. Возможно ли это, может ссылки какие-нибудь полезные есть? Скажу честно, перелазила много форумов, так и не смогла осуществить задуманное. Может не там искала, а может и.....)))
 
 
   shadow_sw
 
1 - 15.05.19 - 09:31
   MAPATNK2
 
2 - 15.05.19 - 09:31
Находила и такое:
        ТЗ = новый таблицазначений;
    ТЗ = ИсточникДанных.ИсточникДанных;
    ПЗ = Новый ПостроительЗапроса;
    ПЗ.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТЗ)//передаем ТЗ

    ПЗ.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять;
    ПЗ.ИсточникДанных.Колонки.Номенклатура.Измерение = Истина//по этой колонке идет группировка

    ПЗ.ЗаполнитьНастройки();
    ПЗ.Выполнить();
    Дерево = ПЗ.Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
    Дерево.ВыбратьСтроку();


И такое 
     



    ////////////////////////////////

Процедура
Запрос = Новый Запрос;
Результат = Запрос.Выполнить();
ДеревоИсточников = Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);

Дерево = Список.ПолучитьЭлементы();
Дерево.Очистить();

РекурсивныйВыводДереваЗначений(Дерево, ДеревоИсточников);

КонецПроцедуры// ОбновитьСписокНоменклатуры()



// Процедура выводит дерево значений на форму.

//
Процедура РекурсивныйВыводДереваЗначений(ЭлементыДерева, ЭлементыДереваСтроки)

Для каждого СтрокаДеревоЗначений Из ЭлементыДереваСтроки.Строки Цикл

Если СтрокаДеревоЗначений.ЭтоГруппа Тогда

СтрокаДерево = ЭлементыДерева.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаДерево, СтрокаДеревоЗначений);            
ЭлементыДереваНовый = СтрокаДерево.ПолучитьЭлементы();
РекурсивныйВыводДереваЗначений(ЭлементыДереваНовый, СтрокаДеревоЗначений);

ИначеЕсли НЕ СтрокаДеревоЗначений.ЭтоГруппа  Тогда

СтрокаДерево = ЭлементыДерева.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаДерево, СтрокаДеревоЗначений);            
ЭлементыДереваНовый = СтрокаДерево.ПолучитьЭлементы();
РекурсивныйВыводДереваЗначений(ЭлементыДереваНовый, СтрокаДеревоЗначений);

Иначе            


СтрокаДерево = ЭлементыДерева.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаДерево, СтрокаДеревоЗначений);

КонецЕсли;            
/////////////////
   MAPATNK2
 
3 - 15.05.19 - 09:35
(1) Сложный код, который выдает ошибки и ссылки на несуществующие процедуры или функции
   sqr4
 
4 - 15.05.19 - 09:37
Загружаем таблицу в запрос, выгружаем дерево с иерархией или я не правильно понял?
   MAPATNK2
 
5 - 15.05.19 - 09:38
Есть вариант запросом к таблице с итогами и выгрузкой результата "с группировкой".

Но я так и не смогла сделать. Могу код отправить, может кто подскажет где ошибка.
   MAPATNK2
 
6 - 15.05.19 - 09:38
(4) Правильно. Пыталась много раз, не выходит.
   sqr4
 
7 - 15.05.19 - 09:39
(6) А в чем проблема, какие ошибки?
   MAPATNK2
 
8 - 15.05.19 - 09:40
(7) Ни в чем. Просто не появляется никакой иерархии.
   MAPATNK2
 
9 - 15.05.19 - 09:40
Из последнего пыталась так:



///////////////////////////////


ТЗ = новый таблицазначений;
    ТЗ = ИсточникДанных.ИсточникДанных;
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    МояТаблицаЗначений.КоличествоКонечныйОстаток,
        |    МояТаблицаЗначений.КоличествоНачальныйОстаток,
        |    МояТаблицаЗначений.Номенклатура,
        |    МояТаблицаЗначений.ОстатокНаДатуНачалаЗакупок,
        |    МояТаблицаЗначений.Период,
        |    МояТаблицаЗначений.ХарактеристикаНоменклатуры,
        |    МояТаблицаЗначений.Продано,
        |    МояТаблицаЗначений.ДнейПродажи,
        |    МояТаблицаЗначений.СредняяПродажаЗаДень,
        |    МояТаблицаЗначений.Остаток,
        |    МояТаблицаЗначений.НеобходимыйОбъемЗакупки,
        |    МояТаблицаЗначений.ПланируемыйОбъемПродаж

        |ПОМЕСТИТЬ МояТаблица
        |ИЗ
        |    &МояТаблицаЗначений КАК МояТаблицаЗначений
        |;
        |
        ////////////////////////////////////////////////////////////////////////////////

        |ВЫБРАТЬ
        |    МояТаблица.КоличествоКонечныйОстаток,
        |    МояТаблица.КоличествоНачальныйОстаток,
        |    МояТаблица.Номенклатура,
        |    МояТаблица.ОстатокНаДатуНачалаЗакупок,
        |    МояТаблица.Период,
        |    МояТаблица.ХарактеристикаНоменклатуры,
        |    МояТаблица.Продано,
        |    МояТаблица.ДнейПродажи,
        |    МояТаблица.СредняяПродажаЗаДень,
        |    МояТаблица.Остаток,
        |    МояТаблица.НеобходимыйОбъемЗакупки,
        |    МояТаблица.ПланируемыйОбъемПродаж
        |ИЗ
        |    МояТаблица КАК МояТаблица
        |ИТОГИ ПО        
        |Номенклатура";
    Запрос.УстановитьПараметр("МояТаблицаЗначений", ТЗ);
    РезультатЗапроса = Запрос.Выполнить();
    ДеревоКатегорий = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
   sqr4
 
10 - 15.05.19 - 09:40
да кидай что есть посмотрим
   MAPATNK2
 
11 - 15.05.19 - 09:41
последне вот так было 
 |ВЫБРАТЬ
        |    МояТаблица.КоличествоКонечныйОстаток,
        |    МояТаблица.КоличествоНачальныйОстаток,
        |    МояТаблица.Номенклатура,
        |    МояТаблица.ОстатокНаДатуНачалаЗакупок,
        |    МояТаблица.Период,
        |    МояТаблица.ХарактеристикаНоменклатуры,
        |    МояТаблица.Продано,
        |    МояТаблица.ДнейПродажи,
        |    МояТаблица.СредняяПродажаЗаДень,
        |    МояТаблица.Остаток,
        |    МояТаблица.НеобходимыйОбъемЗакупки,
        |    МояТаблица.ПланируемыйОбъемПродаж
        |ИЗ
        |    МояТаблица КАК МояТаблица
        |ИТОГИ ПО        
        |Номенклатура Иерархия";
   sqr4
 
12 - 15.05.19 - 09:42
Наверно, нужно как до дать понять запросу, какой тип в поле номенклатура
|    Выразить(МояТаблицаЗначений.Номенклатура как Справочник.Номенклатура) как Номенклатура,
   MAPATNK2
 
13 - 15.05.19 - 09:48
(12) Ну да. Родители появились. Вот только все, что было указано в остальных колонках - удалилось. ((Просто номенклатура с иерархией, без нужных данных.
   PaulBC
 
14 - 15.05.19 - 09:53
(13) итоговые поля-то укажи

ИТОГИ
    СУММА(КоличествоКонечныйОстаток)
        .....
ПО
    Номенклатура ИЕРАРХИЯ
   sqr4
 
15 - 15.05.19 - 09:59
(13) это должно быть видно только на последнем уровне иерархии, т.е где сама номенклатура. Добавление итогов, даст расчет по всем группировкам.
   MAPATNK2
 
16 - 15.05.19 - 11:07
ТЗ = новый таблицазначений;
    ТЗ = ИсточникДанных.ИсточникДанных;
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    МояТаблицаЗначений.ДнейПродажи,
        |    МояТаблицаЗначений.НеобходимыйОбъемЗакупки,
        |    МояТаблицаЗначений.Номенклатура,
        |    МояТаблицаЗначений.Остаток,
        |    МояТаблицаЗначений.ПланируемыйОбъемПродаж,
        |    МояТаблицаЗначений.Продано,
        |    МояТаблицаЗначений.СредняяПродажаЗаДень,
        |    МояТаблицаЗначений.ХарактеристикаНоменклатуры
        |ПОМЕСТИТЬ МояТаблица
        |ИЗ
        |    &МояТаблицаЗначений КАК МояТаблицаЗначений
        |;
        |
        ////////////////////////////////////////////////////////////////////////////////

        |ВЫБРАТЬ
        |    МояТаблица.ДнейПродажи,
        |    МояТаблица.НеобходимыйОбъемЗакупки,
        |    МояТаблица.Номенклатура,
        |    МояТаблица.Остаток,
        |    МояТаблица.ПланируемыйОбъемПродаж,
        |    МояТаблица.Продано,
        |    МояТаблица.СредняяПродажаЗаДень,
        |    МояТаблица.ХарактеристикаНоменклатуры
        |ИЗ
        |    МояТаблица КАК МояТаблица
        |ИТОГИ 
        |СУММА(Продано),
        |СУММА(ДнейПродажи),
        |СУММА(СредняяПродажаЗаДень),
        |СУММА(Остаток),
        |СУММА(НеобходимыйОбъемЗакупки),
        |СУММА(ПланируемыйОбъемПродаж)
        |ПО        
        |Номенклатура ИЕРАРХИЯ";
    Запрос.УстановитьПараметр("МояТаблицаЗначений", ТЗ);
    РезультатЗапроса = Запрос.Выполнить();
    ТЗ = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
    ЭлементыФормы.ТАБДЕР.Значение = ТЗ.Скопировать();
   MAPATNK2
 
17 - 15.05.19 - 11:07
Вывела дерево .... НО ПОЧЕМУ БЛИН ДЕРЕВО В СВЕРНУТОМ ВИДЕ ВЫВОДИТСЯ В ТАБЛИЧНУЮ ЧАСТЬ С ТИПОМ ДЕРЕВО ЗНАЧЕНИЙ?
   MAPATNK2
 
18 - 15.05.19 - 11:08
и НИКАК НЕ РАЗВЕРНЕШЬ ( Как теперь добавить возможность эту?
   MAPATNK2
 
19 - 15.05.19 - 11:13
Взяла это
////////////

Для каждого Строка Из ЭлементыФормы.ТАБДЕР.Значение.Строки Цикл 
    ЭлементыФормы.ТАБДЕР.Развернуть(Строка); 
    КонецЦикла;
    
/////////////



Думала поможет, но нет же, дерево превратилось в обычную таблицу значений. Что за бред, кто вообще это создавал. Ппц просто.

расскажите пожалуйста, как вывести нормальное дерево значений, где можно сворачивать, разворачивать и т.д и т.п.
   sqr4
 
20 - 15.05.19 - 11:16
(17) дерево значений надо выводить в дерево!
   sqr4
 
21 - 15.05.19 - 11:20
а в табличную часть потом перегружайте, при записи
   MAPATNK2
 
22 - 15.05.19 - 11:21
Не поняла. У меня на форме дерево значений есть, в коде я вывожу дерево значений, помещаю его на форме. программно все выглядит отлично, при на на Shift+F9, но при формировании отчета, дерево свернуто. Что именно я пропустила?
   MAPATNK2
 
23 - 15.05.19 - 11:23
(20) У меня на форме такого нет элемента. можно выбрать только Табличное поле с типом значения "Дерево значений". никаких деревьев у меня нет. Обычные формы.
   MAPATNK2
 
24 - 15.05.19 - 11:25
   sqr4
 
25 - 15.05.19 - 11:26
(24) не робит
   MAPATNK2
 
26 - 15.05.19 - 11:27
   MAPATNK2
 
27 - 15.05.19 - 11:27
Выводится вот такая вот фигня. Без возможности что либо открыть и посмотреть
   sqr4
 
28 - 15.05.19 - 11:29
ЭлементыФормы.ТАБДЕР.СоздатьКолонки()
   MAPATNK2
 
29 - 15.05.19 - 11:30
почему уровней нет, не понятно. Причем в отладчике у элемента формы все отлично выводится, а при формировании, нет ничего.
https://yadi.sk/i/N1oq_eQybtm7YQ
   sqr4
 
30 - 15.05.19 - 11:30
и соответственно, на форме чтобы он был без колонок
 
 
   MAPATNK2
 
31 - 15.05.19 - 11:32
(30) Издевательство какое то, я ведь делала так блииин, он мне ошибку выводил, что мол для этого элемента такая процедура не выполнима. а сейчас все выполнилось. Спасибо большое!!!!!!!!!!!!!!!!!
   sqr4
 
32 - 15.05.19 - 11:34
(31) наверное что то не учли.


Список тем форума
Рекламное место пустует  Рекламное место пустует
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс, 1996 г.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.