Имя: Пароль:
1C
1С v8
СКД выбор из группы
0 Алерон
 
08.07.15
09:46
Есть справочник ТС. У него Иерархия групп и элементов. Как в скд выбрать записи принадлежащие одной(или нескольким группам)?
1 Timon1405
 
08.07.15
09:47
отбор в группе из списка?
2 commdt
 
08.07.15
09:50
Поле В ИЕРАРХИИ (&МассивГрупп)
3 Алерон
 
08.07.15
11:33
(1) Отбор из одной группы(всего 4)
(2) если через СКД делать, то как указать значение переменной &МассивГрупп ?
4 antoneus
 
08.07.15
11:35
В параметрах поставить галку "Доступен список значений".
5 Ненавижу 1С
 
гуру
08.07.15
11:35
не надо ничего, надо в отборах в режиме предприятия указать "В группе из списка" и выбрать нужные группы, как написано в (1)
6 antoneus
 
08.07.15
11:35
А, в отборе даже проще, да.
7 Алерон
 
08.07.15
13:25
(5) мне нужно в конфигураторе в скд это сделать.
(4) а в параметрах чего?
8 Алерон
 
08.07.15
13:43
ВЫБРАТЬ
    уатТС.Наименование,
    уатТС.Ссылка,
    уатТС.Ссылка КАК Ссылка1
ИЗ
    Справочник.уатТС КАК уатТС
ГДЕ
уатТС.Ссылка В ИЕРАРХИИ (&Группа)

Если  так, то как указать в какую группу входит.
9 commdt
 
09.07.15
01:25
(8) Создай в СКД параметр Группа, и включи в пользовательские настройки. Это, кстати, будет работать быстрее, чем отбор. Если групп может быть несколько, то поставь параметру галочку "Доступен список значений".

Если не нравятся параметры (на обычных формах они не слишком красивые), то реквизит на форму, но тогда формировать отчет придется программно (см. ниже)
Для нескольких групп добавить придется таблицу значений, в которой будет выбираться список этих групп. Тогда

МассивГрупп = ТЗГруппы.ВыгрузитьКолонку("Группа");

Сам отчет на СКД с установкой произвольных параметров программно формируется так:

Процедура КнопкаВыполнитьНажатие(Кнопка)
    ТабДок = СформироватьДокумент();
КонецПроцедуры


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

КонецФункции
10 Armando
 
09.07.15
01:44
(9) >> Это, кстати, будет работать быстрее, чем отбор
почему?
11 commdt
 
11.07.15
21:08
(10) Отбор фильтрует данные уже полученные из запроса, параметры фильтруют их на этапе запроса, поэтому системе не придётся работать с лишними данными
12 Timon1405
 
11.07.15
21:10
(11) вот это поворот!
13 Armando
 
12.07.15
15:15
(11) Значит ты не умеешь правильно готовить отборы на СКД
14 commdt
 
20.07.15
11:46
(13) Хм, мы точно говорим об отборе, а не о параметрах?
Впрочем, я могу и ошибаться, поэтому интересно будет узнать, как именно функционирует отбор в СКД? (не где он задаётся, а в каком месте и на каком этапе применяется)
15 Timon1405
 
20.07.15
12:23
(14) начать изучать матчасть никогда не поздно http://its.1c.ru/db/metod8dev#content:3154:hdoc:_top
16 commdt
 
20.07.15
15:53
(15) Забавно, отбор преобразуется в параметры. Не знал, спасибо за информацию
Независимо от того, куда вы едете — это в гору и против ветра!