|
ТипЗначения | ☑ | ||
---|---|---|---|---|
0
Oz11
13.12.11
✎
19:20
|
Объясните популярно, как из переменной с типом ОписаниеТипов вытянуть ее тип значения?
Новый ОписаниеТипов("справочникСсылка.Контаргенты") дает значение Контрагенты и тип ОписаниеТипов. Как сделать обратное? вытянуть из этого тип СправочникСсылка.Контаргенты? или я чего-то не понимаю? |
|||
1
Живой Ископаемый
13.12.11
✎
19:23
|
давай наоборот, ты расскажешь что тебе нужно сначала
|
|||
2
DrHiHi
13.12.11
✎
19:25
|
(1) скорее всего он хочет проверить на "СодержитТип()"
|
|||
3
Oz11
13.12.11
✎
19:29
|
(1) наверное так будет лучше. программно заполняю отбор построителя, и ввожу туда новые отборы. тип значения этого нового отбора берется из характеристики.свойстваобъектов (там есть ТипЗначения) когда программно вытягиваю этот реквизит - его тип Описаниетипов, а значение - ЗначениеСвойствОбъектов (есть такой справочник). мне необходимо как-то из этого вытянуть типЗначения (СправочникСсылка.ЗначенияСвойствОбъектов) и присвоить этот тип новому элементу отбора. вот. надеюсь хоть кому-то удалось понять хоть что-то.
|
|||
4
Живой Ископаемый
13.12.11
✎
19:29
|
ну... пусть сознается тогда... а то если я начинаю спекулировать на своем воображении, всякий раз кто-то оказывается в кожаном белье и с плеткой... других это ранит.
|
|||
5
Oz11
13.12.11
✎
19:30
|
делается это для того чтобы пользователь не выбирал каждый раз тип в отборе, а сразу получал необходимый тип
|
|||
6
Живой Ископаемый
13.12.11
✎
19:31
|
"надеюсь хоть кому-то удалось понять хоть что-то."
Не, у меня не вышло... :) Но попробуй почитать еще про XMLТипЗнч и другие функции оттуда же... |
|||
7
DrHiHi
13.12.11
✎
19:35
|
(3) у меня такое ощущение, что выйдет отличный "г@внокод" ;))
|
|||
8
unregistered
13.12.11
✎
19:40
|
ЗначениеПоУмолчаниюДляДанногоОписанияТипа = ИмеющеесяУМеняОписаниеТипа.ПривестиЗначение();
|
|||
9
Oz11
13.12.11
✎
19:42
|
так вот дело в том что нет ЗначениеПоУмолчаниюДляДанногоОписанияТипа. если в описании типов число - то сатвим число, если справочник - то ставим справочник.
|
|||
10
unregistered
13.12.11
✎
19:44
|
(9) ЗначениеПоУмолчаниюДляДанногоОписанияТипа - эта та переменная которую ты получишь. Естественно до выполнения метода ПривестиЗначение() её еще нет.
Если твоё описание типа - это описание типа числа, то в результате ты получишь ЗначениеПоУмолчаниюДляДанногоОписанияТипа = 0. Если твоё описание типа - это описание типа СправочникСсылка.Контрагенты, то в результате ты получишь ЗначениеПоУмолчаниюДляДанногоОписанияТипа = пустая ссылка на справочник Контрагенты. |
|||
11
Oz11
13.12.11
✎
19:48
|
(10) огромнейшее спасибо. вот что значит не внимательно читать синтакс помощник.
|
|||
12
DrShad
13.12.11
✎
19:52
|
(10) а если составной тип?
|
|||
13
Oz11
13.12.11
✎
19:56
|
(12) тогда ветка еще не закрыта.
|
|||
14
DrShad
13.12.11
✎
20:01
|
(13) тогда вдумчиво курим СП, сомнения выкладываем сюда, а если что не так мы дадим пинка в нужном направлении :)
|
|||
15
Oz11
13.12.11
✎
20:03
|
Выб = Рез.Выбрать();
Пока Выб.Следующий() Цикл Параметр1 = "Значение_" + СокрЛП(Выб.Ссылка); ПостроительОтчета.Отбор.Добавить(Параметр1,,Выб.Наименование); ОтборСвойств = ПостроительОтчета.Отбор.Найти(Параметр1); ТипЗначенияСвойства = Выб.Ссылка.ТипЗначения.ПривестиЗначение(); ОтборСвойств.Значение = ТипЗначенияСвойства; КонецЦикла; отрывок кода где перебираю свойства (новый элементы отбора), устанавливаю их и устанавливаю им тип. Если в ОписанииТипов составной тип - то устанавливается только один, видать тип по умолчанию. как быть? |
|||
16
DrShad
13.12.11
✎
20:04
|
а что СП пишет по этому поводу?
|
|||
17
Oz11
13.12.11
✎
20:06
|
а нет, не туда глянул. ничего не ставит - так и остается без определенного типа. СП сейчас пролистаю. минутку
|
|||
18
Oz11
13.12.11
✎
20:07
|
по методу ПривестиЗначение() ничего толкового, если не указан параметр - возвращает значение по умолчанию
|
|||
19
DrShad
13.12.11
✎
20:10
|
Если значение не передано, то выдается значение по умолчанию для данного описания типа.
|
|||
20
DrShad
13.12.11
✎
20:11
|
ОписаниеТипов (TypeDescription)
Методы: ПривестиЗначение (AdjustValue) СодержитТип (ContainsType) Типы (Types) |
|||
21
Oz11
13.12.11
✎
20:13
|
да, так и есть. но для свойства я указал составной тип (спраовчник + число). и функция ПривестиЗначение() вернула все описание типов, а не (спарвочник + число). может метод типы() поможет? но как с ним работать? даже если выужу из него типы, как их подставить отбору?
|
|||
22
DrShad
13.12.11
✎
20:15
|
а что он возвращает?
|
|||
23
DrShad
13.12.11
✎
20:15
|
Возвращаемое значение:
Тип: Массив. Массив значений типа Тип, состоящий из используемых типов. |
|||
24
Oz11
13.12.11
✎
20:15
|
верней возвращает она неопределено (ПривестиЗначение())
|
|||
25
DrShad
13.12.11
✎
20:16
|
а имея массив, можно ведь получить любой из его элементов и через ПривестиЗначение() получить что нам нужно?
|
|||
26
DrShad
13.12.11
✎
20:16
|
Типы() смотри ТИПЫ()
|
|||
27
Bober
13.12.11
✎
20:20
|
если для пользователя, то у поля ввода есть ограничение типа.
Если точно знаешь какой должен быть тип, то получается значение по-умолчанию этого типа и подставляешь в значение если оно неопределено. Можно посмотреть в типовых, например в РКО контрагент может быть, фил лицом или контрагентом в зависимости от вида операции. |
|||
28
DrShad
13.12.11
✎
20:23
|
(27) и они там таки через ОписаниеТипов() определяют какой должен быть тип? или от вида операции?
|
|||
29
Oz11
13.12.11
✎
20:43
|
всем огромное спасибо. если стоит составной тип - то подходит и неопределено на выходе, - это со слов заказчика. но мне очень интересно как отбору проставить нужный тип в такой ситуации. да, делаем Типы() и получаем массив, потом для каждого элемента массива ПривестиЗначение(), но как эти, например два значения (Число и Справочник) подставить в отбор?
|
|||
30
DrShad
13.12.11
✎
20:46
|
(29) только один из них
|
|||
31
DrShad
13.12.11
✎
20:47
|
либо отбор ставить на вхождение в список, а в списке можно выбрать значения различного типа
|
|||
32
Oz11
13.12.11
✎
20:47
|
(30) исчерпывающий ответ. )) даже добавить нечего.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |