К статье
Практический материал

Разработка и Конфигурация · 11 мин

Как сделать гиперссылку в 1С: пошаговое руководство

Как сделать гиперссылку в 1С: в форматированном документе, на форме, в отчёте и через код. Примеры на встроенном языке, настройка событий и решение типичных ошибок.

Гиперссылка в 1С — это не только ссылка на сайт, но и механизм навигации внутри программы: переход к документу, элементу справочника, разделу отчёта или выполнение произвольной команды по клику. В зависимости от задачи используются разные инструменты: форматированный документ, декорация на форме, поле HTML-документа или методы встроенного языка.

Чаще всего гиперссылки нужны в трёх сценариях: пользователь кликает по тексту и открывается связанный объект базы (например, договор из карточки контрагента); клик ведёт на внешний сайт или открывает файл; ссылка запускает произвольный код — например, формирует отчёт с заданными параметрами. Для каждого случая есть свой подход, и выбор неправильного приводит к тому, что ссылка отображается, но не работает.

Материал ориентирован на управляемые формы (такси-интерфейс), которые используются в актуальных конфигурациях: 1С:Бухгалтерия, 1С:Управление торговлей, 1С:ERP и других. Отдельно разобраны особенности обычных форм и работы через встроенный язык.

Что считается гиперссылкой в 1С и какие типы бывают

В платформе 1С:Предприятие под гиперссылкой понимают несколько разных механизмов. Первый — ссылка внутри форматированного документа: текст, по которому можно кликнуть, с переходом по адресу или навигационной ссылке. Второй — элемент формы «Декорация» в виде надписи, у которого включено свойство «Гиперссылка» и назначен обработчик нажатия. Третий — стандартные навигационные ссылки вида e1cib/data/Справочник.Контрагенты?ref=..., которые платформа открывает как объекты базы.

Отдельно существуют ссылки в табличных документах (расшифровка отчётов) и ссылки в HTML-полях. Каждый вариант решает свою задачу, и смешивать их не нужно: например, навигационная ссылка внутри HTML-поля без дополнительной обработки не откроет объект, а попытается перейти браузерным движком, что приведёт к ошибке.

Как вставить гиперссылку в форматированный документ

Форматированный документ — стандартный способ показать пользователю текст со ссылками: в карточках, подсказках, информационных панелях. В режиме 1С:Предприятие пользователь редактирует такой документ как обычный текст: выделяет фрагмент и через контекстное меню или кнопку «Вставить гиперссылку» указывает адрес. Это удобно для статичных подсказок, которые хранятся в реквизитах объектов.

Программно ссылка добавляется через коллекцию элементов форматированного документа. Нужно создать элемент типа «Ссылка» и задать ему текст и адрес перехода:

ФД = Новый ФорматированныйДокумент;

Параграф = ФД.Элементы.Добавить();

ТекстЭлемент = Параграф.Элементы.Добавить("Перейти к документу: ", Тип("ТекстФорматированногоДокумента"));

СсылкаЭлемент = Параграф.Элементы.Добавить("Реализация № 125", Тип("СсылкаФорматированногоДокумента"));

СсылкаЭлемент.НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(ДокументСсылка);

Адресом может быть как навигационная ссылка на объект базы, так и обычный URL вида https://... — платформа откроет его в браузере. После заполнения документ присваивается реквизиту формы типа «ФорматированныйДокумент», связанному с полем на форме.

1c
НавСсылка = ПолучитьНавигационнуюСсылку(Объект.Ссылка);
// Результат: e1cib/data/Документ.РеализацияТоваровУслуг?ref=...

Как сделать кликабельную надпись на форме

Если нужна простая ссылка на форме — «Подробнее на сайте», «Открыть инструкцию», «Сформировать отчёт» — используется декорация. В конфигураторе добавьте на форму элемент «Декорация» с видом «Надпись», установите свойство «Гиперссылка» в значение «Истина», задайте заголовок и создайте обработчик события «Нажатие». Надпись станет подчёркнутой и изменит курсор при наведении.

В обработчике размещается нужное действие. Для перехода на сайт используется запуск приложения или метод ПерейтиПоНавигационнойСсылке:

&НаКлиенте

Процедура ДекорацияСайтНажатие(Элемент)

ПерейтиПоНавигационнойСсылке("https://example.ru/instruction");

КонецПроцедуры

Если по клику нужно открыть объект базы, надпись можно сделать динамической: в заголовок подставлять представление объекта, а в обработчике вызывать ПоказатьЗначение(, Объект.Ссылка). Такой приём часто применяют для блоков «Основание», «Связанный документ» в карточках.

Декорация-гиперссылка за 5 шагов
  1. 1
    Откройте форму в конфигураторе и добавьте элемент «Декорация» с видом «Надпись»
  2. 2
    В свойствах установите «Гиперссылка» = Истина
  3. 3
    Впишите заголовок — текст, который увидит пользователь
  4. 4
    Создайте обработчик события «Нажатие» и поместите туда код действия
  5. 5
    Откройте форму в режиме предприятия и проверьте клик мышью

Как сделать ссылку на объект базы через навигационную ссылку

Навигационные ссылки — самый надёжный способ перехода между объектами. Метод ПолучитьНавигационнуюСсылку(СсылкаНаОбъект) возвращает строку вида e1cib/data/Справочник.Номенклатура?ref=817c.... Такую строку можно вставить в форматированный документ, отправить в письме, сохранить в реквизите или обработать вручную.

Чтобы перехватить переход по навигационной ссылке и выполнить своё действие, используется событие формы ОбработкаНавигационнойСсылки (для форматированного документа — событие поля «ОбработкаРасшифровки» или «ПриНажатии» в зависимости от типа поля). В обработчике можно проанализировать адрес и, например, открыть объект в новом окне или выполнить команду вместо стандартного перехода.

Полезная особенность: навигационную ссылку можно получить не только на объект, но и на запись регистра сведений, пункт плана обмена и даже на список с отбором — через ПолучитьНавигационнуюСсылку с дополнительными параметрами. Это позволяет строить «карты навигации» внутри базы: панели быстрого перехода к нужным документам и спискам.

Гиперссылки в отчётах и табличных документах

В отчётах на СКД расшифровка работает автоматически: двойной клик по ячейке предлагает открыть объект, отбор или другой отчёт. Но если отчёт выводится программно в табличный документ, ссылку придётся формировать вручную — через свойство ячейки «Расшифровка». В параметр расшифровки помещается ссылка на объект, а в обработчике события «ОбработкаРасшифровки» поля табличного документа вызывается ПоказатьЗначение.

&НаКлиенте

Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь;

Если ЗначениеЗаполнено(Расшифровка) Тогда

ПоказатьЗначение(, Расшифровка);

КонецЕсли;

КонецПроцедуры

Такой подход даёт полный контроль: по одной ячейке можно открывать документ, по другой — строить детальный отчёт, по третьей — запускать обработку. Главное — не забыть установить СтандартнаяОбработка = Ложь, иначе платформа выполнит действие по умолчанию и ваш код сработает некорректно.

Ссылки в HTML-полях и письмах

Поле HTML-документа отображает веб-страницы, в том числе сформированные программно. Обычные ссылки <a href="https://..."> в нём работают как в браузере. Но ссылки на объекты базы требуют перехвата: используется событие «ПриНажатии» поля HTML-документа, где через данные события можно получить атрибут href кликнутой ссылки, отменить стандартный переход и выполнить своё действие — например, открыть объект по навигационной ссылке.

В электронных письмах, отправляемых из 1С, гиперссылки вставляются как обычный HTML в тело письма формата HTML. Ссылка на внешний ресурс будет работать у получателя без ограничений. Навигационная ссылка e1cib/... сработает только если у получателя установлена 1С и настроен обработчик протокола — вне программы она бесполезна, поэтому в письмах контрагентам её использовать нельзя.

Типичные ошибки и как их проверить

Самая частая проблема — ссылка отображается, но клик ничего не делает. Причины: у декорации не включено свойство «Гиперссылка», не назначен обработчик «Нажатие», обработчик создан на сервере, а действие (например, ПоказатьЗначение) доступно только на клиенте. Проверяйте директивы компиляции: обработчики интерактивных действий должны быть &НаКлиенте.

Вторая группа ошибок — неправильный адрес. Если в форматированный документ подставлена строка навигационной ссылки, полученная в другой базе (например, из копии), объект не откроется: внутренний идентификатор не совпадёт. Всегда формируйте навигационную ссылку в той базе, где она будет использоваться, и не храните её в переносимых данных между базами.

Типичные ошибки
01
Обработчик «Нажатие» создан с директивой &НаСервере — интерактивное открытие объекта недоступно, привяжите действие к клиентскому контексту
02
Навигационная ссылка скопирована из другой базы — объект не находится, формируйте ссылку в текущей базе
03
Не сброшена СтандартнаяОбработка в обработчике расшифровки — выполняется и ваше действие, и стандартное
04
Ссылка e1cib вставлена в письмо внешнему получателю — у него она не откроется
05
У декорации забыто свойство «Гиперссылка» — надпись выглядит обычным текстом и не реагирует на клик
Контрольные точки

Как проверить результат

Внешний вид ссылки
Норма

Текст подчёркнут, при наведении курсор меняется на «руку»

Тревожный признак

Обычный текст без реакции на наведение — не включено свойство «Гиперссылка»

Клик по ссылке на объект
Норма

Открывается форма именно того объекта, который ожидался

Тревожный признак

Ничего не происходит или открывается другой объект — проверяйте навигационную ссылку

Клик по внешней ссылке
Норма

Открывается браузер с нужной страницей

Тревожный признак

Ошибка или пустое окно — проверьте формат URL и права на запуск приложений

Частые вопросы о гиперссылках в 1С

Можно ли сделать гиперссылку без программирования?

Да, в двух случаях. Пользователь может добавить ссылку в форматированный документ через кнопку «Вставить гиперссылку» прямо в режиме предприятия. Кроме того, многие типовые поля-ссылки (например, «Договор» в документе) уже кликабельны по умолчанию — это стандартное поведение полей ввода со ссылочным типом.

Как открыть по ссылке не объект, а внешний файл?

Используйте обработчик нажатия декорации и метод НачатьЗапускПриложения с указанием пути к файлу, либо ПерейтиПоНавигационнойСсылке с file-адресом. Учитывайте, что путь должен быть доступен с компьютера пользователя, а на веб-клиенте запуск локальных файлов ограничен политиками безопасности.

Почему навигационная ссылка не работает в тонком клиенте, хотя работала в толстом?

Чаще всего дело не в клиенте, а в контексте: метод ПолучитьНавигационнуюСсылку должен вызываться на сервере, а открытие — на клиенте. Проверьте директивы компиляции процедур и убедитесь, что ссылка передаётся из серверной процедуры в клиентскую как строка.

Как сделать ссылку на раздел программы, а не на конкретный объект?

Получите навигационную ссылку на нужную команду интерфейса: для списков и отчётов она формируется автоматически и видна в свойствах. Также можно открыть нужную форму программно через ОткрытьФорму с параметрами в обработчике нажатия декорации — это даёт больше гибкости, чем статичная ссылка.

Работают ли гиперссылки в мобильном клиенте и веб-клиенте?

Декорации-гиперссылки и навигационные ссылки работают во всех клиентах. Ограничения касаются запуска внешних приложений и открытия локальных файлов: в веб-клиенте это зависит от браузера, в мобильном — от платформы устройства. Перед внедрением проверяйте сценарий на целевом типе клиента.

Как оформить ссылку внутри длинного текста подсказки?

Используйте реквизит формы типа «ФорматированныйДокумент» и поле соответствующего вида. Программно соберите текст из обычных элементов и элементов-ссылок, чередуя их в одном параграфе. Пользователь увидит единый текст, где кликабельны только нужные фрагменты.

Итог

Что важно запомнить

Для текста со ссылками используйте форматированный документ, для кликабельной надписи на форме — декорацию с включённой гиперссылкой и обработчиком «Нажатие», для переходов между объектами — навигационные ссылки. Интерактивные действия выполняйте на клиенте, навигационные ссылки формируйте в той же базе и не отправляйте их внешним получателям.