Имя: Пароль:
1C
1С v8
СКД, выбранные поля
, , ,
0 QuestNew
 
20.05.15
13:35
Доброго дня, уважаемые.

Програмно считываю доступные к выбору для пользователя поля в настроках: Отчет.КомпоновщикНастроек.Настройки.Структура[0].Выбор.Элементы проверяя св-во "Использование".

Вопрос: как определить, выбрал ли пользователь эти поля к выводу?
1 DirecTwiX
 
20.05.15
14:02
"Использование" как раз и отвечает за вывод поля в отчет, емнип.
2 QuestNew
 
21.05.15
08:42
(1) Отладка на живом примере опровергает это утверждение.
Св-во по указанному пути как бы регулирует доступность поля для выбора пользователем.

А мне нужно увидеть, выбрал ли пользователь его в итоге.
3 LordCMEPTb
 
21.05.15
09:15
(2) Свойство по указанному пути регулирует выбор/отсутствие данного поля в 1й группировке.
Для самого отчета надо в настройках смотреть:
КомпоновщикНастроек.Настройки.Выбор.Элементы
4 DirecTwiX
 
21.05.15
09:18
(2) Не, фигня.
ТаблицаКомпоновкиДанных.Выбор (DataCompositionTable.Selection)
ТаблицаКомпоновкиДанных (DataCompositionTable)
Выбор (Selection)
Использование:

Только чтение.
Описание:

Тип: ВыбранныеПоляКомпоновкиДанных.
Содержит набор выбранных полей таблицы.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
5 QuestNew
 
21.05.15
11:43
(3) У меня получается пустое значение, что поля не выбраны вообще.
Может быть это связано с тем, что данные состоят из трех таблиц и мне нужно выцепить настройку одной из них.
В (0) выбор таблицы осуществляется через Структура[0]
6 QuestNew
 
21.05.15
11:53
Хех, нашел в отладчике - КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[]

Осталось придумать, как находить нужный элемент ((
7 DirecTwiX
 
21.05.15
11:59
(6) Сделаешь скрин элементов в отладчике?

Находить нужный элемент при работе с СКД почти всегда только перебором всех элементов.
8 QuestNew
 
21.05.15
12:10
(7) https://drive.google.com/file/d/0B6wDpvMMiHnpaGVZbnlIVWJOaHM/view?usp=sharing
Красным выделил то, что мне нужно. Но как понять и определить, что именно этот элемент - нужный мне программно, я пока не понимаю.
9 QuestNew
 
21.05.15
12:14
Топорно обращаюсь КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[18].Элементы и нахожу все выбранные параметры, чего и требуется.

Проблема "лишь" в том, что нет уверенности, что нужная настройка всегда будет иметь индекс 18.
А как найти именно эту настройку...
Получается, нужно как-то искать по идентификатору
10 DirecTwiX
 
21.05.15
12:19
(9) По имени обычн
11 QuestNew
 
21.05.15
12:32
(10) Где же там имя?
12 LordCMEPTb
 
21.05.15
13:01
Могу предложить сначала получить настройки компоновки, а уже в них копаться, но все равно придется искать сначала по выбранным полям отчета, а затем по вложенным группам.
Получить настройки можно методом "КомпоновщикНастроек.ПолучитьНастройки()"
13 QuestNew
 
21.05.15
13:06
(12) Попробую, спасибо
14 QuestNew
 
21.05.15
13:20
(12) Забавно, если я получаю настройки и смотрю их, то Структура[0].Выбор.Элементы дает мне ответ на мой вопрос и показывает, что выбрано, а не только доступно для выбора!

Т.е. для "полученных" настроек справедливо (1) и (4), в то время как для непосредственного обращения к настройкам компоновщика способ (1) и (4) не работает.
15 DirecTwiX
 
21.05.15
13:23
(11) Последняя колонка, поместившаяся на скрине) Но судя по скрину, там лежит что-то странное.
Можно получать элемент типа ПолеКомпоновкиДанных (их как раз по имени ищут), а потом использовать Элементы.Найти(Поле)
16 QuestNew
 
21.05.15
13:26
(15) Положение спасло "ПолучитьНастройку()" в переменную, относительно которой уже работает метода (1) и (4).

Спасибо всем еще раз.