|
Это вообще можно? |
☑ |
0
zakidonoff
23.04.12
✎
13:12
|
Хочу динамически менять тип в поле формы.
По умолчанию стоит текст.
Мне нужно по событию изменить тип поля на Тип("СправочникСсылка.Контрагенты")
Делаю так:
Массив = Новый Массив;
Массив.Добавить(Тип("СправочникСсылка.Контрагенты"));
ЭлементыФормы.ПолеПоиска.Данные = Неопределено;
ЭлементыФормы.ПолеПоиска.ТипЗначения = Новый ОписаниеТипов(Массив);
ЭлементыФормы.ПолеПоиска.Данные = ПолеПоиска;
ПолеПоиска = Новый (Массив[0]);
Ессно, не работает, ибо сам реквизит ПолеПоиска по-прежнему имеет текстовый тип.
Поскольку данные ПолеПоиска являются реквизитом самой формы, задался вопросом, а к описанию типов самого реквизита формы вообще можно как-нибудь докопаться? И изменить динамически в коде? Али нет.
|
|
1
Wobland
23.04.12
✎
13:12
|
не вчитывался. присвоить данным пустое значение нужного типа уже пробовал?
|
|
2
Ненавижу 1С
гуру
23.04.12
✎
13:13
|
сделай тип составным
|
|
3
Ranger_83
23.04.12
✎
13:13
|
Связь по типу не предлагать?
|
|
4
ShoGUN
23.04.12
✎
13:17
|
(0) У реквизита формы можно вообще установить тип "Произвольный", тогда можно менять текущий тип тупо присваивая значение.
|
|
5
zakidonoff
23.04.12
✎
13:27
|
(1) Для этого нужно, чтобы поле содержало тип присваиваемого пустого значения.
(2) Как вариант можно. Но тогда придется менять ещё пару существующих процедур, дабы не смущать юзверя диалогами о выборе типа данных. В общем-то, если ответ на вопрос будет "нет", так и сделаю.
(3) Вообще дебри =)
(4) У реквизита установить произвольный тип, а у элемента формы - нужный?
И что, проканает? =)
Ща попробую...
|
|
6
zakidonoff
23.04.12
✎
13:30
|
(4) Работает почти как надо.
Спб =)
Понедельник, бессонные ночи выходных =)
|
|
7
alexhtn
23.04.12
✎
13:31
|
У элементов формы есть свойство "ОграничениеТипа"
|
|
8
zakidonoff
23.04.12
✎
13:41
|
(7) Никогда его не использовал раньше.
Суть,как я понимаю, в том, чтобы установив у реквизита произвольный тип, манипулировать в коде этим свойством, просто "закидывая" туда нужные в данном месте?
|
|
9
alexhtn
23.04.12
✎
13:54
|
Еще необходимо привести значение
ЭлементыФормы.ДокументПередачи.Значение = ЭлементыФормы.ДокументПередачи.ОграничениеТипа.ПривестиЗначение(ДокументПередачи);
|
|
10
zakidonoff
23.04.12
✎
14:48
|
(9) О сенкс. А то-то я смотрю - не работает =)
|
|
11
hhhh
23.04.12
✎
14:51
|
(10) вы просто перепутали Данные и Значение
|
|
12
zakidonoff
23.04.12
✎
15:23
|
Полетело. Всем спасибо.
Ограничение типа сокращает код процентов на тридцать.
alexhtn, отдельно благодарствую =)
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший