Версия для печати темы (https://pro1c.org.ua/index.php?s=c6a6de814aa14843f990536c8f229bd6&showtopic=46849)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Система компоновки данных _ Не работает отбор для набора данных объект

Автор: Destrox 25.07.18, 8:19

Здравствуйте, уважаемые форумчане! Как заставить работать отбор для набора данных - объект. В СКД есть наборы данных объединение, который объединяет наборы - запрос и набор - объект. Для данных из запросов отбор работает, а для данных из объекта нет. Отчет просто выводит все данные, которые есть в объекте, а данные из запросов согласно отбору.

Наборы данных:


Отбор:



Результат:



В 1-м столбце данные из набора-объект, а а в остальных из запросов. Должно выводить данные только по одному подразделению указанному в отборе но почему-то в 1-м столбце выводит по всем подразделениям.

Код заполнения набора данных объект написан в УПП 8.3, обычные формы:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;    
    
    
    ВнешнийНаборДанных = Новый Структура("ДанныеПоЧисленностиНабор", ПолучитьДанныеПоЧисленности());
    
    
    Настройки = КомпоновщикНастроек.ПолучитьНастройки();
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
    
        
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных, ДанныеРасшифровки, Истина);    
        
    
    ДокументРезультат.Очистить();
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);

    
    ПроцессорВывода.НачатьВывод();
    
    Пока Истина Цикл
      
        ЭлементРезультата = ПроцессорКомпоновкиДанных.Следующий();
        
        Если ЭлементРезультата = Неопределено Тогда        
          
            Прервать;
            
        Иначе
            
        
         ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
            
        КонецЕсли;
        
    КонецЦикла;
    
    ПроцессорВывода.ЗакончитьВывод();

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


Автор: Destrox 26.07.18, 10:40

Цитата(Destrox @ 25.07.18, 9:19) *
Как заставить работать отбор для набора данных - объект.

Это вопрос. Забыл вопросительный знак поставить.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua