![]() |
![]() |
![]() |
|
Назначить тип реквизиту типа "Произвольный" | ☑ | ||
---|---|---|---|---|
0
D_E_S_131
20.09.07
✎
13:00
|
В обработке есть реквизит типа "Произвольный". Этот реквизит выведен на форму как поле ввода. Хочу присвоить этому реквизиту нужное описание типов для ограничения выбора значений.
|
|||
1
zbv
20.09.07
✎
13:03
|
Курить ОграничениеТипа
|
|||
2
D_E_S_131
20.09.07
✎
13:07
|
Процедура НазначитьТипДокумента()
Если НЕ ПустаяСтрока(ФайлОбработки) Тогда ВнПечать = ВнешниеОбработки.Создать(ФайлОбработки); ДопустимыеТипыДокументов = ВнПечать.Метаданные().Реквизиты["СсылкаНаОбъект"].Тип; Док.ОграничениеТипа = ДопустимыеТипыДокументов; КонецЕсли; КонецПроцедуры Выдает: {Форма.Форма(46)}: Значение не является значением объектного типа (ОграничениеТипа) Док.ОграничениеТипа = ДопустимыеТипыДокументов; |
|||
3
zbv
20.09.07
✎
13:13
|
а док что такое?
|
|||
4
Лефмихалыч
20.09.07
✎
13:16
|
Ограничение типа - это свойство поля ввода. Надо было применять к ЭлементыФормы.ТвоеПолеВвода.ОграничениеТИпа
|
|||
5
D_E_S_131
20.09.07
✎
13:17
|
"Док" тот самый реквизит произвольного типа.
В принципе не ругается на конструкцию "ЭлементыФормы.Док.ОграничениеТипа = ДопустимыеТипыДокументов", но значение выбрать не дает и в отладчике показывает, что ТипЗнч(Док)=Неопределено. |
|||
6
D_E_S_131
20.09.07
✎
13:19
|
т.е. кнопка выбора ввиде выбора типа ("Т") и по ее нажатию ничего не происходит.
|
|||
7
Лефмихалыч
20.09.07
✎
13:19
|
(5) а галка "Выбрать тип" установлена у поля ввода?
|
|||
8
Лефмихалыч
20.09.07
✎
13:21
|
ЭлементыФормы.Док.ТипЗначения что возвращает?
|
|||
9
D_E_S_131
20.09.07
✎
13:23
|
1) "Галка" стоит;
2) Возвращает "ОписаниеТипов" |
|||
10
Лефмихалыч
20.09.07
✎
13:24
|
(9) а в этом описании хоть один тип есть?
ЭлементыФормы.Док.ТипЗначения.Типы() |
|||
11
Лефмихалыч
20.09.07
✎
13:25
|
+(10) я б на твоем месте мозга не трепал и сделал бы тип реквизиту Док "ЛюбаяСсылка, +все примитивы". Вот тогда ОграничениеТипов сработает
|
|||
12
Лефмихалыч
20.09.07
✎
13:26
|
+(11) а судя по имени реквизита, можно было сделать его тип просто "ДокументСсылка"...
|
|||
13
D_E_S_131
20.09.07
✎
13:37
|
Изначально так и делал, но хотелось проверить "универсионализм". Сейчас попробую убрать реквизит и все это реализовать через поле выбора формы.
|
|||
14
D_E_S_131
20.09.07
✎
13:59
|
Все ОК, но как сделать что бы когда значение может быть всего одного типа не выводился диалог выбора типа? Т.е. ограничение срабатывает, а ТипЗначения на устанавливается.
|
|||
15
D_E_S_131
20.09.07
✎
14:22
|
Решилось:
КолТипов = ДопустимыеТипыДокументов.Типы().Количество(); Если КолТипов = 1 Тогда НовыйТип = Новый(ДопустимыеТипыДокументов.Типы()[0]); ИмяДок = НовыйТип.Ссылка.Метаданные().Имя; ЭлементыФормы.Док.Значение = Документы[ИмяДок].ПустаяСсылка(); КонецЕсли; |
|||
16
Лефмихалыч
20.09.07
✎
14:32
|
(14)чтобы универсально было, перед началом выбора
|
|||
17
D_E_S_131
20.09.07
✎
14:48
|
Это не избавляет от необходимости выбирать тип значения в случае если тип может быть только один.
|
|||
18
Лефмихалыч
20.09.07
✎
14:52
|
(17) странно, меня избавляет...
|
|||
19
Лефмихалыч
20.09.07
✎
14:56
|
+(18) а, ну, да, не избавляет, потому, что нужно использовать не ТипЗначения, а ОграничениеТипов, это ведь именно в ограничении один тип, а в ТипЗначения - все возможные
|
|||
20
Лефмихалыч
20.09.07
✎
14:56
|
*ОграничениеТипА
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |