Имя: Пароль:
1C
 
СКД. Набор данных - таблица значений. Как настроить условия?
0 Галахад
 
гуру
20.07.22
12:45
Два набора данных:
   запрос
   таблица значений
Допустим в запросе
   есть выборка из справочника "Номенклатура"
   есть отборы по этому справочнику
В таблице значений тоже есть колонка "Номенклатура"

Есть возможность наложить на таблицу значений те же условия по колонке "Номенклатура", как и в запросе?
1 6awkup_true
 
20.07.22
12:55
Если связи наборов данных не устраивают, то в ПриКомпоновкеРезультата из схемы можно вытащить все условия, какие есть и использовать при формировании ТаблицыЗначений
2 6awkup_true
 
20.07.22
12:56
например так

СтандартнаяОбработка = Ложь;
    //Получаем схему
    Схема = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    
    //...и настройки
    Настройки = КомпоновщикНастроек.ПолучитьНастройки();
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    
    //Создаем компоновщик макета и получаем макет компоновки
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки, ДанныеРасшифровки);
    
    ПериодОтчета = Настройки.ПараметрыДанных.Элементы.найти("СтандартныйПериод");
3 6awkup_true
 
20.07.22
12:56
и обойти все параметры в цикле тоже можно(только на использование проверяй)
4 6awkup_true
 
20.07.22
12:59
вот полный код процедуры с внешним источником


СтандартнаяОбработка = Ложь;
    //Получаем схему
    Схема = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    
    //...и настройки
    Настройки = КомпоновщикНастроек.ПолучитьНастройки();
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    
    //Создаем компоновщик макета и получаем макет компоновки
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки, ДанныеРасшифровки);
    
ПериодОтчета = Настройки.ПараметрыДанных.Элементы.найти("СтандартныйПериод");
    
        
ТЧ= ПолучитьДанныеТЧ(ПериодОтчета.Значение.ДатаНачала, ПериодОтчета.Значение.ДатаОкончания);
        
    
    
    ВнешниеНаборыДанных = Новый Структура;
    ВнешниеНаборыДанных.Вставить("ТЧ",ТЧ);
    //Инициализируем процессор компоновки
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки, Истина);
    
    //Очищаем документ результата
    ДокументРезультат.Очистить();
    
    //Выводим отчет в документ
    ПроцессорВывода = Новый
    ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
5 Галахад
 
гуру
20.07.22
13:55
(4) О, то что надо! Спасибо.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший