СКД программно отбор в группировку

1. user1297103 21.11.22 15:07 Сейчас в теме
Всем привет, подскажите пожалуйста - нужно сформировать отчет СКД программно из одной ТЗ, но вывести 2 таблицы с разными отборами. То есть сначала таблица с одним отбором а потом с другим. Как это реализовать?

у меня вот на такой код

//Поля группировки
    Группировки = НастройкиКомпоновки.Структура;
    Группировки.Очистить();
    
    //ДОБАВЛЯЕМ АВТОМАТИЧЕСКОЕ ТЕСТИРОВАНИЕ
    Таблица = НастройкиКомпоновки.Структура.Добавить(Тип("ТаблицаКомпоновкиДанных"));
    
    //Добавляем отбор в первую группировку
    ЭлементОтбора = Таблица.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));        
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("РежимТестирования");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    
    ЭлементОтбора.ПравоеЗначение = "Автоматический режим";    
    
    ЭлементОтбора.Использование = Истина;
    
    СтрокаХарактеристика = Таблица.Строки.Добавить();
    СтрокаХарактеристика.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных")); 

//И Т Д...
Показать


ругается, хотя в подсказке 1с сама предлагает поле отбор.

Поле объекта не обнаружено (Отбор)
ЭлементОтбора = Таблица.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
По теме из базы знаний
Найденные решения
7. volkov-mv 28.11.22 02:36 Сейчас в теме
(5) Нет. Вы в таблицу добавляете группировку для строки или в колонки. Вот у объекта ГруппировкаКомпоновкиДанных есть свойство Отбор, используйте его.
user1297103; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user5300 1047 21.11.22 15:12 Сейчас в теме
(1)
ЭлементОтбораКомпоновкиДанных = НастройкиКомпоновки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбораКомпоновкиДанных.Использование = Истина;
ЭлементОтбораКомпоновкиДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВНаличииОстаток");
ЭлементОтбораКомпоновкиДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ЭлементОтбораКомпоновкиДанных.ПравоеЗначение = 500;
3. user1297103 21.11.22 15:19 Сейчас в теме
(2) Так это общие отборы, не? А мне нужны разные отборы на разные группировки.
4. volkov-mv 22.11.22 04:01 Сейчас в теме
Вы попробуйте в конструкторе СКД сделать необходимый вам отчет с отборами, а потом посмотрите где эти отборы в компоновщике настроек находятся, потом можно программно повторить то, что сделал конструктор.
5. user1297103 27.11.22 20:30 Сейчас в теме
(4) Ну получаю схему в xml. Теперь надо найти прогу которая XML преобразует в обычный код?
Прикрепленные файлы:
скдотчет.xml
7. volkov-mv 28.11.22 02:36 Сейчас в теме
(5) Нет. Вы в таблицу добавляете группировку для строки или в колонки. Вот у объекта ГруппировкаКомпоновкиДанных есть свойство Отбор, используйте его.
user1297103; +1 Ответить
8. user1297103 28.11.22 13:22 Сейчас в теме
(7)Спасибо это именно то что я искал. А если я применил отбор и нужные мне значения из колонок убрались, но сами пустые колонки остались - это можно победить?
9. volkov-mv 29.11.22 02:55 Сейчас в теме
(8) Попробуйте использовать условное оформление. Для всего отчета или для отдельных группировок.
10. user1297103 29.11.22 12:58 Сейчас в теме
(9) Спасибо. Буду пробовать. А как СКД убирает пустые ресурсы если все тоже самое через консоль делать? Он как то убирает.
11. user1297103 29.11.22 15:19 Сейчас в теме
(9)Короче все сделал. Осталось убрать пустые колонок ресурсов и все будет отлично)
Такое условное оформление не работает:
ЭлементУсловногоОформления = НастройкиКомпоновки.УсловноеОформление.Элементы.Добавить();

 ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Количество");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;

    ЗначениеПараметра = 0.1;
    ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("МаксимальнаяШирина", ЗначениеПараметра);

    ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
    ОформляемоеПоле.Поле  = Новый ПолеКомпоновкиДанных("Показатель");
    ОформляемоеПоле.Использование = Истина;

    ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
    ОформляемоеПоле.Поле  = Новый ПолеКомпоновкиДанных("Количество");
Показать

Потому что
Вот до оформления - https://yadi.sk/d/0QpA9mQjQqo2VQ
После - https://yadi.sk/d/Y967VyqLZK6YXw
12. user1297103 29.11.22 16:32 Сейчас в теме
(11)Решил все подменой исходной ТЗ. Неправильно. Но ладною Думал СКД будет более милосердна и уберет пустые ресурсы или хотя бы даст такую настройку.
6. user1297103 28.11.22 00:06 Сейчас в теме
(4) Облазил весь интернет. Добавить общий отбор - раз плюнуть. 100 примеров. А добавить отбор на конкретную группировку - тишина...
Оставьте свое сообщение

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