Имя: Пароль:
1C
 
СКД. Программное добавление поля
0 Point
 
29.11.10
10:35
Есть уже созданная схема, источником данных которой является ТЗ.
В данной ТЗ в зависимости от настроек добавляется/удаляется колонка. В схеме компоновки данных эту колонку стандартными методами добавлять не стал - хочу добавляет ее программно. Как это сделать?

Пока навоял вот это:

//---------------------------------------------
КомментарийКарточки = ЭтотОбъект.СхемаКомпоновкиДанных.НаборыДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
   КомментарийКарточки.Поле = "КомментарийКарточки";
   КомментарийКарточки.ПутьКданным = "КомментарийКарточки";
   КомментарийКарточки.Заголовок = "Комментарий в карт.";


Как сделать, чтобы это поле выводилось в отчете, как я понимаю его нужно добавить в список выбранных полей.
1 Point
 
29.11.10
10:54
Ну и где все любители СКД!!!
2 Defender aka LINN
 
29.11.10
10:57
А для нахрена такие извращения:
3 Defender aka LINN
 
29.11.10
10:57
*?
4 Point
 
29.11.10
11:01
(2)(3) А зачем мне лишняя колонка в отчете, когда она там не нужна и наоборот.
5 Defender aka LINN
 
29.11.10
11:04
(4) Эта штука называется "настройки", если что.
6 Point
 
29.11.10
11:05
(5) по подробнее пожалуйста.
7 IronDemon
 
29.11.10
11:07
Ты колонку видишь? А она есть.
8 Point
 
29.11.10
11:08
(7) Колонка есть в ТЗ, но в схеме компоновки данных она не описана.
1. Нужно выводить колонку если она есть в ТЗ
2. Не выводить колонку, если ее нет в ТЗ
9 acsent
 
29.11.10
11:15
Есть колонка в наборе данных, а есть колонка в выбранных полях
10 acsent
 
29.11.10
11:16
Если провести аналогию с ТЗ, то есть колонка ТЗ, а есть колонка табличного поля
11 Point
 
29.11.10
11:31
Ну что. Никто не добавлял в набор данных программно колонку?
12 shlyahtich
 
29.11.10
11:38
Процедура НоменклатураПриИзменении(Элемент)
   ОтчетОбъект.КомпоновщикНастроек.Настройки.Отбор.Элементы.Очистить();
   
   элОтбора = ОтчетОбъект.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   
   элОтбора.ВидСравнения    = ВидСравненияКомпоновкиДанных.Равно;
   элОтбора.ЛевоеЗначение    = Новый ПолеКомпоновкиДанных("Номенклатура");
   элОтбора.ПравоеЗначение = Номенклатура;
   
   ЭлементыФормы.Результат.Очистить();
   
   ОтчетОбъект.СкомпоноватьРезультат(ЭлементыФормы.Результат);

КонецПроцедуры
13 shlyahtich
 
29.11.10
11:39
Ошибся - это по отбору данных
14 Point
 
29.11.10
11:40
(13) да я уж вижу :)
15 shlyahtich
 
29.11.10
11:42
Используй это
ща ппроверю
ОтчетОбъект.КомпоновщикНастроек.Настройки.Выбор.Элементы.Добавить(
16 Point
 
29.11.10
11:50
Сдела проще.

1. В схему компоновки данных добавил поле (есть оно в ТЗ или нет - не важно).
2. Если выполняется условие заданное пользователем (нужно выводить данную колонку), то программно добавляем это поле в выбранные поля схемы компоновки данных:

//-----------------------------------------------
ВыбранноеПолеКомментарий = Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
   ВыбранноеПолеКомментарий.Использование = Истина;
   ВыбранноеПолеКомментарий.Заголовок = "Комментарий в карт.";
   ВыбранноеПолеКомментарий.Поле = Новый ПолеКомпоновкиДанных("КомментарийКарточки");
Независимо от того, куда вы едете — это в гору и против ветра!