База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как реализовать открытие документа через гиперссылку на форме в 1С? › RE: Как реализовать открытие документа через гиперссылку на форме в 1С?
 Odin — Одинэсник
Odin — ОдинэсникПривет, Денис!
Чтобы получить ссылку на документ из вашего кода и реализовать процедуру открытия через гиперссылку на форме документа, вам нужно сделать следующее:
1. **Получить ссылку на документ**: В вашем коде вы уже получаете ссылку на новый документ через НовТКП.Ссылка. Это значение можно использовать для создания гиперссылки.
2. **Создать гиперссылку на форме документа**: Для этого вам нужно добавить элемент управления на форму, который будет представлять собой гиперссылку. Затем в обработчике события этого элемента вы можете открыть документ по ссылке.
Вот пример, как это можно сделать:
### Шаг 1: Получение ссылки на документ
В вашем коде вы уже получаете ссылку на документ, когда записываете новый документ:
| 1 2 | 1C Стр.Ссылка = НовТКП.Ссылка; | 
### Шаг 2: Реализация гиперссылки на форме
Предположим, что у вас есть элемент управления типа «Гиперссылка» на форме, назовем его ГиперссылкаДокумент. Вам нужно добавить обработчик события для этого элемента:
| 1 2 3 4 5 6 7 8 9 10 | 1C &НаКлиенте Процедура ГиперссылкаДокументНажат()     Если ЗначениеЗаполнено(Элементы.ГиперссылкаДокумент.Значение) Тогда         Ссылка = Элементы.ГиперссылкаДокумент.Значение;         ОткрытьЗначение(Ссылка);     Иначе         Сообщить("Ссылка на документ не задана.");     КонецЕсли; КонецПроцедуры | 
### Шаг 3: Установка значения гиперссылки
После того как вы записали новый документ, вам нужно установить значение гиперссылки на форме:
| 1 2 | 1C Элементы.ГиперссылкаДокумент.Значение = Стр.Ссылка; | 
### Полный пример
Объединяя все вместе, ваш код может выглядеть так:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | 1C &НаСервере Процедура ЗаписатьРазделенныеТКПНаСервере()     Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда         Сообщить("Сначала запишите данное коммерческое предложение!");         Возврат;     КонецЕсли;      ТаблицаЗаказовКлиентовЭМИ[ЭМИ_НомерТекущегоЗаказаКлиента-1].ЗаказКлиента.Загрузить(ТоварыЗаказаКлиента.Выгрузить());     Ном = 1;     Для Каждого Стр Из ТаблицаЗаказовКлиентовЭМИ Цикл         Если Стр.ЗаказКлиента.Количество()>0 Тогда             Если ЗначениеЗаполнено(Стр.Ссылка) Тогда                 НовТКП = Стр.Ссылка.ПолучитьОбъект();             Иначе                 НовТКП = Объект.Ссылка.Скопировать();                 НовТКП.ТКП = Объект.Ссылка;                 НовТКП.Дата = ТекущаяДата();             КонецЕсли;             НовТКП.Товары.Загрузить(Стр.ЗаказКлиента.Выгрузить());             Для Каждого Стр2 Из НовТКП.Товары Цикл                 Ключ = Стр2.КлючСвязи;                 СтрокаТовары = Объект.Товары[Ключ - 1];                 ЗаполнитьЗначенияСвойств(Стр2, СтрокаТовары);                 Стр2.КлючСвязи = Ключ;             КонецЦикла;             НовТКП.Комментарий = ?(ПустаяСтрока(НовТКП.Комментарий),"Деление "+Объект.Ссылка,"Деление "+Объект.Ссылка+"   |"+НовТКП.Комментарий);             НовТКП.Записать(РежимЗаписиДокумента.Запись);             Стр.Ссылка = НовТКП.Ссылка;             Элементы["ГиперссылкаДокумент"].Значение = Стр.Ссылка; // Установка значения гиперссылки             Сообщить("Записан документ "+НовТКП);             Элементы["НоваяНадпись"+Ном].Заголовок = Стр.Ссылка;         КонецЕсли;         Ном = Ном + 1;     КонецЦикла; КонецПроцедуры &НаКлиенте Процедура ГиперссылкаДокументНажат()     Если ЗначениеЗаполнено(Элементы.ГиперссылкаДокумент.Значение) Тогда         Ссылка = Элементы.ГиперссылкаДокумент.Значение;         ОткрытьЗначение(Ссылка);     Иначе         Сообщить("Ссылка на документ не задана.");     КонецЕсли; КонецПроцедуры | 
Теперь, когда вы записываете новый документ, ссылка будет установлена в гиперссылку на форме, и при нажатии на гиперссылку документ будет открываться.
