Имя: Пароль:
1C
1С v8
УФ.. Создание элементов на форме..
0 ВотОнЯ
 
07.08.11
02:00
Хочу создать элемент рамки группы на форме.. точнее несколько, в зависимости от количества строк в ТЧ документа.

В процедуре "ПриСозданииНаСервере" пишу

   Для каждого Стр из Объект.Отчеты Цикл
       Элемент = Элементы.Добавить(Тип("РамкаГруппы"),"ОтчетГруппа_"+Строка(Стр.НомерСтроки),ИСТИНА,ЭтаФорма.Элементы.СтраницаОтчеты);
   КонецЦикла;




И не проходит такой финт. Пишет "Тип неопределен(РамкаГруппы)"
как так???? Есть же тип такой....
1 Grusswelle
 
07.08.11
02:05
Новый Тип("бла-бла-бла")
2 ВотОнЯ
 
07.08.11
02:11
(1) Пишу "Новый Тип("РамкаГруппы")", система отвечает: "С помощью оператора "Новый" не могут создаваться значения примитивных типов"
3 Eugeneer
 
07.08.11
02:16
Скажите мне. никогда не понимал. нафига страдать созданием интерфейса программным методом? это особый способ мазохизма?
4 Grusswelle
 
07.08.11
02:18
(3) Онанизма. Я тоже не понимаю. :-))
5 ВотОнЯ
 
07.08.11
02:18
(3)это особый способ изучить и научиться применять на практике возможности платформы 8.2 ))))))))
Ну и еще необходимость в данной частности)))
6 Grusswelle
 
07.08.11
02:19
(5) Ты в управляемых формах что ли ТАКОЕ делаешь?!
7 Mort
 
07.08.11
02:21
(3) http://infostart.ru/public/65473/ вот пример утилиты где без создания элементов динамически не обойтись. Кстати я её допили, скоро выложу обновление, там и к ado, и к семерке и к экселю можно прицеплятся будет.
А вообще обычно такие вещи нужны чтобы доработать не совсем удобные механизмы платформы. Например, оболочки СКД для обычного режима.
8 Eugeneer
 
07.08.11
02:21
(5) ты знаешью. впервые втречаю чтобы таким способом модно было заниматся изучением 8.2. очень неординарный способ.
9 Mort
 
07.08.11
02:23
На самом деле, очень полезно. В УФ много новых методов, типа ИзменитьРеквизиты и т.п. Потратить время стоит.
10 ВотОнЯ
 
07.08.11
02:30
(9) + 100500 )) Вот и трачу )))

А по сабжу разобрался...

Чтобы посмотреть какие типы можно добавлять нужно посмотреть какие типы добавляются на форму интерактивно в режиме конфигуратора.
(группа, поле, кнопка, таблица, декорация). Только в конце надо добавить слово "Формы": ГруппаФормы, ПолеФормы, ТаблицаФормы, ДекорацияФормы.

Если у кого есть еще полезная инфа по программному управлению элементами формы (добавление, перемещение и т.д.) - буду рад если поделитесь...
11 ВотОнЯ
 
07.08.11
02:31
+(10)
остальное вроде регулируется через Элемент.Вид
12 ВотОнЯ
 
07.08.11
02:50
Япона мать! Какая красота! Все работает!!!!!!



   Для каждого Стр из Объект.Отчеты Цикл
       МассивРеквизитов = Новый Массив;
       МассивРеквизитов.Добавить(Новый РеквизитФормы("ОтчетТекст_"+Строка(Стр.НомерСтроки),Новый ОписаниеТипов("Строка"),,"Отчет"));
       ИзменитьРеквизиты(МассивРеквизитов,);
       ЭлементГруппы = Элементы.Добавить("ОтчетГруппа_"+Строка(Стр.НомерСтроки),Тип("ГруппаФормы"),ЭтаФорма.Элементы.СтраницаОтчеты);
       ЭлементГруппы.Высота = 15;
       Если ЭтаФорма.Элементы.СтраницаОтчеты.РастягиватьПоГоризонтали = ИСТИНА тогда
           ЭлементГруппы.Ширина = ЭтаФорма.Ширина;
       Иначе
           ЭлементГруппы.Ширина = ЭтаФорма.Элементы.СтраницаОтчеты.Ширина;
       КонецЕсли;
       ЭлементГруппы.Заголовок = "Группа_"+Строка(Стр.НомерСтроки);
       ЭлементГруппы.Вид = ВидГруппыФормы.ОбычнаяГруппа;
       ЭлементГруппы.Отображение = ОтображениеОбычнойГруппы.РамкаГруппы;
       ЭлементГруппы.Видимость = Истина;
       ЭлементГруппы.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Горизонтальная;
       
       ЭлементТекст = Элементы.Добавить("ОтчетТекст_"+Строка(Стр.НомерСтроки),Тип("ПолеФормы"),ЭлементГруппы);
       ЭлементТекст.ПутьКДанным = "ОтчетТекст_"+Строка(Стр.НомерСтроки);
       ЭлементТекст.Вид = ВидПоляФормы.ПолеВвода;
       ЭлементТекст.Видимость = Истина;
   КонецЦикла;
13 ВотОнЯ
 
07.08.11
03:01
Если есть еще кто живой - не подскажите как присвоить значение реквизиту формы по имени?

Дело в том, что реквизиты пронумированы динамически и следовательно через точку к ним не обратишься...

Возможно ли обратиться к реквизиту как к элементу коллекции?
Например: Объект["Реквизит_"+Строка(НекийНомер)]
14 ВотОнЯ
 
07.08.11
03:04
Уже проверил. Именно так как я описал - нельзя..

как можно?
15 ВотОнЯ
 
07.08.11
03:16
Упс.. сори.. разобрался. Затупил малеха))
надо было не Объект[бла бла бла], а ЭтаФорма[бла бла бла]..
реквизиты то создаются динамически на форме и к объекту не имеют отношения))

Похоже спатки пора)))
16 ВотОнЯ
 
07.08.11
03:58
Нигде чего то найти не могу...
Как определить\задать координаты элемента формы? Вообще возможно ли это в УФ?
17 Поручик
 
07.08.11
14:00
(16) Невозможно. В управляемых формах координаты элементов  отсутствуют как класс.
Вообше, купите или скачайте книжку разработка управляемого интерфейса. Все дурацкие вопросы отпадут.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн