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