Как вывести несколько ссылок на объекты через запятую в строку.

1. 1c_uZer 10.12.19 18:36 Сейчас в теме
Здравствуйте! Подскажите, хотя бы куда копать. Имеется поле с типом надпись (гиперссылка), и есть запрос. Запрос выбирает желанные документы. И мне нужно как-то вывести эти документы через запятую, в строку и чтобы при нажатии на ссылку я мог попасть в выбранный документ. На скрине показано поле надписи, куда нужно вывести эти документы. Пробовал через
Форма.ЭлементыФормы.Добавить(Тип("ПолеВвода"), 
        "Гиперссылка", 
        Истина, 
        );
но желаемого результата не достиг.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
15. VictorRGB2 14 10.12.19 19:35 Сейчас в теме
(13) вот, нашел

для управляемых форм (не знаю какие у вас)

в процедуру модуля формы ПриСозданииНаСервере()
добавляется код

// программное создание элементов формы типа гиперссылок
// гиперссылки перехода по элементам формы
Элемент = ЭтаФорма.Элементы.Добавить("ГиперссылкаНаименованиеПерейти", Тип("ДекорацияФормы"), ЭтаФорма.Элементы.<ГруппаДляГиперссылок>);
Элемент.Гиперссылка = Истина;
Элемент.Заголовок = <НаименованиеГиперссылки>;
Элемент.УстановитьДействие("Нажатие", Элемент.Имя+"ОбработкаНавигационнойСсылки");

добавляемые процедуры для перехода по гиперссылкам

&НаКлиенте
Функция ПараметрыПереходаПоГиперссылке(ИмяЭлемента, Гиперссылка = "")
	
	// переход по реквизитам формы
	Если ИмяЭлемента = "ГиперссылкаНаименованиеПерейти" Тогда
		ПараметрыПереходаПоГиперссылке = Новый Структура;
		ПараметрыПереходаПоГиперссылке.Вставить("ИмяФормы", <ПолноеОбращениеКФормеОткрываемогоОбъекта>);
		ПараметрыПереходаПоГиперссылке.Вставить("ПараметрыФормы",ПараметрыФормы);
	КонецЕсли;

        Возврат ПараметрыПереходаПоГиперссылке;

КонецФункции

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

&НаКлиенте
Процедура ГиперссылкаПерейтиСформироватьПараметрыИВопрос(ПараметрыПереходаПоГиперссылке)
	
	ОчиститьСообщения();
	
	Если Не ЗначениеЗаполнено(Объект.Ссылка)
		Или Модифицированность Тогда
		
		ТекстВопроса = Нстр("ru = 'Данные еще не записаны.
		|Переход к основной информации возможен только после записи элемента.
		|Записать элемент?'");
		
		ПоказатьВопрос(Новый ОписаниеОповещения("ГиперссылкаПерейтиВопросЗавершение", ЭтотОбъект, ПараметрыПереходаПоГиперссылке), ТекстВопроса, РежимДиалогаВопрос.ДаНет);
		Возврат;
		
	КонецЕсли;
	
	ГиперссылкаПерейти(ПараметрыПереходаПоГиперссылке);
КонецПроцедуры

&НаКлиенте
Процедура ГиперссылкаПерейти(ПараметрыПереходаПоГиперссылке)
	
	Если ПараметрыПереходаПоГиперссылке.Свойство("ИмяФормы") Тогда
		ОткрытьФорму(ПараметрыПереходаПоГиперссылке.ИмяФормы,
		ПараметрыПереходаПоГиперссылке.ПараметрыФормы, , ЭтаФорма.УникальныйИдентификатор, , , ,
		ПараметрыПереходаПоГиперссылке.РежимОткрытияОкнаФормы);
	ИначеЕсли ПараметрыПереходаПоГиперссылке.Свойство("НавигационнаяСсылка") Тогда
		ОбщегоНазначенияКлиент.ОткрытьНавигационнуюСсылку(ПараметрыПереходаПоГиперссылке.НавигационнаяСсылка);
	ИначеЕсли ПараметрыПереходаПоГиперссылке.Свойство("ИмяГруппы") Тогда
		Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы[ПараметрыПереходаПоГиперссылке.ИмяГруппы];
		
		Если ПараметрыПереходаПоГиперссылке.Свойство("ИмяАктивногоРеквизита") Тогда
			ЭтаФорма.ТекущийЭлемент = ЭтаФорма.Элементы[ПараметрыПереходаПоГиперссылке.ИмяАктивногоРеквизита];
		КонецЕсли;
	Иначе
		ТекстИсключения = НСтр("ru = 'Не определено действие по гиперссылке.'");
		ВызватьИсключение ТекстИсключения;
	КонецЕсли;
	
КонецПроцедуры
Показать


как обернуть все это в цикл?
думаю, нужно оборачивать в цикл только программное создание элементов на форме
а в процедурах отталкиваться от, скажем порядкового номера переданного элемента гиперрсылки
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. acanta 10.12.19 18:41 Сейчас в теме
Имхо, надпись на каждую гиперссылку отдельная нужна. А вы в одной хотите, чтобы список открывался?
4. 1c_uZer 10.12.19 18:44 Сейчас в теме
(2) просто документов может быть любое количество). был бы один было бы замечательно а их и 2 и 3 может быть.
3. VictorRGB2 14 10.12.19 18:42 Сейчас в теме
через гиперссылку нельзя указывать список объектов
можно указать переход на объект, на переход к реквизиту объекта, на форму списка объекта

чисто теоретически можно сделать переход на форму списка обработки, где отражать все ваши документы, а уже с нее переходить в выбранный документ
но это надо рисовать отдельную форму списка, писать код по перезаполнению при переходе

в общем задача решаема, но не напрямую
5. 1c_uZer 10.12.19 18:45 Сейчас в теме
(3)
переход на объект
а какой вариант тогда подойдёт?
7. VictorRGB2 14 10.12.19 18:49 Сейчас в теме
(5) дал направление в своем же посте
то же самое советуют и в (6)
6. acanta 10.12.19 18:47 Сейчас в теме
Их можно в группу в рамочке разместить?
Или открыть обработку / форму со списком обьектов, который передан в нее или выбран здесь же по условию.
8. 1c_uZer 10.12.19 18:50 Сейчас в теме
(6) вот странный запрос у пользователя, там уже есть ТЧ куда выводится список всех этих с/ф на отдельной вкладке а нужен список снизу.
9. acanta 10.12.19 18:51 Сейчас в теме
10. 1c_uZer 10.12.19 18:59 Сейчас в теме
(9) не обращал на это внимание в бп 3 врать не буду) у меня все документы находятся при открытии формы, запрос отрабатывает и все с/ф уже известны. Думал программно создать несколько гиперссылок, в зависимости от количества найденных сф, и чтобы каждая ссылалась на объект. Но не получилось это сделать) вот на скрине я реализовал как происходит выборка и данные заполняются в таблицу значений) она при открытии уже заполнена) а как вывести с/ф ещё ниже у меня ума не хватило
Прикрепленные файлы:
11. VictorRGB2 14 10.12.19 19:02 Сейчас в теме
(10) ну раз есть ТЗ с данными, пробежаться по ней и наплодить программно гиперссылок труда не составит
а если ТЗ глазу мешает, скрыть ее с формы
12. 1c_uZer 10.12.19 19:06 Сейчас в теме
(11) вот вопрос, как правильно создать программно гиперссылки? я наверно не туда копал. и не получилось.
13. 1c_uZer 10.12.19 19:07 Сейчас в теме
(11) я понял что в цикле надо перебрать все эти данные но как их создать) делал согласно СП но не взлетело)
14. VictorRGB2 14 10.12.19 19:10 Сейчас в теме
(13) где-то был пример, сейчас поищу
15. VictorRGB2 14 10.12.19 19:35 Сейчас в теме
(13) вот, нашел

для управляемых форм (не знаю какие у вас)

в процедуру модуля формы ПриСозданииНаСервере()
добавляется код

// программное создание элементов формы типа гиперссылок
// гиперссылки перехода по элементам формы
Элемент = ЭтаФорма.Элементы.Добавить("ГиперссылкаНаименованиеПерейти", Тип("ДекорацияФормы"), ЭтаФорма.Элементы.<ГруппаДляГиперссылок>);
Элемент.Гиперссылка = Истина;
Элемент.Заголовок = <НаименованиеГиперссылки>;
Элемент.УстановитьДействие("Нажатие", Элемент.Имя+"ОбработкаНавигационнойСсылки");

добавляемые процедуры для перехода по гиперссылкам

&НаКлиенте
Функция ПараметрыПереходаПоГиперссылке(ИмяЭлемента, Гиперссылка = "")
	
	// переход по реквизитам формы
	Если ИмяЭлемента = "ГиперссылкаНаименованиеПерейти" Тогда
		ПараметрыПереходаПоГиперссылке = Новый Структура;
		ПараметрыПереходаПоГиперссылке.Вставить("ИмяФормы", <ПолноеОбращениеКФормеОткрываемогоОбъекта>);
		ПараметрыПереходаПоГиперссылке.Вставить("ПараметрыФормы",ПараметрыФормы);
	КонецЕсли;

        Возврат ПараметрыПереходаПоГиперссылке;

КонецФункции

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

&НаКлиенте
Процедура ГиперссылкаПерейтиСформироватьПараметрыИВопрос(ПараметрыПереходаПоГиперссылке)
	
	ОчиститьСообщения();
	
	Если Не ЗначениеЗаполнено(Объект.Ссылка)
		Или Модифицированность Тогда
		
		ТекстВопроса = Нстр("ru = 'Данные еще не записаны.
		|Переход к основной информации возможен только после записи элемента.
		|Записать элемент?'");
		
		ПоказатьВопрос(Новый ОписаниеОповещения("ГиперссылкаПерейтиВопросЗавершение", ЭтотОбъект, ПараметрыПереходаПоГиперссылке), ТекстВопроса, РежимДиалогаВопрос.ДаНет);
		Возврат;
		
	КонецЕсли;
	
	ГиперссылкаПерейти(ПараметрыПереходаПоГиперссылке);
КонецПроцедуры

&НаКлиенте
Процедура ГиперссылкаПерейти(ПараметрыПереходаПоГиперссылке)
	
	Если ПараметрыПереходаПоГиперссылке.Свойство("ИмяФормы") Тогда
		ОткрытьФорму(ПараметрыПереходаПоГиперссылке.ИмяФормы,
		ПараметрыПереходаПоГиперссылке.ПараметрыФормы, , ЭтаФорма.УникальныйИдентификатор, , , ,
		ПараметрыПереходаПоГиперссылке.РежимОткрытияОкнаФормы);
	ИначеЕсли ПараметрыПереходаПоГиперссылке.Свойство("НавигационнаяСсылка") Тогда
		ОбщегоНазначенияКлиент.ОткрытьНавигационнуюСсылку(ПараметрыПереходаПоГиперссылке.НавигационнаяСсылка);
	ИначеЕсли ПараметрыПереходаПоГиперссылке.Свойство("ИмяГруппы") Тогда
		Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы[ПараметрыПереходаПоГиперссылке.ИмяГруппы];
		
		Если ПараметрыПереходаПоГиперссылке.Свойство("ИмяАктивногоРеквизита") Тогда
			ЭтаФорма.ТекущийЭлемент = ЭтаФорма.Элементы[ПараметрыПереходаПоГиперссылке.ИмяАктивногоРеквизита];
		КонецЕсли;
	Иначе
		ТекстИсключения = НСтр("ru = 'Не определено действие по гиперссылке.'");
		ВызватьИсключение ТекстИсключения;
	КонецЕсли;
	
КонецПроцедуры
Показать


как обернуть все это в цикл?
думаю, нужно оборачивать в цикл только программное создание элементов на форме
а в процедурах отталкиваться от, скажем порядкового номера переданного элемента гиперрсылки
16. 1c_uZer 10.12.19 19:44 Сейчас в теме
(15)
от, скажем порядкового номера переданного
большое спасибо) попробую)
17. 1c_uZer 10.12.19 20:51 Сейчас в теме
(15)
Элемент.Заголовок =
что-то в этом есть) отладчиком смотрю на форму добавляются гиперссылки) правда в режиме предприятия их не видно но думаю тут я сам разберусь) спасибо=)
Оставьте свое сообщение

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