Имя: Пароль:
1C
 
8.2 Как программно добавить на форму поле надписи?
0 Aswed
 
07.12.10
16:42
И прописать в ней какая процедура должна выполняться при нажатии?
1 Aswed
 
07.12.10
16:42
Пытаюсь так:

   Элементы.Добавить("Тест", Тип("Строка"), Элементы.ГруппаДЦ);


Ругается что нельзя изменять состав. о_0
Хотя галочка "Изменении состава" стоит.
2 mikecool
 
07.12.10
16:44
а тип точно текст?
3 Aswed
 
07.12.10
16:45
(2) А фиг его знает. Я в первый раз пытаюсь такое сделать:)
4 mikecool
 
07.12.10
16:49
а так
НоваяНадпись = Элементы.Добавить("Надпись1", Тип("ДекорацияФормы"))
?
5 Abs4
 
07.12.10
16:50
(0) поле надписи или декорацию-надпись?
6 Aswed
 
07.12.10
16:52
(4) Всё равно ругается.
"Изминение состава элементов не доступно." о_0

Я уже на движок грешу.
7 Aswed
 
07.12.10
16:53
(5) Не принципиально. Можно поле можно декорацию.
8 Aswed
 
07.12.10
16:54
Можно и вручную эти кнопки конечно добавить, но как то лениво)
Хочу автоматом понасабачить)
9 Abs4
 
07.12.10
16:54
(7) если поле надписи то должен быть связанный реквизит, если декорацию то можно и без реквизита
кстати на сервере делаешь?
10 Dem1urg
 
07.12.10
16:54
Вот так точно работает

ДобавляемыеРеквизиты = Новый Массив();
Реквизит = Новый РеквизитФормы(СтрРеквизит.ИмяРеквизитаЗначение, ТипЗначенияСвойства, , СтрРеквизит.Наименование, Истина);
ДобавляемыеРеквизиты.Добавить(Реквизит);
Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
11 Aswed
 
07.12.10
16:56
(9) Не, на клиенте конечно же.
(10) Ща попробую.
12 Abs4
 
07.12.10
16:56
(11) так попробуй на сервере:)
13 Dem1urg
 
07.12.10
16:57
В (10) создали реквизит, потом создаем связанный с ним элемент формы

Элемент = Форма.Элементы.Добавить(СтрРеквизит.ИмяРеквизитаЗначение, Тип("ПолеФормы"), ГруппаФормы);
Элемент.Вид = ВидПоляФормы.ПолеВвода;
Элемент.ПутьКДанным = СтрРеквизит.ИмяРеквизитаЗначение;

Если нужна просто надпись, то можно так

Элемент = Форма.Элементы.Добавить(СтрРеквизит.ИмяРеквизитаПредставление, Тип("ДекорацияФормы"), ГруппаФормы);
Элемент.Заголовок = "Текст заголовка";
14 Dem1urg
 
07.12.10
16:58
А вообще в типовой УТ 11 можно посмотреть. Там свойства элемента выводятся на форму программно.
15 Aswed
 
07.12.10
16:58
(10) Что сеть "ТипЗначенияСвойства"?
16 Dem1urg
 
07.12.10
16:59
Тип реквизита. Который Тип(ИмяТипа).
17 Abs4
 
07.12.10
16:59
если у тебя просто текст, нет смысла добавлять реквизит как в (10), должна добавляться декорация так:
Элементы.Добавить("Тест",Тип("ДекорацияФормы"),Элементы.ГруппаДЦ);
18 Dem1urg
 
07.12.10
17:00
(17) Ну собственно я в (13) об этом написал.
19 Aswed
 
07.12.10
17:03
Блин да что за фигня такая. Всё равно пишет "Изминение состава элементов не доступно."

Где что донастроить нужно?
20 Aswed
 
07.12.10
17:04
Создал простую обработку. Вот на её формой и ставлю эксперименты.
21 Abs4
 
07.12.10
17:04
(19) на сервере попробовал? у меня на сервере работает
22 acsent
 
07.12.10
17:04
Галочка "Разрешить изменять форму" стоит?
23 Aswed
 
07.12.10
17:05
Уже и движок обновил до 8.2.12.80, всё равно матюкается.
24 Aswed
 
07.12.10
17:05
(21) Ща попробую.
(22) Да.
25 Dem1urg
 
07.12.10
17:06
Я никаких флажков на форме не менял. Сам код выполняется на сервере. Вызывается из ПриСозданииНаСервере, в процедуру передают контекст формы и объекта, примерно так

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   РаботаСоСвойствами.ЗаполнитьСвойстваНаФорме(ЭтаФорма, Объект, "ГруппаСвойства");
КонецПроцедуры
26 Aswed
 
07.12.10
17:07
о_0 так это НАСЕРВЕРЕ должно работать!? 0_0

Блин, не ожидал. Совсем не ожидал.
27 Aswed
 
07.12.10
17:07
+ 26 Когда стал запускать процедуру НаСервере всё закрутилось.
Спасибо всем большое за помоСЧ:)
28 Dem1urg
 
07.12.10
17:08
(26) Почему? Создание формы происходит на сервер. На клиент она передается уже в готовом виде.
29 Dem1urg
 
07.12.10
17:08
(27) Погляди УТ 11. Там много разных интересных вещей можно подсмотреть.
30 Aswed
 
07.12.10
17:10
(29) Нету под рукой) А скачивать сейчас времени нету.
31 acsent
 
07.12.10
17:14
(30) Конечно прыгать надо, зачем думать
32 Aswed
 
07.12.10
18:23
(31) Нет. Зачем покупать? Что бы посмотреть как кнопочки выводятся?:)
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой