[РЕШЕНО] Где заполняется дерево значений?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем jimbo28, 28 апр 2014.

  1. TopicStarter Overlay
    jimbo28
    Offline

    jimbo28

    Регистрация:
    28 апр 2014
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    В обработке Анализ продаж и формирование заказов не могу найти строчку, где в дерево значений ДеревоЗначенийРезультат попадают какие-либо данные. Помогите пожалуйста с этой проблемкой :( Просто создается впечатление, что они из воздуха берутся...
    Код:
    ДеревоЗначенийРезультат = Новый ДеревоЗначений();
        Обработка = РеквизитФормыВЗначение("Объект");
        СКД = ПолучитьИзВременногоХранилища(АдресСхемыКомпоновкиДанных);
       
        //Группировки
        Если Не ЗначениеЗаполнено(Поставщик) И Не ЗначениеЗаполнено(Магазин) Тогда
            ИмяГруппировки = "ПоставщикМагазин";
        ИначеЕсли ЗначениеЗаполнено(Поставщик) И Не ЗначениеЗаполнено(Магазин) Тогда
            ИмяГруппировки = "Магазин";
        ИначеЕсли Не ЗначениеЗаполнено(Поставщик) И ЗначениеЗаполнено(Магазин) Тогда
            ИмяГруппировки = "Поставщик";
        Иначе
            ИмяГруппировки = "ДетальныеЗаписи";
        КонецЕсли;
    
        Для Каждого ГруппировкаСКД Из КомпоновщикНастроек.Настройки.Структура Цикл
            ГруппировкаСКД.Использование = ?(ГруппировкаСКД.Имя = ИмяГруппировки, Истина, Ложь);
        КонецЦикла;
    
        УстановитьПривилегированныйРежим(Истина);
        //Вывод
        КомпоновщикМакетаКомпоновкиДанных = Новый КомпоновщикМакетаКомпоновкиДанных();
        Макет = КомпоновщикМакетаКомпоновкиДанных.Выполнить(СКД, КомпоновщикНастроек.ПолучитьНастройки(),,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
        ВыводВКоллекциюЗначений = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений();
        ВыводВКоллекциюЗначений.УстановитьОбъект(ДеревоЗначенийРезультат);
        ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных();
        ПроцессорКомпоновкиДанных.Инициализировать(Макет,,, Истина);
        ВыводВКоллекциюЗначений.Вывести(ПроцессорКомпоновкиДанных);
       
        УстановитьПривилегированныйРежим(Ложь);
       
        Если ЗначениеЗаполнено(Поставщик) Тогда
            КомпоновщикНастроек.Настройки.Отбор.Элементы.Удалить(ЭлементОтбораПоставщик);
        КонецЕсли;
       
        Если ЗначениеЗаполнено(Магазин) Тогда
            КомпоновщикНастроек.Настройки.Отбор.Элементы.Удалить(ЭлементОтбораМагазин);
        КонецЕсли;
       
        Если ИспользоватьУпаковки Тогда
            ДеревоЗначенийРезультат.Колонки.КЗаказуКоличество.Имя = "КЗаказуНеИспользовать";
            ДеревоЗначенийРезультат.Колонки.КЗаказуКоличествоВУпаковках.Имя = "КЗаказуКоличество";
        КонецЕсли;
       
        ДеревоФормы = РеквизитФормыВЗначение("Результат");
        ДеревоФормы.Строки.Очистить();
        ПолучитьСтрокиДерева(ДеревоФормы, ДеревоЗначенийРезультат);
        ЗначениеВРеквизитФормы(ДеревоФормы, "Результат");
    
  2. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Предполагаю что здесь.
    --- Объединение сообщений, 28 апр 2014 ---
    Темы дублировать не надо.
  3. TopicStarter Overlay
    jimbo28
    Offline

    jimbo28

    Регистрация:
    28 апр 2014
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    исходя из того, что ВыводВКоллекциюЗначений является экземпляром ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений(), назревает вопрос: как этот самый процессор получает значения, если он вроде как для компоновки нужен?.. а если я не прав, то в какую сторону копать, чтобы найти код этого самого "метода"?

    приношу извинения за дубль, побоялся, что в этом разделе тема не будет замечена-Angelic-
  4. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    У вас же в процедуру схема СКД передается (СКД = ПолучитьИзВременногоХранилища(АдресСхемыКомпоновкиДанных);).
    Т.е. в конфигурации должен быть макет СКД.
    Вероятнее всего он расположен в том же объекте метаданных, в котором расположена эта процедура, либо в общих макетах.
    Вот этот макет СКД и смотрите.
    jimbo28 нравится это.
  5. TopicStarter Overlay
    jimbo28
    Offline

    jimbo28

    Регистрация:
    28 апр 2014
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Макет СКД был найден в этом же объекте. Естественно, в этом макете лежит и код для получения результатов. Спасибо за помощь! -Happy-
  6. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    не за что.

Поделиться этой страницей