[РЕШЕНО] Таблицу значений в СКД с настройками

Тема в разделе "Система компоновки данных (СКД)", создана пользователем Raideres, 5 ноя 2019.

  1. TopicStarter Overlay
    Raideres
    Online

    Raideres Опытный в 1С

    Регистрация:
    9 фев 2016
    Сообщения:
    537
    Симпатии:
    1
    Баллы:
    29
    Добрый день с СКД только учусь работать
    Задачу поставил перед собою следующую
    Вывести результат Таблицы значений при помощи СКД
    Добавил на форму ТЗ для вывода результата , параметры Вода,Водоотведение,ДатаКонца,ДатаНачала

    И написал кнопку &НаСервере Процедура СформироватьНаСервере()
    Вывелось все вроде хорошо да как то неочень
    Теперь вопрос
    Я все назначил на кнопку сформировать и вывел параметры на форму а как менять то настройки СКД теперь в пользовательском режиме?

    Код:
    Запрос.УстановитьПараметр("Вода", Вода);
       Запрос.УстановитьПараметр("Водоотведение", Водоотведение);
       Запрос.УстановитьПараметр("ДатаКонца", ДатаКонца);
       Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
       РезультатЗ=Запрос.Выполнить();
    
    ТЗ = РезультатЗ.Выгрузить();
    
      
     
       КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
       ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
       ОтчетОб = РеквизитФормыВЗначение("Отчет");
       СхемаКомпоновкиДанных =ОтчетОб.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
      
       Настройки = Отчет.КомпоновщикНастроек.ПолучитьНастройки();
      
       МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);    
      
       ВнешнийНаборДанных = Новый Структура("ТЗ", ТЗ);  
       ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
      
       ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных, ДанныеРасшифровки);
      
       ДокументРезультат.Очистить();
      
       ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
       ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
       ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
    ТЗ = РезультатЗ.Выгрузить();
       ТЗ.Колонки.Добавить("Бюджет");
      ТЗ.Колонки.Добавить("Группа");
      
       КоличествоСтрок = ТЗ.Количество();
         Для Индекс = 0 По КоличествоСтрок - 1 Цикл
        
         Если Справочники.АС_КлассификацияКонтрагентов.НайтиПоРеквизиту("Договор",ТЗ[Индекс].Договор) <> Справочники.АС_КлассификацияКонтрагентов.ПустаяСсылка() Тогда
           ТЗ[Индекс].Бюджет = Справочники.АС_КлассификацияКонтрагентов.НайтиПоРеквизиту("Договор",ТЗ[Индекс].Договор).АС_Бюджеты;
           ТЗ[Индекс].Группа = Справочники.АС_КлассификацияКонтрагентов.НайтиПоРеквизиту("Договор",ТЗ[Индекс].Договор).АС_ГруппыПотребления;  
         Иначе
           Если Справочники.АС_КлассификацияКонтрагентов.НайтиПоРеквизиту("Контрагент",ТЗ[Индекс].Контрагент) <> Справочники.АС_КлассификацияКонтрагентов.ПустаяСсылка() Тогда
             ТЗ[Индекс].Бюджет = Справочники.АС_КлассификацияКонтрагентов.НайтиПоРеквизиту("Контрагент",ТЗ[Индекс].Контрагент).АС_Бюджеты;
             ТЗ[Индекс].Группа = Справочники.АС_КлассификацияКонтрагентов.НайтиПоРеквизиту("Контрагент",ТЗ[Индекс].Контрагент).АС_ГруппыПотребления;
                      
    
           Иначе
             Сообщить ("В Справочнике нет записи");
           КонецЕсли;     
         КонецЕсли;   
       КонецЦикла;  
      
        
       КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
       ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
       ОтчетОб = РеквизитФормыВЗначение("Отчет");
       СхемаКомпоновкиДанных =ОтчетОб.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
      
       Настройки = Отчет.КомпоновщикНастроек.ПолучитьНастройки();
      
       МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);    
      
       ВнешнийНаборДанных = Новый Структура("ТЗ", ТЗ);  
       ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
      
       ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных, ДанныеРасшифровки);
      
       ДокументРезультат.Очистить();
      
       ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
       ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
       ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
    
    
  2. xaysnet
    Offline

    xaysnet Опытный в 1С

    Регистрация:
    3 июн 2019
    Сообщения:
    119
    Симпатии:
    3
    Баллы:
    29
    А что стандартная компоновка СКД не угодила. Я уже не помню точно (помоему в макете компоновки можно найти параметры, именно связаный с ващей выборкой. Так вот там вам надо искать. Просто поставьте точку остановки и просмотри макет конпоновки, либо схему компоновки, они там должны быть.