Не отображаются программно созданные элементы на форме
Добрый день! Есть статусы, при создании нового статуса должна создаваться страница на форме и динамический список, элементы формы не отображаются. Можно ли как-то вообще посмотреть, создаются ли они? В чем может быть дело? Подскажите, пожалуйста. Заранее спасибо. Прошу терпения, я новичок.
П.С. делаю на примере рабочей формы, где эти страницы и дин списки создаются вручную, там задаются параметры:
и, если это закомментировать, то данные не выводятся, следовательно, мне это тоже нужно как-то "прикрутить", пытаюсь так:
но выдается ошибка, скрин ошибки во вложении.
Полный листинг моих экспериментов:
П.С. делаю на примере рабочей формы, где эти страницы и дин списки создаются вручную, там задаются параметры:
ЗаявлениеОВынесении.Параметры.Элементы.Получить(1).Значение = Справочники.СтатусыЗаявлениеОВынесении.НайтиПоКоду("000000001");
ЗаявлениеОВынесении.Параметры.Элементы.Получить(1).Использование = Истина;
и, если это закомментировать, то данные не выводятся, следовательно, мне это тоже нужно как-то "прикрутить", пытаюсь так:
РеквизитДинамическийСписок.Параметры.Элементы.Получить(1).Значение = Справочники.СтатусыЗаявлениеОВынесении.НайтиПоКоду(ТекСтрока.Код);
РеквизитДинамическийСписок.Параметры.Элементы.Получить(1).Использование = Истина;
но выдается ошибка, скрин ошибки во вложении.
Полный листинг моих экспериментов:
Процедура ИзменитьФорму ()
//Пробегаюсь по статусам, по каждому из которых должны создаваться страница и дин.список
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СтатусыЗаявлениеОВынесении.Ссылка КАК Ссылка,
| СтатусыЗаявлениеОВынесении.ВерсияДанных,
| СтатусыЗаявлениеОВынесении.ПометкаУдаления,
| СтатусыЗаявлениеОВынесении.Код КАК Код,
| СтатусыЗаявлениеОВынесении.Наименование КАК Наименование,
| СтатусыЗаявлениеОВынесении.КоличествоДней,
| СтатусыЗаявлениеОВынесении.Предопределенный,
| СтатусыЗаявлениеОВынесении.ИмяПредопределенныхДанных
|ИЗ
| Справочник.СтатусыЗаявлениеОВынесении КАК СтатусыЗаявлениеОВынесении";
Результат = Запрос.Выполнить();
Таблица = Результат.Выгрузить();
КоличествоСтрок = Таблица.Количество();
НомерСтраницы = 1;
Для Каждого ТекСтрока ИЗ таблица Цикл
//данные для дин.списка
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ЗаявлениеОвозбуждении.Дата,
| ЗаявлениеОвозбуждении.Номер,
| ЗаявлениеОвозбужденииа.Заемщик,
| ЗаявлениеОвозбуждении.Договор,
| ЗаявлениеОвозбуждении.Статус,
| ЗаявлениеОвозбуждении.Цена,
| ЗаявлениеОвозбуждении.ОбщаяСумма,
| ЗаявлениеОвозбуждении.СрокНорма,
| ЗаявлениеОвозбуждении.Ссылка,
| Договоры.Ссылка.НомерПоручения
|ИЗ
| Документ.ЗаявлениеОвозбуждении КАК ЗаявлениеОвозбуждении
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.Взыскание.Договоры КАК Договоры
| ПО ЗаявлениеОвозбуждении.Договор = ВзысканиеДоговоры.Договор
| И (ВзысканиеДоговоры.Ссылка.Проведен)
|ГДЕ
| ВЫБОР
| КОГДА ЗаявлениеОвозбуждении.Дата < ДАТАВРЕМЯ(2022, 1, 1)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ
| И ЗаявлениеОвозбуждении.Статус.Код = &Код";
Запрос.УстановитьПараметр("Код", ТекСтрока.Код);
ИмяСписка = "ЗаявлениеОвозбужденииТест"+ НомерСтраницы;
//Страницы
ГруппаСтраниц = ЭтаФорма.Элементы.Добавить("ГруппаСтраницы"+СтрЗаменить(xmlstring(Новый УникальныйИдентификатор),"-",""),Тип("ГруппаФормы"),Этаформа);
ГруппаСтраниц.Вид = ВидГруппыФормы.ОбычнаяГруппа;
Страница = ЭтаФорма.Элементы.Добавить("Страница"+СтрЗаменить(xmlstring(Новый УникальныйИдентификатор),"-",""), Тип("ГруппаФормы"),ГруппаСтраниц);
Страница.Вид = ВидГруппыФормы.Страница;
Страница.Заголовок = ТекСтрока.Наименование;
//Реквизит
ТипыРеквизита = Новый Массив;
ТипыРеквизита.Добавить(Тип("ДинамическийСписок"));
ОписаниеТиповДляРеквизита = Новый ОписаниеТипов(ТипыРеквизита);
ДинамическийСписок = Новый РеквизитФормы(ИмяСписка, ОписаниеТиповДляРеквизита,,"",ЛОЖЬ); //Имя реквизита
ДобавляемыеРеквизиты = Новый Массив;
ДобавляемыеРеквизиты.Добавить(ДинамическийСписок);
ИзменитьРеквизиты(ДобавляемыеРеквизиты);
РеквизитДинамическийСписок = ЭтаФорма[ИмяСписка]; //Имя реквизита
РеквизитДинамическийСписок.ПроизвольныйЗапрос = ИСТИНА;
РеквизитДинамическийСписок.ТекстЗапроса = Запрос; //передаю данные из запроса в дин. список
//Список
ТаблицаФормы = Элементы.Добавить(ИмяСписка,Тип("ТаблицаФормы"),ГруппаСтраниц);
ТаблицаФормы.ПутьКДанным = ИмяСписка;
//Заполняю
//РеквизитДинамическийСписок.Параметры.Элементы.Получить(1).Значение = Справочники.СтатусыЗаявлениеОВынесении.НайтиПоКоду(ТекСтрока.Код);
//РеквизитДинамическийСписок.Параметры.Элементы.Получить(1).Использование = Истина;
НомерСтраницы = НомерСтраницы + 1;
КонецЦикла;
КонецПроцедуры
ПоказатьПрикрепленные файлы:
По теме из базы знаний
- Таблица значений и Табличный документ на управляемой форме
- Программное создание динамического списка на управляемой форме. (Динамическое создание динамического списка). Готовая процедура + обработка - демонстрационный пример
- Программное создание реквизита управляемой формы с помощью механизма расширений
- Генерация управляемой формы на основе обычной (proof of concept)
- Процедура генерации отдельных элементов формы для даты и времени
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Понял, что вот это * мне не нужно, так как параметры задаю через Запрос.УстановитьПараметр, но не знаю, как добавить **, всплывает все та же ошибка из скрина
*
**
*
ЗаявлениеОВынесении.Параметры.Элементы.Получить(1).Значение = Справочники.СтатусыЗаявлениеОВынесении.НайтиПоКоду("000000001");
ЗаявлениеОВынесении.Параметры.Элементы.Получить(1).Использование = Истина;
**
РеквизитДинамическийСписок.Параметры.Элементы.Получить(0).Использование = Истина;
Если НЕ РеквизитДинамическийСписок.Параметры.Элементы.Найти(Имя) = Неопределено Тогда
РеквизитДинамическийСписок.Параметры.Элементы.Получить(0).Использование = Истина;
КонецЕсли;
(3)
А что по поводу отображения? Мб дело в том, что я колонки не создал, или ерунда?
Если НЕ РеквизитДинамическийСписок.Параметры.Элементы.Найти(Имя) = Неопределено Тогда
РеквизитДинамическийСписок.Параметры.Элементы.Получить(0).Использование = Истина;
КонецЕсли;
РеквизитДинамическийСписок.Параметры.Элементы.Получить(0).Использование = Истина;
КонецЕсли;
А что по поводу отображения? Мб дело в том, что я колонки не создал, или ерунда?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот