|
Получить настройки отбора СКД | ☑ | ||
---|---|---|---|---|
0
papakarlo
29.07.17
✎
13:15
|
Суть вот в чем:
есть настройка СКД с отбором, который настроил пользователь. Нужно вытащить эти настройки отбора и опознать поля, по которым отбор настроен. Например, если СКД построено на справочнике номенклатура и отбор настроен по полю "Наименование" этого справочника, нужно вытащить название этого поля и тип. В настройках отбора это поле фигурирует в "левое значение" и имеет тип "ПолеКомпоновкиДанных". Подскажите, кто знает, есть ли возможность разыменовать это "ПолеКомпоновкиДанных" и есть ли способ вообще вытащить эти отборы из СКД. заранее спасибо |
|||
1
bodri
29.07.17
✎
14:02
|
отладчиком пройдись, там много чего можно увидеть
|
|||
2
papakarlo
29.07.17
✎
14:10
|
в отладчик то я умею. Но в этом вопросе отладчик не помогает. Тему открыл в надежде, что кто-то уже занимался этим вопросом и знает что делать
|
|||
3
Chameleon1980
29.07.17
✎
14:52
|
(2) все там помогает. Вы просто не умеете его готовить.
|
|||
4
bodri
29.07.17
✎
14:57
|
(2) Вывод СКД программно или нет?
Программно легко можно отладчиком пройти. |
|||
5
Diman000
29.07.17
✎
14:58
|
(2) Я часто занимаюсь этим вопросом и знаю что делать. Идешь в отладчик и там все смотришь. Помнить все эти многочисленные НастройкаПолейКомпоновкиДанных19Серия это к Терминатору.
Помимо ЛевоеЗначение часто бывает еще и ПравоеЗначение. Скорее всего то что вы ищете именно там. |
|||
6
echo77
29.07.17
✎
15:35
|
(0)
КомпоновщикНастроек.ПолучитьНастройки().Отбор - это коллекция. Обходишь коллекцию - видишь какие отборы установлены |
|||
7
Chameleon1980
29.07.17
✎
15:39
|
встань на коллекции жмакни, вроде, ф2 - попробуй
|
|||
8
papakarlo
29.07.17
✎
16:07
|
а я и обхожу коллекцию отбора. Написал же, что в отладчик умею. Только дело все в том, что в ЭлементеКоллекцииОтбора, поле ЛевоеЗначение имеет тип ПолеКомпоновкиДанных, а мне нужно знать, например, что это реквизит справочника номенклатура с типом, например, "СправочникСсылка.НоменклатурныеГруппы"
в этом отладчик не помогает никак. |
|||
9
papakarlo
29.07.17
✎
16:09
|
и вопрос в том, что нужно разыменовать ПолеКомпоновкиДанных, у которого есть только конструктор и более ничего.
|
|||
10
Diman000
29.07.17
✎
16:11
|
ЛевоеЗначение это всегда поле компоновки данных. Чему равно ПравоеЗначение?
|
|||
11
Diman000
29.07.17
✎
16:14
|
А, извиняюсь, невнимательно (0) прочитал. Понял теперь что тебе надо...
|
|||
12
Работающий имитатор
29.07.17
✎
16:15
|
(9) Представь себе, что это вычисляемое поле, основанное на полях набора данных - обьекта и спи спокойно.
Это Поле. Компоновки. Данных. Не более. Не стоит строить каких-то иллюзий о том, что справочник. |
|||
13
Diman000
29.07.17
✎
16:28
|
Ну похоже, что задача решаема, но придется повозиться.
Строковое представление ПолеКомпоновкиДанных из ЛевоеЗначение разложить на массив подстрок между точками. А дальше погнали, все что в первой подстроке это основные (базовые) поле СКД. Через какие-нибудь ДоступныеПоляОтбораКомпновкиДанных или просто через коллекцию Выбор по реквизиту Поле можно найти это базовое поле и узнать его тип. А дальше в метаданные и сканирование реквизитов... |
|||
14
papakarlo
29.07.17
✎
17:01
|
(13)
в конце концов именно так и сделал |
|||
15
papakarlo
29.07.17
✎
17:05
|
В общем все сделал уже, кривоватенько, но в целом работает. Всем участникам темы - спасибо за участие
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |