Добавление надписи на страницу панели

1. HIVvich 22.07.16 13:49 Сейчас в теме
Всем привет, у меня снова небольшая проблема, пытаюсь в обычных формах добавить надпись на страницу панели:
 ЭлементНадпись = ЭлементыФормы.Добавить(Тип("Надпись"), "Тест", Истина, ЭтаФорма.Панель.Страницы.Страница1);
ЭлементНадпись.Заголовок = "Тестовая надпись";

Ругается на: ЭтаФорма.Панель.Страницы.Страница1,
ну типа везде надо писать ЭлементыФормы.ОсновнаяПанель, но у меня во-первых нет основной панели, у меня нет обращения к Панели через ЭлементыФормы, и у меня на форме несколько страниц, на одной из них мне надо будет добавлять надписи. Как быть в такой ситуации?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Xershi 1535 22.07.16 14:08 Сейчас в теме
(1) HIVvich, внимательно справку прочтите по параметру:
ЭлементыФормы.Добавить (Controls.Add)
ЭлементыФормы (Controls)
Добавить (Add)
Синтаксис:

Добавить(<Тип>, <Имя>, <Видимость>, <ПоместитьНа>)
Параметры:

<Тип> (обязательный)

Тип: Тип.
Тип добавляемого элемента управления:
Индикатор; ПолеКалендаря; Кнопка; КоманднаяПанель; Надпись; Панель; Переключатель; ПолеТабличногоДокумента; ПолеHTMLДокумента; ПолеТекстовогоДокумента; ПолеВвода; ПолеВыбора; ПолеСписка; ПолеКартинки; ПолосаРегулирования; Разделитель; РамкаГруппы; ТабличноеПоле; Флажок; ПолеГрафическойСхемы; ПолеГеографическойСхемы.
<Имя> (обязательный)

Тип: Строка.
Имя создаваемого элемента управления. Имя должно быть указано в соответствии с правилами написания имен системы 1С:Предприятие 8. В противном случае выполнение метода вызовет исключение.
<Видимость> (необязательный)

Тип: Булево.
Определяет, создавать новый элемент управления формы видимым или нет. Истина - элемент создается видимым.
Значение по умолчанию: Истина.
<ПоместитьНа> (необязательный)

Тип: Панель; ПолеТабличногоДокумента.
Определяет, какой панели формы или какому табличному документу принадлежит создаваемый элемент. Если указана панель, то добавляемый элемент размещается на текущей странице панели. Если не указан, создаваемый элемент будет принадлежать непосредственно форме.
Возвращаемое значение:

Элемент управления формы.
Описание:

Добавляет элемент управления на форму.

Доступность:

Толстый клиент.
Пример:

// Расположим на странице табличное поле
ПолеРегистра = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"),
СтрокаТаблицы.Имя,
Истина,
ЭлементыФормы.ОсновнаяПанель);
ПолеРегистра.Данные = "ДокументОбъект.Движения." + СтрокаТаблицы.Имя;

Если НЕ ЭтоНовый() Тогда
ПолеРегистра.Значение.Прочитать();
КонецЕсли;

ПолеРегистра.Верх = 30;
ПолеРегистра.Лево = 6;
ПолеРегистра.Ширина = ЭлементыФормы.ОсновнаяПанель.Ширина - 14;
ПолеРегистра.Высота = ЭлементыФормы.ОсновнаяПанель.Высота - 56;
ПолеРегистра.ТолькоПросмотр = Ложь;
ПолеРегистра.ИзменятьПорядокСтрок = Истина;
ПолеРегистра.ИзменятьСоставСтрок = Истина;

ПолеРегистра.УстановитьПривязку(ГраницаЭлементаУправления.Верх,
КоманднаяПанельРегистра,
ГраницаЭлементаУправления.Низ);
ПолеРегистра.УстановитьПривязку(ГраницаЭлементаУправления.Низ,
ЭлементыФормы.ОсновнаяПанель,
ГраницаЭлементаУправления.Низ);
ПолеРегистра.УстановитьПривязку(ГраницаЭлементаУправления.Право,
ЭлементыФормы.ОсновнаяПанель,
ГраницаЭлементаУправления.Право);

ПолеРегистра.СоздатьКолонки();

Если Метаданные.РегистрыНакопления[СтрокаТаблицы.Имя].ВидРегистра = Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки Тогда

КолонкаВидДвижения = ПолеРегистра.Колонки.Вставить(1, "Вид движения");
КолонкаВидДвижения.Имя = "ВидДвиженияРегистраНакопления";
КолонкаВидДвижения.УстановитьЭлементУправления(Тип("ПолеВвода"));
КолонкаВидДвижения.Данные = "ВидДвижения";
КолонкаВидДвижения.ЭлементУправления.КнопкаВыбора = Истина;
КолонкаВидДвижения.ЭлементУправления.ВыбиратьТип = Ложь;

КонецЕсли;

ПолеРегистра.Колонки.Регистратор.Видимость = Ложь;
ПолеРегистра.Колонки.Период.Видимость = Ложь;
ПолеРегистра.Колонки.НомерСтроки.Видимость = Ложь;


--------------------------------------------------------------------------------

Методическая информация
Показать
3. horoshevall 22.07.16 14:11 Сейчас в теме
(1) HIVvich, Установите текущую страницу и на ней разместится надпись. как-то так:
ЭлементыФормы.ОсновнаяПанель.ТекущаяСтраница = ЭлементыФормы.ОсновнаяПанель.Страницы.Печать;
	ПолеРегистра = ЭлементыФормы.Добавить(Тип("Надпись"), "Надпись1", Истина, ЭлементыФормы.ОсновнаяПанель);
11. Xershi 1535 22.07.16 14:34 Сейчас в теме
(3) horoshevall, я тоже подумал, что ха условие такое только на текущую страницу, а если их несколько. Спасибо за комментарий возьму на заметку, но врятли мне придется программно добавлять кнопки, их по нормальному делаю.
13. HIVvich 22.07.16 14:41 Сейчас в теме
(11) Xershi, да мне в итоге просто надо найти все ссылки на этот документ с других документов, я их запросом нахожу и их необходимо вывести как список ссылок, т.е. я хочу создать надписи и их в гиперссылки переделать, т.е. по сути будет, например, 5 гиперссылкой на другие документы, поэтому все так сложно.
(12) horoshevall, спасибо, получилось, я тоже как раз к этому и пришла:))) Ребята, всем спасибо!
14. horoshevall 22.07.16 14:44 Сейчас в теме
(13) HIVvich, Для такой задачи, может сделать табличную часть или табличное поле с набором ссылок? Если ссылок будет много это будет нагляднее, плюс разбираться в таком коде проще потом
15. HIVvich 22.07.16 14:58 Сейчас в теме
(14) horoshevall, хорошо, спасибо, попробую так.
4. HIVvich 22.07.16 14:11 Сейчас в теме
Да, обычно в ней и сижу, как и сейчас, но собственно, как мне добавить на определенную страницу надпись, если она доступная через ЭтаФорма.Панель, а не ЭлементыФормы.
5. HIVvich 22.07.16 14:14 Сейчас в теме
Поле объекта не обнаружено, пишет, я в отладке смотрю, через ЭлементыФормы у меня нет обращения к основной панели.
6. horoshevall 22.07.16 14:16 Сейчас в теме
(5) HIVvich, У вашей панели имя какое? Вот это имя подставляете в код вместо имени "ОсновнаяПанель". В моем случае у моей панели имя было "ОсновнаяПанель"
7. HIVvich 22.07.16 14:18 Сейчас в теме
Блин, я наверное, неправильно выразилась, извините, да и туплю немного. Вообщем, заново, у меня нет панели, как таковой, я на самой форме создала страницы, у меня их 6 штук, вся информация распределена по страницам, и вот на определенной странице мне надо вставить надпись программно.
9. horoshevall 22.07.16 14:23 Сейчас в теме
(7) HIVvich, Если у вас страницы не на панели (хотя наверное, это не страницы, а группы или что-то подобное?) то ничего не указываете в последнем 4 параметре и он разместится просто на форме. Привязками и местоположением его поставите куда конкретно нужно. Хотя и все таки - как вы страницы сделали, через какой элемент формы?
Управляемые формы это совсем другая тема
8. HIVvich 22.07.16 14:22 Сейчас в теме
В УФ есть такое:

&НаСервере
Процедура СоздатьСтраницуНаФорме(НомерСтраницы, Заголовок, Текст)
 
    Страница = Элементы.Добавить("Страница" + НомерСтраницы,
        Тип("ГруппаФормы"), Элементы.Закладки);
    Страница.Вид = ВидГруппыФормы.Страница;
    Страница.Заголовок = Заголовок;
 
    Надпись = Элементы.Добавить("Декорация" + НомерЗакладки,
        Тип("ДекорацияФормы"), Страница);
    Надпись.Вид = ВидДекорацииФормы.Надпись;
    Надпись.Заголовок = Текст;
    Надпись.РастягиватьПоВертикали = Истина;
    Надпись.РастягиватьПоГоризонтали = Истина;
    Надпись.ГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Лево;
    Надпись.ВертикальноеПоложение = ВертикальноеПоложениеЭлемента.Верх;
 
КонецПроцедуры
Показать

Только у меня обычные формы.
10. HIVvich 22.07.16 14:28 Сейчас в теме
По самой форме правой кнопкой-Добавить страницы, знаю, что УФ и обычные - разные вещи:) спасибо, я сейчас попробую как вы сказали.
12. horoshevall 22.07.16 14:36 Сейчас в теме
(10) HIVvich, Вам вот так должно подойти:
ЭтаФорма.Панель.ТекущаяСтраница = ЭтаФорма.Панель.Страницы.Страница1;
	ПолеРегистра = ЭлементыФормы.Добавить(Тип("Надпись"), "Надпись11111", Истина, ЭтаФорма.Панель);
16. killfray 11.10.16 18:00 Сейчас в теме
А в продолжении темы только обратный момент: Типовой отчет Компл автоматизации 1.1. Обычное приложение. есть панель на ней программно создаются страницы. Если создаю сам страницу, на нее добавляется все как надо. А если хочу добавить на страницу которая создается самим отчетом. т.е. штатно, мои элементы добавляются на панель а не на текущую страницу. Куда лезть уже не знаю. Могут быть какие то ограничение для страницы по элементам или что нить типа того? код отрабатывает как надо только элемент не привязывается к старнице ни в какую
17. Xershi 1535 11.10.16 19:03 Сейчас в теме
(16) killfray, насколько помню там позиция теряется или вы про это просто не знали и по итогу выходит так как вы и написали.
18. killfray 12.10.16 09:54 Сейчас в теме
(17) Xershi, Не знал) т.е. мне на эту страницу не влезть? и как понять теряется? Если я правильно все понял то обновленияОтображения крайнее что выполняется перед открытием формы.. и если там все страницы созданы. все сформировано и я на это пытаюсь добавить как что то теряется?
19. Xershi 1535 12.10.16 10:06 Сейчас в теме
(18) killfray, я не помню как это штука называется, может год назад в какой-то теме встречал, что там есть особенность при программном создании. Это вам чтобы подумать и в отладчике найти.
20. killfray 12.10.16 10:19 Сейчас в теме
(19) Xershi, за наводку спасибо) третий день шерстю отладчиком мысли уже пропали..
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот