Имя: Пароль:
1C
1С v8
Заполнение дерева значений. что не так,
0 lamme
 
23.01.16
23:07
процедура ЗаполнениеПодчиненнойСтроки(СтрокаРодитель, НоменклатураСсылка)
    
    запрос = новый запрос();
    Запрос.УстановитьПараметр("Номенклатура",НоменклатураСсылка);
    Запрос.Текст =
      "ВЫБРАТЬ
      |    КомплектующиеНоменклатуры.Комплектующая,
      |    КомплектующиеНоменклатуры.Количество,
      |    КомплектующиеНоменклатуры.ЕдиницаИзмерения,
      |    КомплектующиеНоменклатуры.ДоляСтоимости,
      |    КомплектующиеНоменклатуры.Номенклатура.Артикул КАК Артикул
      |ИЗ
      |    РегистрСведений.КомплектующиеНоменклатуры КАК КомплектующиеНоменклатуры
      |ГДЕ
      |    КомплектующиеНоменклатуры.Номенклатура = &Номенклатура";
    
     Рез = запрос.Выполнить().Выгрузить();
    
     для каждого Эл из Рез цикл
         СтрокаПервогоУровня = ДеревоКомплектующие.Строки.Добавить();
         СтрокаПервогоУровня.Артикул = Эл.Артикул;
         СтрокаПервогоУровня.Комплектующая = Эл.Комплектующая;
         СтрокаПервогоУровня.Количество = Эл.Количество;
        
         ЗаполнениеПодчиненнойСтроки(СтрокаПервогоУровня, Эл.Комплектующая);
        
     конеццикла;
    
конецпроцедуры


Процедура КнопкаВыполнитьНажатие(Кнопка)
    спртссылка = Справочники.Номенклатура.НайтиПоКоду("F0000007927");
    
     ЗаполнениеПодчиненнойСтроки(Неопределено, спртссылка)

    
КонецПроцедуры





в итоге получается обынчная таблица значений
без иерархии ..
хотя у ДеревоКомплектующие тип = ДеревоЗначений

что не так?
1 lamme
 
23.01.16
23:10
не УФ
2 Lexey_
 
23.01.16
23:13
(0) "что не так?"
1. Запрос в цикле
2. СтрокаРодитель нигде не используется
3 lamme
 
23.01.16
23:16
(2)
1- а как его можно не в цикле - если хз оно как будет
2 - а куда его СтрокаРодитель ?
4 lamme
 
23.01.16
23:18
больше всего волнует 2
1 - там переделается
просто разбираюсь с деревом ..

куда эту СтрокаРодитель  надо указать?
5 lamme
 
23.01.16
23:22
для каждого Эл из Рез цикл
        Если   СтрокаРодитель=неопределено тогда
             СтрокаПервогоУровня = ДеревоКомплектующие.Строки.Добавить();
        иначе
            СтрокаПервогоУровня = СтрокаРодитель .Строки.Добавить();
        конецесли;

...


так стали отображаться только элементы 1 ур

нету на форме плюсика - чтобы развернуть ..
6 Lexey_
 
23.01.16
23:27
(5) вообще дерево можно элементарно получить
Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам), и выгрузить в ТП, осталось только запрос написать
7 lamme
 
23.01.16
23:31
ОбходРезультатаЗапроса.ПоГруппировкам
эт я знаю.

тогда не понимаю - что должно быть в итоге в запросе
чтобы он построил дерево
8 Lexey_
 
23.01.16
23:44
(7) Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Номенклатура.Ссылка КАК Ссылка
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура
        |
        |УПОРЯДОЧИТЬ ПО
        |    Ссылка ИЕРАРХИЯ";

    Результат = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
    ДЗ = Результат;
    ЭлементыФормы.ДЗ.СоздатьКолонки();
9 lamme
 
23.01.16
23:48
а на моем запросе?
одна таблица плоская -РС
10 lamme
 
23.01.16
23:49
на примере спр номенклатура -который имеет иерархию - и так понятно.
на примере плоской таблицы .. не понятно.
как запрос сделать - чтобы он в итоге получил иерархию как в спр номенклатура.
11 lamme
 
23.01.16
23:54
одним словом
возвращаемся к (0)
что в нем не так?
12 Lexey_
 
23.01.16
23:58
(10) итоги должны быть по нужному полю
13 lamme
 
25.01.16
09:05
короче все оказалось намного проще
1. нефиг за компом сидеть в 12 ночи
2. код в (0), с учетом (5) - рабочий полностью .. может не оптимальный конечно - но рабочий
на форме у колонки - которую разворачивать - надо было указать свойства - отображать иерархию

http://clip2net.com/s/3tmVyAn
Основная теорема систематики: Новые системы плодят новые проблемы.