|
Программное добавление элементов | ☑ | ||
---|---|---|---|---|
0
art93
25.06.15
✎
07:43
|
Программно добавляю элементы на форму. Не получается добавить КнопкуВыбора к полю.
|
|||
1
Cyberhawk
25.06.15
✎
07:47
|
Что за кнопка выбора? Покажи на картинке
|
|||
2
art93
25.06.15
✎
07:53
|
Вот ссылка на картинку https://cloud.mail.ru/public/EPv5/1WeAEpCEd
Нужно добавить программно к полю обе кнопки |
|||
3
art93
25.06.15
✎
07:55
|
Само поле вот так добавлено
&НаСервере Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт Элемент = Форма.Элементы.Добавить("ПутьКФайлу",Тип("ПолеФормы"),); Элемент.ПутьКДанным ="Объект.ПутьКФайлу"; Элемент.Вид = ВидПоляФормы.ПолеВвода; Элемент.Видимость = Истина; Элемент.ТолькоПросмотр = Истина; Элемент.РастягиватьПоГоризонтали = Истина; Элемент.ГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Право; КонецПроцедуры |
|||
4
art93
25.06.15
✎
08:05
|
Кто то знает? Какие мысли?
|
|||
5
patria0muerte
25.06.15
✎
08:05
|
Элемент.КнопкаВыбора = Истина
|
|||
6
icipher
25.06.15
✎
08:07
|
Элемент.КнопкаОткрытия = Истина;
|
|||
7
art93
25.06.15
✎
08:07
|
Нет. Я пробовал. Ошибка: Поле объекта не обнаружено (КнопкаВыбора)
|
|||
8
art93
25.06.15
✎
08:12
|
И с кнопкой открытия так же.
|
|||
9
patria0muerte
25.06.15
✎
08:15
|
А когда выполнял:
Элемент.КнопкаВыбора = Истина ? До "Элемент.Вид = ВидПоляФормы.ПолеВвода" или после? |
|||
10
art93
25.06.15
✎
08:19
|
УРА! спасибо! добавлял до, поэтому и выдавало
|
|||
11
art93
25.06.15
✎
08:23
|
А ещё подскажет кто то, как добавить событие на эту кнопку. Я не программно всё реализовал, всё работает и вот теперь перевожу.
|
|||
12
patria0muerte
25.06.15
✎
08:27
|
УстановитьДействие("ИмяПроцедуры")
|
|||
13
ЧеловекДуши
25.06.15
✎
08:30
|
(0) Можно, я разрешаю.
На УФ это реализовывается через Сервер. В Толстом, можно как хочешь, когда хочешь и где хочешь :) |
|||
14
icipher
25.06.15
✎
08:33
|
Элемент.УстановитьДействие("НачалоВыбора", "ИмяПроцедуры");
|
|||
15
art93
25.06.15
✎
08:33
|
Спасибо, а можно уточнить, а как поймёт к какой кнопке? Как выглядит точный код
|
|||
16
art93
25.06.15
✎
08:34
|
Спасибо!
|
|||
17
ЧеловекДуши
25.06.15
✎
08:37
|
(11) Процедура должна быть уже в Модуле Формы.
КомПанель = Форма.КоманднаяПанель; Команды = Форма.Команды; пЭлементСосед = Форма.Элементы.Найти("ФормаСоздатьНаОсновании"); Если пЭлементСосед = Неопределено Тогда пЭлементСосед = Форма.Элементы.Найти("ФормаПроведение"); КонецЕсли; пЭлемент = Форма.Элементы.Найти("ФормаГруппаВыгрузкиAPI_ТК"); Если пЭлемент = Неопределено Тогда пЭлемент = Форма.Элементы.Вставить("ФормаГруппаВыгрузкиAPI_ТК",Тип("ГруппаФормы"),КомПанель,пЭлементСосед); пЭлемент.Вид = ВидГруппыФормы.ГруппаКнопок; пЭлемент.Видимость = Ложь; //тут надо скрыть, т.к. при открытии новой формы незачем показывать //Группа подменю пЭлементОснПодменю = Форма.Элементы.Вставить("ОснПодменюAPI_ТК",Тип("ГруппаФормы"),пЭлемент); пЭлементОснПодменю.Вид = ВидГруппыФормы.Подменю; пЭлементОснПодменю.Заголовок = "Выгрузка ТК"; пЭлементОснПодменю.Видимость = Истина; пЭлементОснПодменю.Доступность = Истина; //Команда выгрузки... НашаКоманда = Команды.Найти("ОбработкаAPI_ТК_ВыгрузкаДок"); Если НашаКоманда = Неопределено Тогда НашаКоманда = Команды.Добавить("ОбработкаAPI_ТК_ВыгрузкаДок"); НашаКоманда.Заголовок = "Выгрузить в Личный кабинет ТК"; НашаКоманда.Подсказка = "Выгрузить в Личный кабинет ТК"; НашаКоманда.Действие = "ОбработкаAPI_ТК"; //Процедура (Команда) в модуле формы КонецЕсли; |
|||
18
ЧеловекДуши
25.06.15
✎
08:37
|
(15) Жесть, ну ты и спросил. Как напишешь, так и полетит :)
|
|||
19
art93
25.06.15
✎
11:25
|
Программное добавление табличной части на форму
- таблица ПО (продаваемого, сопровождаемого, список курсов для учебного центра) – колонки в таблице: номенклатура, серия, количество, сумма Как добавляю элементы писал выше,а с табличной частью не могу разобраться, кто подскажет? |
|||
20
patria0muerte
26.06.15
✎
04:02
|
(19) Так же, если не ошибаюсь..
Элемент = Форма.Элементы.Добавить("имяТаблицы",Тип("ТаблицаФормы"),); // Добавил таблицу Колонка = Форма.Элементы.Добавить("ИмяКолонки",Тип("ПОлеФормы"),); //Добавляешь элемент Колонка.Родитель = Элемент; //Указываешь, что это колонка таблицы |
|||
21
Лодырь
26.06.15
✎
04:49
|
(19) Хороший пример программного создания и работы с таблицами есть в типовых конфах в документе установка цен.
|
|||
22
Рэйв
26.06.15
✎
05:29
|
(0)А зачем тебе именно программно? Конфигуратор жмет что ли?
|
|||
23
Лодырь
26.06.15
✎
05:43
|
(22) А зачем в типовых используется программное добавление элементов? Наверное разработчикам "жмет конфигуратор"?
|
|||
24
Рэйв
26.06.15
✎
05:53
|
(23)Скорее всего затем, что в зависимости от условий нужно динамически создавать разные элементы.
Но судя по тому что ТС хочет так создовать таб часть, что то меня гложут смутные сомнения что у него ест какие то "условия". Скорее всего он как и ты насмотрелся крутых типовых:-) |
|||
25
Рэйв
26.06.15
✎
05:54
|
+ и теперь лепит динамическое создание к месту и не к месту
|
|||
26
Галахад
гуру
26.06.15
✎
06:05
|
Вот неплохая штука
http://www.develplatform.com/p/blog-page_14.html Удобно. Захватил объект. Добавил чего надо. Получил программный код. Отменил захват. Захватил по новой. Добавил код. Зафиксировал. |
|||
27
Лодырь
26.06.15
✎
07:21
|
(25) К примеру, программно создавать элементы можно так же в случае необходимости добавить новые реквизиты на формы элементов. Проще обновлять потом. Чем не вариант?
Так что наезжать на человека не зная его резонов - зачем? |
|||
28
Рэйв
26.06.15
✎
07:47
|
(27)Так я боюсь он и сам не озвучит вескую причину:-) Молчит пока.
|
|||
29
art93
29.06.15
✎
07:39
|
Спасибо за информацию, продолжу разбираться.
Такую реализацию делаем для удобного обновления в будущем. |
|||
30
art93
29.06.15
✎
10:00
|
Не понимаю.Добавляю программно табличную часть, но ничего на форме не появляется. Вот код, прописываю его там же, где и остальные элементы(в ОбщемМодуле):
// Создание элемента формы "ТаблицаПО" с типом "Таблица формы" Элемент = Форма.Элементы.Добавить("ТаблицаПО", Тип("Таблицаформы"), СтраницаПО); Элемент.Видимость = Истина; Элемент.Высота = 0; Элемент.Доступность = Истина; Элемент.Заголовок = ""; Элемент.Подсказка = ""; Элемент.Ширина = 0; // Создание элемента формы "ТаблицаПОНомерСтроки" с типом "Поле формы" Элемент = Форма.Элементы.Добавить("ТаблицаПОНомерСтроки", Тип("Полеформы"), Форма.Элементы.ТаблицаПО); Элемент.Видимость = Истина; Элемент.Высота = 0; Элемент.Доступность = Истина; Элемент.Заголовок = ""; Элемент.Подсказка = ""; Элемент.Ширина = 0; // Создание элемента формы "ТаблицаПОНоменклатура" с типом "Поле формы" Элемент = Форма.Элементы.Добавить("ТаблицаПОНоменклатура", Тип("Полеформы"), Форма.Элементы.ТаблицаПО); Элемент.Видимость = Истина; Элемент.Высота = 0; Элемент.Доступность = Истина; Элемент.Заголовок = ""; Элемент.Подсказка = ""; Элемент.Ширина = 0; // Создание элемента формы "ТаблицаПОСерия" с типом "Поле формы" Элемент = Форма.Элементы.Добавить("ТаблицаПОСерия", Тип("Полеформы"), Форма.Элементы.ТаблицаПО); Элемент.Видимость = Истина; Элемент.Высота = 0; Элемент.Доступность = Истина; Элемент.Заголовок = ""; Элемент.Подсказка = ""; Элемент.Ширина = 0; // Создание элемента формы "ТаблицаПОКоличество" с типом "Поле формы" Элемент = Форма.Элементы.Добавить("ТаблицаПОКоличество", Тип("Полеформы"), Форма.Элементы.ТаблицаПО); Элемент.Видимость = Истина; Элемент.Высота = 0; Элемент.Доступность = Истина; Элемент.Заголовок = ""; Элемент.Подсказка = ""; Элемент.Ширина = 0; // Создание элемента формы "ТаблицаПОСумма" с типом "Поле формы" Элемент = Форма.Элементы.Добавить("ТаблицаПОСумма", Тип("Полеформы"), Форма.Элементы.ТаблицаПО); Элемент.Видимость = Истина; Элемент.Высота = 0; Элемент.Доступность = Истина; Элемент.Заголовок = ""; Элемент.Подсказка = ""; Элемент.Ширина = 0; Может кто то знает возможную причину? А то мучаюсь и никакого толку не выходит. |
|||
31
Тихий омут
29.06.15
✎
10:07
|
(30) думаю, что стОит указать путь к данным у добавляемых элементов; для элементов, не связанных с данными (кнопка, например) такое требование вроде предъявляется к наличию команды
|
|||
32
art93
29.06.15
✎
10:20
|
Да, точно, затупил.
|
|||
33
art93
29.06.15
✎
10:26
|
Добавил руками то же самое и по этому делаю, пытаюсь установить соответствие данных с реквизитами, как для остальных полей делал,
Но выдаёт ошибку {ОбщийМодуль.ДоговораОбщегоНазначенияСервер.Модуль(128)}: Ошибка при установке значения атрибута контекста (ПутьКДанным) Элемент.ПутьКДанным ="Объект.ТаблицаПО.НомерСтроки"; по причине: Недопустимое значение // Создание элемента формы "ТаблицаПО" с типом "Таблица формы" Элемент = Форма.Элементы.Добавить("ТаблицаПО", Тип("Таблицаформы"), СтраницаПО); Элемент.ПутьКДанным ="Объект.ТаблицаПО"; Элемент.Видимость = Истина; Элемент.Высота = 0; Элемент.Доступность = Истина; Элемент.Заголовок = ""; Элемент.Подсказка = ""; Элемент.Ширина = 0; // Создание элемента формы "ТаблицаПОНомерСтроки" с типом "Поле формы" Элемент = Форма.Элементы.Добавить("ТаблицаПОНомерСтроки", Тип("Полеформы"), Форма.Элементы.ТаблицаПО); Элемент.ПутьКДанным ="Объект.ТаблицаПО.НомерСтроки"; Элемент.Видимость = Истина; Элемент.Высота = 0; Элемент.Доступность = Истина; Элемент.Заголовок = ""; Элемент.Подсказка = ""; Элемент.Ширина = 0; Для строки "Элемент.ПутьКДанным ="Объект.ТаблицаПО";" выдаётся та же ошибка |
|||
34
art93
29.06.15
✎
11:22
|
Не понятно в чём было дело, сходил на обед, и всё заработало, когда вернулся. Табличная часть добавлена.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |