Как вывести несколько ссылок на объекты через запятую в строку.
Здравствуйте! Подскажите, хотя бы куда копать. Имеется поле с типом надпись (гиперссылка), и есть запрос. Запрос выбирает желанные документы. И мне нужно как-то вывести эти документы через запятую, в строку и чтобы при нажатии на ссылку я мог попасть в выбранный документ. На скрине показано поле надписи, куда нужно вывести эти документы. Пробовал через но желаемого результата не достиг.
Форма.ЭлементыФормы.Добавить(Тип("ПолеВвода"),
"Гиперссылка",
Истина,
);
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
(13) вот, нашел
для управляемых форм (не знаю какие у вас)
в процедуру модуля формы ПриСозданииНаСервере()
добавляется код
как обернуть все это в цикл?
думаю, нужно оборачивать в цикл только программное создание элементов на форме
а в процедурах отталкиваться от, скажем порядкового номера переданного элемента гиперрсылки
для управляемых форм (не знаю какие у вас)
в процедуру модуля формы ПриСозданииНаСервере()
добавляется код
// программное создание элементов формы типа гиперссылок
// гиперссылки перехода по элементам формы
Элемент = ЭтаФорма.Элементы.Добавить("ГиперссылкаНаименованиеПерейти", Тип("ДекорацияФормы"), ЭтаФорма.Элементы.<ГруппаДляГиперссылок>);
Элемент.Гиперссылка = Истина;
Элемент.Заголовок = <НаименованиеГиперссылки>;
Элемент.УстановитьДействие("Нажатие", Элемент.Имя+"ОбработкаНавигационнойСсылки");
добавляемые процедуры для перехода по гиперссылкам
&НаКлиенте
Функция ПараметрыПереходаПоГиперссылке(ИмяЭлемента, Гиперссылка = "")
// переход по реквизитам формы
Если ИмяЭлемента = "ГиперссылкаНаименованиеПерейти" Тогда
ПараметрыПереходаПоГиперссылке = Новый Структура;
ПараметрыПереходаПоГиперссылке.Вставить("ИмяФормы", <ПолноеОбращениеКФормеОткрываемогоОбъекта>);
ПараметрыПереходаПоГиперссылке.Вставить("ПараметрыФормы",ПараметрыФормы);
КонецЕсли;
Возврат ПараметрыПереходаПоГиперссылке;
КонецФункции
&НаКлиенте
Процедура ГиперссылкаНаименованиеПерейтиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыПереходаПоГиперссылке = ПараметрыПереходаПоГиперссылке(Элемент.Имя);
ГиперссылкаПерейтиСформироватьПараметрыИВопрос(ПараметрыПереходаПоГиперссылке);
КонецПроцедуры
&НаКлиенте
Процедура ГиперссылкаПерейтиСформироватьПараметрыИВопрос(ПараметрыПереходаПоГиперссылке)
ОчиститьСообщения();
Если Не ЗначениеЗаполнено(Объект.Ссылка)
Или Модифицированность Тогда
ТекстВопроса = Нстр("ru = 'Данные еще не записаны.
|Переход к основной информации возможен только после записи элемента.
|Записать элемент?'");
ПоказатьВопрос(Новый ОписаниеОповещения("ГиперссылкаПерейтиВопросЗавершение", ЭтотОбъект, ПараметрыПереходаПоГиперссылке), ТекстВопроса, РежимДиалогаВопрос.ДаНет);
Возврат;
КонецЕсли;
ГиперссылкаПерейти(ПараметрыПереходаПоГиперссылке);
КонецПроцедуры
&НаКлиенте
Процедура ГиперссылкаПерейти(ПараметрыПереходаПоГиперссылке)
Если ПараметрыПереходаПоГиперссылке.Свойство("ИмяФормы") Тогда
ОткрытьФорму(ПараметрыПереходаПоГиперссылке.ИмяФормы,
ПараметрыПереходаПоГиперссылке.ПараметрыФормы, , ЭтаФорма.УникальныйИдентификатор, , , ,
ПараметрыПереходаПоГиперссылке.РежимОткрытияОкнаФормы);
ИначеЕсли ПараметрыПереходаПоГиперссылке.Свойство("НавигационнаяСсылка") Тогда
ОбщегоНазначенияКлиент.ОткрытьНавигационнуюСсылку(ПараметрыПереходаПоГиперссылке.НавигационнаяСсылка);
ИначеЕсли ПараметрыПереходаПоГиперссылке.Свойство("ИмяГруппы") Тогда
Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы[ПараметрыПереходаПоГиперссылке.ИмяГруппы];
Если ПараметрыПереходаПоГиперссылке.Свойство("ИмяАктивногоРеквизита") Тогда
ЭтаФорма.ТекущийЭлемент = ЭтаФорма.Элементы[ПараметрыПереходаПоГиперссылке.ИмяАктивногоРеквизита];
КонецЕсли;
Иначе
ТекстИсключения = НСтр("ru = 'Не определено действие по гиперссылке.'");
ВызватьИсключение ТекстИсключения;
КонецЕсли;
КонецПроцедуры
Показатькак обернуть все это в цикл?
думаю, нужно оборачивать в цикл только программное создание элементов на форме
а в процедурах отталкиваться от, скажем порядкового номера переданного элемента гиперрсылки
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
через гиперссылку нельзя указывать список объектов
можно указать переход на объект, на переход к реквизиту объекта, на форму списка объекта
чисто теоретически можно сделать переход на форму списка обработки, где отражать все ваши документы, а уже с нее переходить в выбранный документ
но это надо рисовать отдельную форму списка, писать код по перезаполнению при переходе
в общем задача решаема, но не напрямую
можно указать переход на объект, на переход к реквизиту объекта, на форму списка объекта
чисто теоретически можно сделать переход на форму списка обработки, где отражать все ваши документы, а уже с нее переходить в выбранный документ
но это надо рисовать отдельную форму списка, писать код по перезаполнению при переходе
в общем задача решаема, но не напрямую
(9) не обращал на это внимание в бп 3 врать не буду) у меня все документы находятся при открытии формы, запрос отрабатывает и все с/ф уже известны. Думал программно создать несколько гиперссылок, в зависимости от количества найденных сф, и чтобы каждая ссылалась на объект. Но не получилось это сделать) вот на скрине я реализовал как происходит выборка и данные заполняются в таблицу значений) она при открытии уже заполнена) а как вывести с/ф ещё ниже у меня ума не хватило
Прикрепленные файлы:
(13) вот, нашел
для управляемых форм (не знаю какие у вас)
в процедуру модуля формы ПриСозданииНаСервере()
добавляется код
как обернуть все это в цикл?
думаю, нужно оборачивать в цикл только программное создание элементов на форме
а в процедурах отталкиваться от, скажем порядкового номера переданного элемента гиперрсылки
для управляемых форм (не знаю какие у вас)
в процедуру модуля формы ПриСозданииНаСервере()
добавляется код
// программное создание элементов формы типа гиперссылок
// гиперссылки перехода по элементам формы
Элемент = ЭтаФорма.Элементы.Добавить("ГиперссылкаНаименованиеПерейти", Тип("ДекорацияФормы"), ЭтаФорма.Элементы.<ГруппаДляГиперссылок>);
Элемент.Гиперссылка = Истина;
Элемент.Заголовок = <НаименованиеГиперссылки>;
Элемент.УстановитьДействие("Нажатие", Элемент.Имя+"ОбработкаНавигационнойСсылки");
добавляемые процедуры для перехода по гиперссылкам
&НаКлиенте
Функция ПараметрыПереходаПоГиперссылке(ИмяЭлемента, Гиперссылка = "")
// переход по реквизитам формы
Если ИмяЭлемента = "ГиперссылкаНаименованиеПерейти" Тогда
ПараметрыПереходаПоГиперссылке = Новый Структура;
ПараметрыПереходаПоГиперссылке.Вставить("ИмяФормы", <ПолноеОбращениеКФормеОткрываемогоОбъекта>);
ПараметрыПереходаПоГиперссылке.Вставить("ПараметрыФормы",ПараметрыФормы);
КонецЕсли;
Возврат ПараметрыПереходаПоГиперссылке;
КонецФункции
&НаКлиенте
Процедура ГиперссылкаНаименованиеПерейтиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыПереходаПоГиперссылке = ПараметрыПереходаПоГиперссылке(Элемент.Имя);
ГиперссылкаПерейтиСформироватьПараметрыИВопрос(ПараметрыПереходаПоГиперссылке);
КонецПроцедуры
&НаКлиенте
Процедура ГиперссылкаПерейтиСформироватьПараметрыИВопрос(ПараметрыПереходаПоГиперссылке)
ОчиститьСообщения();
Если Не ЗначениеЗаполнено(Объект.Ссылка)
Или Модифицированность Тогда
ТекстВопроса = Нстр("ru = 'Данные еще не записаны.
|Переход к основной информации возможен только после записи элемента.
|Записать элемент?'");
ПоказатьВопрос(Новый ОписаниеОповещения("ГиперссылкаПерейтиВопросЗавершение", ЭтотОбъект, ПараметрыПереходаПоГиперссылке), ТекстВопроса, РежимДиалогаВопрос.ДаНет);
Возврат;
КонецЕсли;
ГиперссылкаПерейти(ПараметрыПереходаПоГиперссылке);
КонецПроцедуры
&НаКлиенте
Процедура ГиперссылкаПерейти(ПараметрыПереходаПоГиперссылке)
Если ПараметрыПереходаПоГиперссылке.Свойство("ИмяФормы") Тогда
ОткрытьФорму(ПараметрыПереходаПоГиперссылке.ИмяФормы,
ПараметрыПереходаПоГиперссылке.ПараметрыФормы, , ЭтаФорма.УникальныйИдентификатор, , , ,
ПараметрыПереходаПоГиперссылке.РежимОткрытияОкнаФормы);
ИначеЕсли ПараметрыПереходаПоГиперссылке.Свойство("НавигационнаяСсылка") Тогда
ОбщегоНазначенияКлиент.ОткрытьНавигационнуюСсылку(ПараметрыПереходаПоГиперссылке.НавигационнаяСсылка);
ИначеЕсли ПараметрыПереходаПоГиперссылке.Свойство("ИмяГруппы") Тогда
Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы[ПараметрыПереходаПоГиперссылке.ИмяГруппы];
Если ПараметрыПереходаПоГиперссылке.Свойство("ИмяАктивногоРеквизита") Тогда
ЭтаФорма.ТекущийЭлемент = ЭтаФорма.Элементы[ПараметрыПереходаПоГиперссылке.ИмяАктивногоРеквизита];
КонецЕсли;
Иначе
ТекстИсключения = НСтр("ru = 'Не определено действие по гиперссылке.'");
ВызватьИсключение ТекстИсключения;
КонецЕсли;
КонецПроцедуры
Показатькак обернуть все это в цикл?
думаю, нужно оборачивать в цикл только программное создание элементов на форме
а в процедурах отталкиваться от, скажем порядкового номера переданного элемента гиперрсылки
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот