Имя: Пароль:
1C
1С v8
Добавление генерируемых элементов на генерируемые листы 1с 8.22
0 stslit
 
06.06.24
11:48
Доброго времени суток!

Есть код:

Для инд = 2 По страниц Цикл		 
		СтраницыФормы = Этаформа.ЭлементыФормы.ПанельМестаЗаказа.Страницы.Добавить(инд, инд, инд);
		ПолеРегистра = ЭлементыФормы.Добавить(Тип("Надпись"), "НадписьМесто" + Строка(инд), Истина, СтраницыФормы); 
		ПолеРегистра.Заголовок = "Что то там";
		ПолеРегистра.Ширина = 64;
		ПолеРегистра.Высота = 22;
КонецЦикла


Если вместо "СтраницыФормы" ставить "ПанельМестаЗаказа", то все появляться на первой вкладке, а нужно распределять элементы по создающимся вкладкам. Причем Все это делается на "Панели" внутри которой есть "панель", где генерируются вкладки.
Есть разбор тут https://infostart.ru/1c/articles/1118319/
и тут https://infostart.ru/1c/articles/1284403/

Как обращаться к сгенерированной странице на панели, что там разместить элементы?

Используется 1с версии 8.22
1 Волшебник
 
06.06.24
11:47
Нет такой версии 1С
2 stslit
 
06.06.24
11:55
Извиняюсь )
8.3.22
3 eklmn
 
гуру
06.06.24
11:58
СтраницыФормы = Этаформа.ЭлементыФормы.ПанельМестаЗаказа.Страницы.Добавить(инд, инд, инд);
Этаформа.ЭлементыФормы.ПанельМестаЗаказа.ТекущаяСтраница = СтраницыФормы;
...
4 stslit
 
06.06.24
12:06
Когда решил обратиться за помощью, то мозг решил подсказать решение))

ЭлементыФормы.ПанельМестаЗаказа.ТекущаяСтраница = ЭлементыФормы.ПанельМестаЗаказа.Страницы.Найти(инд);

(3) Спасибо eklmn это решение тоже работает!
5 stslit
 
07.06.24
09:42
Теперь вопрос, как обойти эти элементы, чтобы собрать с них данные?

Этот вариант не видит новосозданные элементы.

Для Каждого элемент из ЭлементыФормы Цикл
   ...
КонецЦикла
6 Смотрящий
 
07.06.24
00:57
.ПодчиненныеЭлементы
7 stslit
 
07.06.24
09:33
Спасибо (6) Смотрящий, но данный варинт не работает, пишет что нет такого метода. Даже с добалением:

ГруппаФормы = ЭлементыФормы.ПанельМестаЗаказа;

По имени могу обратиться и произвести чтение и запись генерируемого элемента ПолеВводаМестоВес5
При этом, в итераторе есть только то, что было сделано руками ПолеВводаМестоВес1.

Может как то можно обратиться к элементу по имени, где имя задаётся через переменную, что бы считать значения?
8 Волшебник
 
07.06.24
09:41
(7) Попробуйте квадратные скобки:

Объект[ИмяРеквизита]
9 stslit
 
07.06.24
09:44
Решил вопрос через метод "Найти"

элементН = ЭлементыФормы.Найти("ПолеВводаМестоСтраховка5");

Строка генерируется по известному количеству полей. Могу считать и записать. Почему их нет в итераторе ЭлементыФормы, для меня загадка. Если кто-то знает почему так, буду признателен.

P.S.
Возможно, создаётся пул элементов при запуске формы (для скорости). При генерации элементы в пул не попадают и нужно дать команду перечитать элементы для пула или что-то подобное.
10 stslit
 
07.06.24
10:41
(8) Волшебник Спасибо, так даже удобнее!

Если кто то расскажет, как работать с режимом разметки сообщений, буду признателен)