0
etc
09.12.11
✎
16:49
|
При открытии отчета добавляю дополнительные поля в запрос в СКД. Почитав порядка десятка тем нарисовал такую процедурку. Однако поля не появляются в списке доступных пользователю. Тоесть компоновщик настроек плевать хотел на:
КомпоновщикНастроек.Инициализировать(...)
Что я не учел?
ПоляЗапроса = "";
НаборДанных = СхемаКомпоновкиДанных.НаборыДанных.Адресация;
Запрос = Новый Запрос();
Запрос.Текст = "
|ВЫБРАТЬ
| Ссылка,
| Код,
| Наименование,
| ВидНумерации
|ИЗ
| Справочник.ВидыАдресныхПространств
|ГДЕ
| ВидНумерации <> ЗНАЧЕНИЕ(Перечисление.ВидыНумерацииАдресныхПространств.ПустаяСсылка)
|
|УПОРЯДОЧИТЬ ПО
| ПорядокНумерации
|";
Таб = Запрос.Выполнить().Выгрузить();
Для Каждого СтрокаТаб Из Таб Цикл
ИмяПоля = СтрЗаменить(СтрокаТаб.Наименование," ","");
ИмяПоля = "Адрес"+СтрЗаменить(ИмяПоля,"/","_");
ПоляЗапроса = ПоляЗапроса + ",
| МАКСИМУМ(ВЫБОР КОГДА АдресноеПространство.Код = """+СтрокаТаб.Код+""" ТОГДА Адрес ИНАЧЕ NULL КОНЕЦ) КАК "+ИмяПоля;
ПолеНоменклатуры = НаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
ПолеНоменклатуры.Заголовок = СтрокаТаб.Наименование;
ПолеНоменклатуры.ПутьКДанным = ИмяПоля;
ПолеНоменклатуры.Поле = ИмяПоля;
КонецЦикла;
НаборДанных.Запрос = "
|ВЫБРАТЬ
| Ссылка КАК Ячейка" + ПоляЗапроса + "
|ПОМЕСТИТЬ ВрТаб
|ИЗ
| Справочник.Ячейки.АдресацияЯчейки
|СГРУППИРОВАТЬ ПО
| Ссылка
|";
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
|
|