Имя: Пароль:
1C
1С v8
СКД: Динамическое добавление полей
0 etc
 
09.12.11
16:49
При открытии отчета добавляю дополнительные поля в запрос в СКД. Почитав порядка десятка тем нарисовал такую процедурку. Однако поля не появляются в списке доступных пользователю. Тоесть компоновщик настроек плевать хотел на:
КомпоновщикНастроек.Инициализировать(...)
Что я не учел?


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

   ПолеНоменклатуры = НаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
   ПолеНоменклатуры.Заголовок = СтрокаТаб.Наименование;
   ПолеНоменклатуры.ПутьКДанным = ИмяПоля;
   ПолеНоменклатуры.Поле = ИмяПоля;

Номенклатура конечно здесь не причем.
2 etc
 
13.12.11
20:01
^up^
3 etc
 
15.12.11
20:02
Разобрался. Нужно убрать:
   |ПОМЕСТИТЬ ВрТаб