0
borrman
22.02.12
✎
02:10
|
Добрый день, коллеги!
Возникла задача реализовать иерархию по характеристикам.
Суть в следующем - есть справочник Номенклатура. У него есть дополнительные реквизиты (все аналогично типовой УТ 11, например или демо - пример, который идет к конфигурации) или дополнительные характеристики (вроде так правильнее).
Это характеристики доступны в СКД в режиме предприятия через "Ссылка.". Например, есть доп. характеристика размер - он в СКД как "Ссылка.[Размер]" выбирается.
Задача в следующем - необходимо реализовать динамический список с группировкой по этом доп. характеристикам (причем их список настраивает пользователь). НО! Самое важное - не должна светиться сама ссылка на элемент справочника. Т.е. эти характеристики дополнительные должны быть как группы справочника.
Я сделал следующее:
// в парамСписокНастроек - настройка групп, например "Ссылка.[Размер]".
//
Процедура НастроитьСписокПоПредставлениюПользователя(парамСписокНастроек, парамДинамическийСписок, парамИмяДинамическогоСписка, парамФорма) Экспорт
парамДинамическийСписок.ТекстЗапроса =
"ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ЭтоГруппа";
парамДинамическийСписок.ОсновнаяТаблица = "Справочник.Номенклатура";
парамДинамическийСписок.ДинамическоеСчитываниеДанных = Истина;
парамДинамическийСписок.ПроизвольныйЗапрос = Истина;
Группировка_ = парамДинамическийСписок.Группировка;
Группировка_.Элементы.Очистить();
Для каждого ЭлементСпискаГруппировки из парамСписокНастроек Цикл
Если НЕ ЭлементСпискаГруппировки.Пометка Тогда
Продолжить;
КонецЕсли;
ПолеГруппировки = Группировка_.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
ПолеГруппировки.ТипГруппировки = ТипГруппировкиКомпоновкиДанных.Элементы;
ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных(ЭлементСпискаГруппировки.Значение);
ПолеГруппировки.Использование = Истина;
КонецЦикла;
// создаем реквизит колонки
КолонкаСсылка = парамФорма.Элементы.Добавить("_КолонкаСсылка", Тип("ПолеФормы"), парамФорма.Элементы[парамИмяДинамическогоСписка]);
КолонкаСсылка.Вид = ВидПоляФормы.ПолеНадписи;
КолонкаСсылка.ПутьКДанным = парамИмяДинамическогоСписка + ".Ссылка";
КонецПроцедуры
НО ссылки естественно выводятся. Как их убрать?
|
|