Программное заполнение СКД. Поле ... не может быть использовано в группировке ...

1. MAIKL1C 22 23.01.25 16:58 Сейчас в теме
Подозреваю, потому что его нет в ресурсах, а как добавить? или не поэтому?

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    ТекстЗапроса=""; 
    ТекНастройкиКомпоновщика =КомпоновщикНастроек.Настройки;
    ТекНастройкиКомпоновщика.Структура.Очистить(); 
    СхемаКомпоновкиДанных.НаборыДанных.Очистить();  
    
    Объединение=СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхОбъединениеСхемыКомпоновкиДанных"));
    Объединение.Имя="Объединение";
    Для Каждого РН Из Метаданные.РегистрыНакопления Цикл
        ИсточникДанных = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить();
        ИсточникДанных.Имя =РН.Имя;
        ИсточникДанных.ТипИсточникаДанных = "Local";    
        НаборДанных=СхемаКомпоновкиДанных.НаборыДанных[0].Элементы.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
        НаборДанных.Имя=РН.Имя;
        НаборДанных.ИсточникДанных=ИсточникДанных.Имя;
        Группировка = ТекНастройкиКомпоновщика.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
        Группировка.Имя = РН.Имя;
        Группировка.Использование = Истина; 
        ТекстЗапроса=ТекстЗапроса+"ВЫБРАТЬ ";
        Для Каждого Измерение Из РН.Измерения Цикл          
            ТекстЗапроса=ТекстЗапроса+    РН.Имя+"."+Измерение.Имя+" КАК "+Измерение.Имя+",";            
            ПолеГруппировки = Группировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));      
            ПолеГруппировки.Использование      = Истина;
            ПолеГруппировки.Поле               = Новый ПолеКомпоновкиДанных(Измерение.Имя);
            ПолеГруппировки.ТипГруппировки = ТипГруппировкиКомпоновкиДанных.Элементы;
            ПолеГруппировки.ТипДополнения      = ТипДополненияПериодаКомпоновкиДанных.БезДополнения;             
        КонецЦикла;
        Для Каждого Ресурс Из РН.Ресурсы Цикл
            ТекстЗапроса=ТекстЗапроса+    РН.Имя+"."+Ресурс.Имя+?(РН.ВидРегистра=Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки,"Остаток","Оборот")+",";
            Поле = Группировка.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));      
            Поле.Поле               = Новый ПолеКомпоновкиДанных(Ресурс.Имя+?(РН.ВидРегистра=Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки,"Остаток","Оборот"));
           Поле.Использование=Истина;
        КонецЦикла; 
        ТекстЗапроса=Лев(ТекстЗапроса,СтрДлина(ТекстЗапроса)-1);
        ТекстЗапроса=ТекстЗапроса+"
        |ИЗ РегистрНакопления."+РН.Имя+?(РН.ВидРегистра=Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки,".Остатки(, )",".Обороты(, , , )")+" КАК "+РН.Имя;
        
        ТекстЗапроса=ТекстЗапроса+"
        |;
        |";
        НаборДанных.Запрос=ТекстЗапроса;  
        
        Прервать;
        
    КонецЦикла;
КонецПроцедуры
Показать
По теме из базы знаний
Найденные решения
2. Prikum 3 23.01.25 17:15 Сейчас в теме
(1)
потому что его нет в ресурсах
Да
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Prikum 3 23.01.25 17:15 Сейчас в теме
(1)
потому что его нет в ресурсах
Да
3. MAIKL1C 22 23.01.25 17:42 Сейчас в теме
(2) спасибо, получилось

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    ТекстЗапроса=""; 
    ТекНастройкиКомпоновщика =КомпоновщикНастроек.Настройки;
    ТекНастройкиКомпоновщика.Структура.Очистить(); 
    СхемаКомпоновкиДанных.НаборыДанных.Очистить();  
    
    Объединение=СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхОбъединениеСхемыКомпоновкиДанных"));
    Объединение.Имя="Объединение";    
    Для Каждого РН Из Метаданные.РегистрыНакопления Цикл
        ИсточникДанных = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить();
        ИсточникДанных.Имя =РН.Имя;
        ИсточникДанных.ТипИсточникаДанных = "Local";    
        НаборДанных=СхемаКомпоновкиДанных.НаборыДанных[0].Элементы.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
        НаборДанных.Имя=РН.Имя;
        НаборДанных.ИсточникДанных=ИсточникДанных.Имя;
        Группировка = ТекНастройкиКомпоновщика.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
        Группировка.Имя = РН.Имя;
        Группировка.Использование = Истина;
            Поле = Группировка.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));      
            Поле.Использование=Истина;
        ТекстЗапроса=ТекстЗапроса+"ВЫБРАТЬ ";
        Для Каждого Измерение Из РН.Измерения Цикл          
            ТекстЗапроса=ТекстЗапроса+    РН.Имя+"."+Измерение.Имя+" КАК "+Измерение.Имя+",";            
            ПолеГруппировки = Группировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));      
            ПолеГруппировки.Использование      = Истина;
            ПолеГруппировки.Поле               = Новый ПолеКомпоновкиДанных(Измерение.Имя);
            ПолеГруппировки.ТипГруппировки = ТипГруппировкиКомпоновкиДанных.Элементы;
            ПолеГруппировки.ТипДополнения      = ТипДополненияПериодаКомпоновкиДанных.БезДополнения;             
        КонецЦикла;
        Для Каждого Ресурс Из РН.Ресурсы Цикл
            ТекстЗапроса=ТекстЗапроса+    РН.Имя+"."+Ресурс.Имя+?(РН.ВидРегистра=Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки,"Остаток","Оборот")+",";
            Поле = Группировка.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));      
            Поле.Поле               = Новый ПолеКомпоновкиДанных(Ресурс.Имя+?(РН.ВидРегистра=Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки,"Остаток","Оборот"));
           Поле.Использование=Истина;
       НовыйРесурс = СхемаКомпоновкиДанных.ПоляИтога.Добавить();
        НовыйРесурс.ПутьКДанным =""+Поле.Поле;
        НовыйРесурс.Выражение =""+Поле.Поле;
        КонецЦикла; 
        ТекстЗапроса=Лев(ТекстЗапроса,СтрДлина(ТекстЗапроса)-1);
        ТекстЗапроса=ТекстЗапроса+"
        |ИЗ РегистрНакопления."+РН.Имя+?(РН.ВидРегистра=Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки,".Остатки(, )",".Обороты(, , , )")+" КАК "+РН.Имя;
        
        ТекстЗапроса=ТекстЗапроса+"
        |;
        |";
        НаборДанных.Запрос=ТекстЗапроса;  

        
    КонецЦикла;
КонецПроцедуры
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот