Всем здравствуйте!
Нужно, чтобы на форме динамически создавались элементы поля надписи с наименованиями групп (элемент Справочника "Группы"), в которые записан ученик, по нажатию должна открываться форма выбранной группы.
Это должно быть на форме элемента справочника "Ученик"
Вот, что у меня получилось сделать:
&НаСервере
Процедура ПриОткрытииНаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| УченикиВГруппах.Группа КАК Группа
|ИЗ
| РегистрСведений.УченикиВГруппах КАК УченикиВГруппах
|ГДЕ
| УченикиВГруппах.СтатусУченика = &СтатусУченика
| И УченикиВГруппах.Ученик = &Ученик";
Запрос.УстановитьПараметр("СтатусУченика", Перечисления.СтатусУченикаВГруппе.Учится);
Запрос.УстановитьПараметр("Ученик", Объект.Ссылка);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Номер = 1;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Надпись = ЭтаФорма.Элементы.Добавить("Надпись" + Строка(Номер), Тип("ПолеФормы"), ЭтаФорма.Элементы.ГруппыУченика);
Надпись.Гиперссылка = Истина;
Надпись.ПутьКДанным = "Объект.Ссылка";
Надпись.Заголовок = ВыборкаДетальныеЗаписи.Группа.Наименование;
Номер = Номер + 1;
КонецЦикла;
КонецПроцедуры
Очевидно, при нажатии я возвращаюсь на форму, на которой и был, а не на форму группы
Вот, как это должно выглядеть:
Нужно, чтобы на форме динамически создавались элементы поля надписи с наименованиями групп (элемент Справочника "Группы"), в которые записан ученик, по нажатию должна открываться форма выбранной группы.
Это должно быть на форме элемента справочника "Ученик"
Вот, что у меня получилось сделать:
&НаСервере
Процедура ПриОткрытииНаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| УченикиВГруппах.Группа КАК Группа
|ИЗ
| РегистрСведений.УченикиВГруппах КАК УченикиВГруппах
|ГДЕ
| УченикиВГруппах.СтатусУченика = &СтатусУченика
| И УченикиВГруппах.Ученик = &Ученик";
Запрос.УстановитьПараметр("СтатусУченика", Перечисления.СтатусУченикаВГруппе.Учится);
Запрос.УстановитьПараметр("Ученик", Объект.Ссылка);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Номер = 1;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Надпись = ЭтаФорма.Элементы.Добавить("Надпись" + Строка(Номер), Тип("ПолеФормы"), ЭтаФорма.Элементы.ГруппыУченика);
Надпись.Гиперссылка = Истина;
Надпись.ПутьКДанным = "Объект.Ссылка";
Надпись.Заголовок = ВыборкаДетальныеЗаписи.Группа.Наименование;
Номер = Номер + 1;
КонецЦикла;
КонецПроцедуры
Очевидно, при нажатии я возвращаюсь на форму, на которой и был, а не на форму группы
Вот, как это должно выглядеть:
Прикрепленные файлы:

По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Или ты думал, что система вдруг по заголовку элемента сама догадается, что ей надо открывать?
Следующий!
PS. За запрос в цикле надо бить сразу, пока не вырос.
Очевидно, при нажатии я возвращаюсь на форму, на которой и был, а не на форму группы
Какой путь к данным указал - то и открывает. Ничего чудесного.
Или ты думал, что система вдруг по заголовку элемента сама догадается, что ей надо открывать?
Следующий!
PS. За запрос в цикле надо бить сразу, пока не вырос.
Предполагаю, что отсутствует событие реакции на нажатие. Примерно так как-то
Элемент.УстановитьДействие("Нажатие", "ДействиеНажатие");
&НаКлиенте
Процедура ДействиеНажатие(ВыбранныйЭлемент)
если ВыбранныйЭлемент = Элемент["Надпись1"] тогда
ОткрытьФорму(...);
КонецЕсли;
КонецПроцедуры
Показать
(4)
При открытии формы существующего объекта необходимо кроме имени формы указать также и на тот объект, форма которого должна быть открыта. Для этого используется параметр формы Ключ и ссылка на интересующий нас объект.
(с) 1С
При открытии формы существующего объекта необходимо кроме имени формы указать также и на тот объект, форма которого должна быть открыта. Для этого используется параметр формы Ключ и ссылка на интересующий нас объект.
,
ПараметрыФормы = Новый Структура("Ключ", СсылкаНаЭлементСправочника);
ОткрытьФорму("Справочник.Организации.ФормаОбъекта", ПараметрыФормы);
(с) 1С
(3) То есть наличие под гиперссылкой кривых данных тебя никак не смутило?
Каждый раз будешь писать в коде говнецо?
если ВыбранныйЭлемент = Элемент["Надпись1"] тогда
Что ТОГДА??? Для каждой возможной группы предлагаешь в коде написать ЕслиИначе? 100 групп. 200 групп. Потом еще добавим.
Каждый раз будешь писать в коде говнецо?
(13) Не, не рабочий
А если Элемента "Элемент1" не существует? Как поведет себя программа?
А если даже существует - то что тебе это даст? Ты разве знаешь, что скрывается под Элементом1? Это же просто порядковый номер вывода элемента на форму в коде автора, не более.
Что вот ты ему подсказываешь? Сам то давно пытался учиться?
если ВыбранныйЭлемент = Элемент["Надпись1"] тогда
А если даже существует - то что тебе это даст? Ты разве знаешь, что скрывается под Элементом1? Это же просто порядковый номер вывода элемента на форму в коде автора, не более.
Что вот ты ему подсказываешь? Сам то давно пытался учиться?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот