Имя: Пароль:
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) Невозможно. В управляемых формах координаты элементов  отсутствуют как класс.
Вообше, купите или скачайте книжку разработка управляемого интерфейса. Все дурацкие вопросы отпадут.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.