![]() |
|
Критерии отбора - как прочитать состав? | ☑ | ||
---|---|---|---|---|
0
RomaH
naïve
28.01.11
✎
07:40
|
Задача - надо узнать список реквизитов которые содержат "документ основание"
т.е. На основании заказа вводится реализация у реализации есть реквизит "Заказ" этот реквизит упомянут в критерии отбора "Связанные документы" вот только как его оттуда выцепить исходные данные - только то что ищем для реализации основание типа заказ |
|||
1
Рэйв
28.01.11
✎
07:55
|
КритерииОтбораМенеджер (FilterCriteriaManager)
Элементы коллекции: КритерийОтбораМенеджер Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются менеджеры критериев отбора. Возможно обращение к менеджеру критерия отбора посредством оператора [...]. В качестве аргумента передается имя критерия отбора, как оно задано в конфигурации. Свойства: <Имя критерия отбора> Описание: Предназначен для управления критериями отбора и предоставляет доступ к значениям типа КритерийОтбораМенеджер. Доступ к объекту осуществляется через свойство глобального контекста КритерииОтбора. Возможен обмен с сервером. Пример: Форма = КритерииОтбора.Контрагенты.ПолучитьФорму("ОсновнаяФорма"); См. также: Глобальный контекст, свойство КритерииОтбора |
|||
2
Рэйв
28.01.11
✎
07:57
|
+(1)Хотя нет.Это перебираются сами критерии.
|
|||
3
RomaH
naïve
28.01.11
✎
08:16
|
СоставКритерияОтбора = Метаданные.КритерииОтбора.СвязанныеДокументы.Состав;
- тут не нашел нужного есть вроде как имя реквизита и что он содержит, но вот каком документу пренадлежит - не понятно |
|||
4
RomaH
naïve
28.01.11
✎
08:32
|
ладно, а как тип привести к метаданным? или наоборот?
есть реквизит составного типа есть КоллекцияЗначенийСвойствМетаданных как проверить пересечение? |
|||
5
Axel2009
28.01.11
✎
09:11
|
выбрать ссылка из критерииотбора.структураподчиненности(&реализация) где ссылка ССЫЛКА документ.заказпокупателя
|
|||
6
RomaH
naïve
28.01.11
✎
09:14
|
(5) это что? ... что вернет в итоге?
|
|||
7
Aprobator
28.01.11
✎
09:17
|
(4)
|
|||
8
Axel2009
28.01.11
✎
09:20
|
не то что нужно.
|
|||
9
RomaH
naïve
28.01.11
✎
09:22
|
Для Каждого РеквизитДокумента Из МетаданныеДокумента.Реквизиты Цикл
Для Каждого ТипЗначенияРеквизита Из РеквизитДокумента.Тип.Типы() Цикл Если ТипЗначенияРеквизита = ТипЗнч(Истина) ИЛИ ТипЗначенияРеквизита = ТипЗнч(" ") ИЛИ ТипЗначенияРеквизита = ТипЗнч(1) ИЛИ ТипЗначенияРеквизита = ТипЗнч('00010101') Тогда Продолжить; КонецЕсли; ДокументСсылка = Новый(ТипЗначенияРеквизита); Если МетаданныеДокумента.ВводитсяНаОсновании.Содержит(ДокументСсылка.Метаданные()) Тогда СписокРеквизитов.Добавить(РеквизитДокумента.Имя); Прервать; КонецЕсли; КонецЦикла; КонецЦикла; через ВводитсяНаОсновании ограничиваю список но про критерий отбора все же интересно - как достучаться до "реального" состава |
|||
10
Aprobator
28.01.11
✎
09:30
|
|
|||
11
Aprobator
28.01.11
✎
09:46
|
хм - а вообще чудно. Реально состава не видно.
|
|||
12
RomaH
naïve
28.01.11
✎
09:46
|
(10) и как оттуда узнать "подчиненный" документ?
имя реквизита - вижу, тип - вижу - а чей реквизит? |
|||
13
Aprobator
28.01.11
✎
09:52
|
о через ж..., но нашел.
|
|||
14
Aprobator
28.01.11
✎
10:14
|
хм - нет, мимо (
|
|||
15
НЕА123
28.01.11
✎
11:14
|
как-то так:
Для каждого Эл из Метаданные.КритерииОтбора.алш_ПриложенияКДоговоруПоОбъектам.Состав Цикл Сообщить(Эл.Родитель().Родитель()); КонецЦикла; |
|||
16
Axel2009
28.01.11
✎
11:17
|
(15) а эту функцию вы уже в платформу добавили? а 1с в курсе про это? =)
|
|||
17
НЕА123
28.01.11
✎
11:29
|
(16)
в (15) пример для доступа к доку, если реквизит из ТЧ. |
|||
18
RomaH
naïve
28.01.11
✎
12:21
|
(17) метода Родитель() у КоллекцияЗначенийСвойствМетаданных нет
|
|||
19
НЕА123
28.01.11
✎
12:25
|
(18)
8.2.11.235, режим совместимости. есть. |
|||
20
RomaH
naïve
28.01.11
✎
12:52
|
(19) где?
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции. Методы: Количество (Count) Содержит (Contains) Описание: Значение такого типа имеют свойства объектов описания метаданного, хранящих множественную ссылку на другие объекты, например, "Вводится на основании" у документов. Доступность: Сервер, толстый клиент, внешнее соединение. |
|||
21
PVV65
28.01.11
✎
12:54
|
(0) Если правильно понял, что надо -
Для Каждого Элемент Из Метаданные.КритерииОтбора.СтруктураПодчиненности.Состав Цикл Если Элемент.Тип.СодержитТип(Тип("ДокументСсылка.ЗаказПокупателя")) Тогда Сообщить(Элемент.ПолноеИмя()); КонецЕсли; КонецЦикла; |
|||
22
PVV65
28.01.11
✎
12:59
|
(20) Кстати, метод Родитель() ОбъектаМетаданных есть и в 8.1.
|
|||
23
PVV65
28.01.11
✎
13:00
|
+(22) Аналогично ПолноеИмя().
|
|||
24
RomaH
naïve
28.01.11
✎
13:06
|
все, врубился - значения коллекции - объекты метаданных - типа реквизит
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |