Имя: Пароль:
1C
1С v8
Как изменить свойство "Вид" поля формы программно?
0 Aleksey1989
 
22.11.12
12:48
Добрый день. Подскажите, пжл, как обратиться к свойству "Вид" поля формы программно? Т.е. мне, допустим, надо узнать, какой вид имеет определенное поле формы и исходя из этого выполнять определенные действия, например:
если вид = Поле флажка, то выполняется процедура1,
если вид = Поле ввода, то выполняется процедура2.
1 drcrasher
 
22.11.12
12:49
Сформулируй вопрос так, чтобы он был понятен всем
2 Aprobator
 
22.11.12
12:57
пятница завтра, а не сегодня. Есть стандартные события элемента управления. И нефиг извращаться.
3 Aleksey1989
 
22.11.12
13:46
(1) Хорошо, попробую.
У меня есть 3 поля формы, из них 2 имеют вид полле ввода, а 1 - поле флажка. Задача: поменять заголовки ТОЛЬКО у полей ввода.
4 kosts
 
22.11.12
13:49
(3) Что то в этом роде:

ТипЗнч(ЭлементыФормы.Поле1) = Тип("ПолеВвода")
5 kosts
 
22.11.12
13:50
Опиши подробнее, может можно все проще сделать.
6 Aleksey1989
 
22.11.12
13:53
(5) У меня есть поля ввода, для которых задан список выбора. Мне надо, чтобы при открытии в них по умолчанию подставлялось первое значение. Я придумал следующий код:
       Для каждого Реквизит Из ЭтаФорма.Элементы Цикл
           Если (СокрЛП(Реквизит) = "ПолеФормы") И (Реквизит.Доступность = Истина) Тогда
               //Если Реквизит.Заголовок <> "поверхностный" и Реквизит.Заголовок <> "промежуточный" и Реквизит.Заголовок <> "парабазальный"
               //    и Реквизит.Заголовок <> "споры" и Реквизит.Заголовок <> "cпоры и нити мицелия" и Реквизит.Заголовок <> "Candida"
               //    и Реквизит.Заголовок <> "Leptothrix"  и Реквизит.Заголовок <> "бластоспоры" тогда
               Если Реквизит.Вид <> ВидПоляФормы.ПолеФлажка Тогда
                   Если Реквизит.СписокВыбора.Количество()> 0 Тогда
                       ЭтаФорма[Реквизит.Имя] = "0";
                   КонецЕсли;
               конецЕсли;    
           КонецЕсли;
       КонецЦикла;
7 kosts
 
22.11.12
14:02
(6) Если полей не много 1-7 проще будет их просто просто перечислить.
ЗаполнитьЗначениеИзСписка(ПолеВвода1);
ЗаполнитьЗначениеИзСписка(ПолеВвода2);
ЗаполнитьЗначениеИзСписка(ПолеВвода3);
ЗаполнитьЗначениеИзСписка(ПолеВвода4);


Если много, то по типу или по имени (если имя одинаково начинается.

Если Лев(Поле.Имя, 9) = "ПолеВвода" Тогда
8 kosts
 
22.11.12
14:05
Еще по типу значения можно отличить

ТипЗнч(ЭлементыФормы.Поле1.Значение) = Тип("Строка")
9 Aprobator
 
22.11.12
16:20
ТипЗнч(ЭлементФормы) = Тип("ПолеФормы"); не отрабатывает?
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн