База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как реализовать открытие документа через гиперссылку на форме в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 19 минут назад сделано
Odin – Одинэсник.
-
АвторСообщения
-
-
8 августа 2025 в 15:15 #33192
Odineski
Участник&НаСервере
Процедура ЗаписатьРазделенныеТКПНаСервере()
Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
Сообщить(“Сначала запишите данное коммерческое предложение!”);
Возврат
КонецЕсли;ТаблицаЗаказовКлиентовЭМИ[ЭМИ_НомерТекущегоЗаказаКлиента-1].ЗаказКлиента.Загрузить(ТоварыЗаказКлиента.Выгрузить());
Ном = 1;
Для Каждого Стр Из ТаблицаЗаказовКлиентовЭМИ Цикл
Если Стр.ЗаказКлиента.Количество()>0 Тогда
Если ЗначениеЗаполнено(Стр.Ссылка) Тогда
НовТКП = Стр.Ссылка.ПолучитьОбъект();
Иначе
НовТКП = Объект.Ссылка.Скопировать();
НовТКП.ТКП = Объект.Ссылка;
НовТКП.Дата = ТекущаяДата();
КонецЕсли;
НовТКП.Товары.Загрузить(Стр.ЗаказКлиента.Выгрузить());
Для Каждого Стр2 Из НовТКП.Товары Цикл
Ключ = Стр2.КлючСвязи;
СтрокаТовары = Объект.Товары[Ключ – 1];
ЗаполнитьЗначенияСвойств(Стр2, СтрокаТовары);
Стр2.КлючСвязи = Ключ;
КонецЦикла;НовТКП.Комментарий = ?(ПустаяСтрока(НовТКП.Комментарий),”Деление “+Объект.Ссылка,”Деление “+Объект.Ссылка+”
|”+НовТКП.Комментарий);
НовТКП.Записать(РежимЗаписиДокумента.Запись);
Стр.Ссылка = НовТКП.Ссылка;
Сообщить(“Записан документ “+НовТКП);
Элементы[“НоваяНадпись”+Ном].Заголовок = Стр.Ссылка;КонецЕсли;
Ном = Ном + 1
КонецЦикла;
КонецПроцедурыкак из этого кода получить ссылку на документ и релизовать процедуру открытия через гиперссылку на форме документа?
-
8 августа 2025 в 15:15 #33193
Odin – Одинэсник
УчастникПривет, Денис!
Чтобы получить ссылку на документ из вашего кода и реализовать процедуру открытия через гиперссылку на форме документа, вам нужно сделать следующее:
1. **Получить ссылку на документ**: В вашем коде вы уже получаете ссылку на новый документ через
НовТКП.Ссылка
. Это значение можно использовать для создания гиперссылки.2. **Создать гиперссылку на форме документа**: Для этого вам нужно добавить элемент управления на форму, который будет представлять собой гиперссылку. Затем в обработчике события этого элемента вы можете открыть документ по ссылке.
Вот пример, как это можно сделать:
### Шаг 1: Получение ссылки на документ
В вашем коде вы уже получаете ссылку на документ, когда записываете новый документ:1С (Код)121CСтр.Ссылка = НовТКП.Ссылка;### Шаг 2: Реализация гиперссылки на форме
Предположим, что у вас есть элемент управления типа “Гиперссылка” на форме, назовем егоГиперссылкаДокумент
. Вам нужно добавить обработчик события для этого элемента:1С (Код)123456789101C&НаКлиентеПроцедура ГиперссылкаДокументНажат()Если ЗначениеЗаполнено(Элементы.ГиперссылкаДокумент.Значение) ТогдаСсылка = Элементы.ГиперссылкаДокумент.Значение;ОткрытьЗначение(Ссылка);ИначеСообщить("Ссылка на документ не задана.");КонецЕсли;КонецПроцедуры### Шаг 3: Установка значения гиперссылки
После того как вы записали новый документ, вам нужно установить значение гиперссылки на форме:1С (Код)121CЭлементы.ГиперссылкаДокумент.Значение = Стр.Ссылка;### Полный пример
Объединяя все вместе, ваш код может выглядеть так:1С (Код)12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849501C&НаСервереПроцедура ЗаписатьРазделенныеТКПНаСервере()Если НЕ ЗначениеЗаполнено(Объект.Ссылка) ТогдаСообщить("Сначала запишите данное коммерческое предложение!");Возврат;КонецЕсли;ТаблицаЗаказовКлиентовЭМИ[ЭМИ_НомерТекущегоЗаказаКлиента-1].ЗаказКлиента.Загрузить(ТоварыЗаказаКлиента.Выгрузить());Ном = 1;Для Каждого Стр Из ТаблицаЗаказовКлиентовЭМИ ЦиклЕсли Стр.ЗаказКлиента.Количество()>0 ТогдаЕсли ЗначениеЗаполнено(Стр.Ссылка) ТогдаНовТКП = Стр.Ссылка.ПолучитьОбъект();ИначеНовТКП = Объект.Ссылка.Скопировать();НовТКП.ТКП = Объект.Ссылка;НовТКП.Дата = ТекущаяДата();КонецЕсли;НовТКП.Товары.Загрузить(Стр.ЗаказКлиента.Выгрузить());Для Каждого Стр2 Из НовТКП.Товары ЦиклКлюч = Стр2.КлючСвязи;СтрокаТовары = Объект.Товары[Ключ - 1];ЗаполнитьЗначенияСвойств(Стр2, СтрокаТовары);Стр2.КлючСвязи = Ключ;КонецЦикла;НовТКП.Комментарий = ?(ПустаяСтрока(НовТКП.Комментарий),"Деление "+Объект.Ссылка,"Деление "+Объект.Ссылка+"|"+НовТКП.Комментарий);НовТКП.Записать(РежимЗаписиДокумента.Запись);Стр.Ссылка = НовТКП.Ссылка;Элементы["ГиперссылкаДокумент"].Значение = Стр.Ссылка; // Установка значения гиперссылкиСообщить("Записан документ "+НовТКП);Элементы["НоваяНадпись"+Ном].Заголовок = Стр.Ссылка;КонецЕсли;Ном = Ном + 1;КонецЦикла;КонецПроцедуры&НаКлиентеПроцедура ГиперссылкаДокументНажат()Если ЗначениеЗаполнено(Элементы.ГиперссылкаДокумент.Значение) ТогдаСсылка = Элементы.ГиперссылкаДокумент.Значение;ОткрытьЗначение(Ссылка);ИначеСообщить("Ссылка на документ не задана.");КонецЕсли;КонецПроцедурыТеперь, когда вы записываете новый документ, ссылка будет установлена в гиперссылку на форме, и при нажатии на гиперссылку документ будет открываться.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.