|
Создание элемента формы программно | ☑ | ||
---|---|---|---|---|
0
Мисти
30.01.15
✎
16:36
|
Элемент = ЭтаФорма.Элементы.Добавить("Кос_ВыборЭтажа", Тип("ПолеФормы"),ГруппаЭлементы);
Элемент.Заголовок = "Этаж"; Элемент.ПутьКДанным = "Объект.Кос_Площадка"; Элемент.Вид = ВидПоляФормы.ПолеВвода; Элемент.УстановитьДействие("ПриИзменении","Кос_ВыборЭтажаОбработкаВыбора"); Элемент.УстановитьДействие("ОбработкаВыбора","Кос_ВыборЭтажаОбработкаВыбора"); |
|||
1
vicof
30.01.15
✎
16:37
|
Похвалить или поругать?
|
|||
2
EugeniaK
30.01.15
✎
16:38
|
(0) Нафига один обработчик на 2 события7
|
|||
3
Мисти
30.01.15
✎
16:38
|
Проблема вот в чем!
Если не прописать путь к данным, то элемент и не создается! (опытным путем вычислено) А по сути там данных быть не должно! При открытии происходит вот что: ЭтаФорма.Элементы.Кос_ВыборПлощадки.СписокВыбора.ЗагрузитьЗначения(ПолучитьСписокПлощадок()); ЭтаФорма.Элементы.Кос_ВыборПлощадки.Значение = Объект.Кос_Площадка; А если это уже реквизит шапки, то какое уж там значение? |
|||
4
Мисти
30.01.15
✎
16:39
|
(2) Описка! Исправлю, спасибо.
|
|||
5
GANR
30.01.15
✎
16:39
|
||||
6
Мисти
30.01.15
✎
16:47
|
Проверила еще раз, если путь к данным не прописать, то и реквизит не создается.
(5) По-моему, это не то. Тип("ПолеВыбора") спасет? |
|||
7
Мисти
30.01.15
✎
16:49
|
Не-а, говорит, вообще такого типа нет.
|
|||
8
mikecool
30.01.15
✎
16:50
|
(6) пропиши путь к данным реквизита формы объекта и будет тебе щастье
|
|||
9
mikecool
30.01.15
✎
16:51
|
+8 а так - все правильно не создается
|
|||
10
Мисти
30.01.15
✎
16:52
|
(8) Вот! И я к этому пришла, но это будет "нечестно". У меня условие - форму не трогать. Условие не от заказчика, так что в крайнем случае можно и нарушить, но неужели нет другого способа?
|
|||
11
vicof
30.01.15
✎
16:54
|
(10) 1сники вообще нечестные люди, так что можешь смело трогать
|
|||
12
EugeniaK
30.01.15
✎
16:54
|
(0) Что ты хочешь сделать?
|
|||
13
mikecool
30.01.15
✎
16:54
|
(10) да мне лично было бы пох на условие от заказчика, если его хотелку иначе не реализовать
|
|||
14
EugeniaK
30.01.15
✎
16:55
|
(3) Конечно не создается. Элемент Тип("ПолеФормы") без привязки к данным не имеет смысла.
|
|||
15
Deon
30.01.15
✎
16:57
|
(10) Реквизит формы создай сначала тоже программно. Потом используй его в программном создании элемента.
|
|||
16
Мисти
30.01.15
✎
16:58
|
Может, тип другой сделать? Какой? Мне нужно поле, в которое загружается список для выбора, потому что если обращаться непосредственно к справочнику, то там очень долго рассчитываются отборы, а показывать всё - запрещено.
|
|||
17
Мисти
30.01.15
✎
16:59
|
(15) Как?
|
|||
18
mikecool
30.01.15
✎
16:59
|
(16) создавай реквизит формы точка
|
|||
19
Deon
30.01.15
✎
17:02
|
(17) Как на картинке в (5) не получилось?
|
|||
20
mikecool
30.01.15
✎
17:05
|
(17) как то так
ГруппаКоэффициентов = Элементы.Найти("ТЗДанныеПодбораГруппаКоэффициенты"); Если Не ГруппаКоэффициентов = Неопределено Тогда Элементы.Удалить(ГруппаКоэффициентов); КонецЕсли; //создание реквизитов формы МассивРеквизитов = Новый Массив; Для Каждого СтрокаМодели Из МоделиТС Цикл ИмяРеквизита = "_" + МоделиТС.Индекс(СтрокаМодели); Если СписокДобавленныхКолонокКоэффициентов.НайтиПоЗначению(ИмяРеквизита) = Неопределено Тогда СписокДобавленныхКолонокКоэффициентов.Добавить(ИмяРеквизита); КолонкаТЗ = Новый РеквизитФормы(ИмяРеквизита, Новый ОписаниеТипов("Число"), "ТЗДанныеПодбора", ""); МассивРеквизитов.Добавить(КолонкаТЗ); КонецЕсли; КонецЦикла; Если Не МассивРеквизитов.Количество() = 0 Тогда ИзменитьРеквизиты(МассивРеквизитов); КонецЕсли; //привязка к реквизитам формы ГруппаКоэффициентов = Элементы.Добавить("ТЗДанныеПодбораГруппаКоэффициенты", Тип("ГруппаФормы"), Элементы.ТЗДанныеПодбора); ГруппаКоэффициентов.Группировка = ГруппировкаКолонок.Горизонтальная; Для Каждого СтрокаМодели Из МоделиТС Цикл Колонка = Элементы.Добавить("_" + МоделиТС.Индекс(СтрокаМодели), Тип("ПолеФормы"), ГруппаКоэффициентов); Колонка.ПутьКДанным = "ТЗДанныеПодбора._" + МоделиТС.Индекс(СтрокаМодели); Колонка.Заголовок = СтрокаМодели.МодельТС; КонецЦикла; |
|||
21
Мисти
30.01.15
✎
17:09
|
Спасибо, следующим этапом попробую!
Пока просто добавила реквизиты. Поле объекта недоступно для записи (Кос_ВыборПлощадки) ЭтаФорма.Элементы.Кос_ВыборПлощадки = Объект.Кос_Площадка; А если написать ЭтаФорма.Элементы.Кос_ВыборПлощадки.Значение - тоже ругается, Мол, нет значения. А вот этот фокус - ЭтаФорма.Элементы.Кос_ВыборПлощадки.СписокВыбора.ЗагрузитьЗначения(ПолучитьСписокПлощадок()); прекрасно отработал! |
|||
22
Мисти
30.01.15
✎
17:16
|
У меня есть реквизит документа - Кос_Площадка, в документе я хочу показать "поле для выбора" при открытии в нем должно быть сохраненное значение реквизита документа и список выбора. Список выбора попадает, а значение как туда запихнуть?
|
|||
23
Мисти
30.01.15
✎
17:26
|
Как значение-то засунуть?
|
|||
24
Мисти
30.01.15
✎
17:32
|
Эх, ну последний вопрос! (на сегодня)
|
|||
25
SUA
30.01.15
✎
17:46
|
ЭтаФорма.Кос_ВыборПлощадки
|
|||
26
SUA
30.01.15
✎
17:47
|
или проще даже
Кос_ВыборПлощадки |
|||
27
Мисти
30.01.15
✎
17:51
|
Вау!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |