Разработка и Конфигурация · 10 мин
Как сделать гиперссылку на форме в 1С
Как добавить гиперссылку на форму в 1С: надпись-ссылка, обработчик Нажатие, Гиперссылка, открытие сайта и файлов. Примеры кода и типичные ошибки.
Гиперссылка на форме в 1С — это элемент интерфейса, который выглядит как ссылка и при нажатии выполняет заданное действие: открывает сайт в браузере, запускает файл, переходит к другому объекту конфигурации или вызывает произвольную процедуру. В управляемых формах такая ссылка реализуется через элемент «Надпись» с включённым свойством «Гиперссылка».
Механизм одинаково работает в типовых и самописных конфигурациях на платформе 8.3: разработчик добавляет надпись на форму, включает режим гиперссылки и пишет обработчик события «Нажатие». Вся логика — что именно произойдёт по клику — описывается в модуле формы на встроенном языке.
Ниже разобраны основные способы: от простого оформления ссылки в конфигураторе до программного создания, открытия веб-страниц, файлов и объектов базы, а также типичные ошибки, из-за которых ссылка не реагирует на нажатие.
Как добавить надпись-гиперссылку в конфигураторе
Откройте нужную форму в конфигураторе (например, форму элемента справочника или документа). В дереве элементов формы выберите место, где должна располагаться ссылка, и добавьте новый элемент типа «Надпись» через контекстное меню «Добавить» → «Поле» → «Надпись» или кнопку добавления элемента.
В палитре свойств нового элемента найдите свойство «Гиперссылка» и установите его в значение «Истина». После этого текст надписи на форме будет отображаться как ссылка — обычно синим цветом, в соответствии с текущим стилем интерфейса. Заголовок элемента задайте понятным пользователю: «Открыть сайт поставщика», «Инструкция по заполнению» и т.п.
Обратите внимание на свойство «Вид» надписи. Для информационной ссылки подходит обычная надпись; если нужно оформить ссылку как важное предупреждение, можно использовать вид «Надпись картинки» или отдельные виды оформления, доступные в палитре свойств.
- 1Откройте форму объекта в конфигураторе
- 2Добавьте элемент «Надпись» в нужную группу формы
- 3Установите свойство «Гиперссылка» = Истина
- 4Заполните заголовок надписи понятным текстом
- 5Создайте обработчик события «Нажатие»
- 6Напишите код действия в модуле формы
- 7Сохраните конфигурацию и проверьте в режиме предприятия
Обработчик события «Нажатие»
Сама по себе надпись с включённым свойством «Гиперссылка» ничего не делает — вся логика задаётся в обработчике. В палитре свойств найдите событие «Нажатие» и нажмите кнопку открытия (значок лупы). Платформа создаст в модуле формы процедуру-заготовку с директивой &НаКлиенте.
Пример обработчика, открывающего сайт в браузере по умолчанию:
&НаКлиенте
Процедура НадписьСайтНажатие(Элемент)
ЗапуститьПриложение("https://example.ru");
КонецПроцедуры
Если нужно открыть другой объект той же информационной базы — например, связанный документ или элемент справочника — удобнее использовать навигационную ссылку:
&НаКлиенте
Процедура НадписьДокументНажатие(Элемент)
ПерейтиПоНавигационнойСсылке(ПолучитьНавигационнуюСсылку(Объект.ДокументОснование));
КонецПроцедуры
Обработчик не обязан открывать что-либо внешнее: в нём можно вызвать любую процедуру — показать предупреждение, открыть общую форму, выполнить команду. По сути, гиперссылка — это визуально «лёгкая» альтернатива кнопке.
Открытие сайта, файла и папки по ссылке
Для открытия внешних ресурсов чаще всего используется метод ЗапуститьПриложение() или его асинхронный аналог НачатьЗапускПриложения(). Платформа передаёт строку операционной системе, и та сама решает, чем её открыть: адрес http/https — в браузере, путь к файлу — в ассоциированной программе, путь к папке — в проводнике.
Пример открытия файла, путь к которому хранится в реквизите объекта:
&НаКлиенте
Процедура НадписьФайлНажатие(Элемент)
Если ЗначениеЗаполнено(Объект.ПутьКФайлу) Тогда
ЗапуститьПриложение(Объект.ПутьКФайлу);
Иначе
ПоказатьПредупреждение(, "Путь к файлу не заполнен");
КонецЕсли;
КонецПроцедуры
Используйте асинхронный вариант НачатьЗапускПриложения(), если конфигурация работает в режиме отказа от модальности — синхронный вызов в таком режиме может быть заблокирован. В веб-клиенте запуск локальных файлов и приложений ограничен политиками браузера, поэтому для веб-клиента надёжнее открывать только веб-адреса.
Программное создание гиперссылки
Если ссылка нужна не всегда, а по условию — например, только для определённого статуса документа — элемент можно создать программно в обработчике ПриСозданииНаСервере. Элемент добавляется в коллекцию Элементы формы, а обработчик назначается через метод УстановитьДействие.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
НовыйЭлемент = Элементы.Добавить("НадписьИнструкция", Тип("ПолеФормы"), Элементы.ГруппаШапка);
НовыйЭлемент.Вид = ВидПоляФормы.ПолеНадписи;
НовыйЭлемент.Гиперссылка = Истина;
НовыйЭлемент.Заголовок = "Открыть инструкцию";
НовыйЭлемент.УстановитьДействие("Нажатие", "НадписьИнструкцияНажатие");
КонецПроцедуры
Процедура НадписьИнструкцияНажатие должна существовать в модуле формы заранее — платформа не создаёт её автоматически. Управлять видимостью ссылки можно в любой момент через свойство Элементы.НадписьИнструкция.Видимость.
Гиперссылка в декорации и форматированная строка
Помимо надписи, ссылочное поведение поддерживает элемент «Декорация». Декорация с видом «Надпись» и свойством «Гиперссылка» ведёт себя аналогично, но даёт больше свободы в оформлении: цвет, шрифт, рамку. Это удобно для информационных панелей и подсказок на форме.
Если ссылка должна быть частью предложения («Подробнее см. в инструкции по настройке»), используйте форматированную строку. В ней отдельные фрагменты оформляются как ссылки, а переход обрабатывается через событие «ОбработкаНавигационнойСсылки» элемента формы. Значение навигационной ссылки задаётся произвольной строкой, которую разработчик анализирует в обработчике и решает, что открывать.
Способы реализации ссылки на форме
Самый простой вариант: отдельная ссылка с обработчиком Нажатие. Подходит для большинства задач.
То же поведение, но гибче оформление: цвет, шрифт, рамка. Для информационных панелей.
Ссылка внутри текста. Требует обработки события ОбработкаНавигационнойСсылки, реализация сложнее.
Для открытия объектов базы через ПерейтиПоНавигационнойСсылке — стандартный механизм платформы.
Проверка результата и частые ошибки
После настройки обновите конфигурацию базы данных (F7) и откройте форму в режиме предприятия. Признаки корректной работы: надпись отображается цветом ссылки, при наведении курсор меняет вид, при нажатии выполняется заданное действие без сообщений об ошибке.
Если ссылка выглядит как обычный текст, проверьте, что свойство «Гиперссылка» действительно установлено в «Истина» и не переопределено программно. Если при нажатии появляется ошибка о ненайденной процедуре — проверьте имя обработчика в палитре свойств и наличие процедуры с директивой &НаКлиенте в модуле формы.
Отдельный случай — ссылка работает в толстом клиенте, но не в веб-клиенте. Обычно причина в ЗапуститьПриложение() с локальным путём: браузер блокирует доступ к файловой системе. Для кросс-клиентской работы используйте веб-адреса или механизм навигационных ссылок платформы.
Ограничения и рекомендации
Гиперссылка на форме не является самостоятельной кнопкой командного интерфейса: она не попадает в панель действий и не имеет сочетания клавиш по умолчанию. Если действие критично для сценария работы пользователя, лучше дублировать его командой формы.
Не злоупотребляйте количеством ссылок: форма с десятком подчёркнутых надписей воспринимается хуже, чем форма с двумя-тремя понятными ссылками. Группируйте второстепенные переходы в подменю «Ещё» или на отдельную форму-навигатор.
Что важно запомнить
Гиперссылка на форме 1С — это надпись или декорация со свойством «Гиперссылка» и обработчиком «Нажатие». Для сайтов и файлов используйте ЗапуститьПриложение (лучше асинхронный вариант), для объектов базы — ПерейтиПоНавигационнойСсылке. Всегда проверяйте работу в том клиенте, где будут работать пользователи.
Частые вопросы
Почему надпись-гиперссылка не нажимается?
Чаще всего не установлено свойство «Гиперссылка» = Истина или элемент недоступен (свойство «Доступность» = Ложь). Также проверьте, что на форме нет перекрывающего элемента и что обработчик «Нажатие» назначен.
Как открыть сайт в браузере из формы 1С?
В клиентском обработчике нажатия вызовите ЗапуститьПриложение("https://адрес") или асинхронный НачатьЗапускПриложения(). Операционная система откроет адрес в браузере по умолчанию.
Можно ли сделать ссылку на документ внутри базы?
Да. Получите навигационную ссылку функцией ПолучитьНавигационнуюСсылку(Объект) и передайте её в ПерейтиПоНавигационнойСсылке(). Это штатный способ, работающий во всех клиентах.
Работает ли гиперссылка в веб-клиенте?
Сам элемент и обработчик нажатия работают. Ограничены действия с локальной файловой системой: запуск файлов и приложений через ЗапуститьПриложение браузер может заблокировать. Веб-адреса и навигационные ссылки открываются без проблем.
Как сделать ссылку частью обычного текста?
Используйте элемент формы с форматированной строкой: нужный фрагмент оформляется как ссылка, а переход обрабатывается в событии «ОбработкаНавигационнойСсылки», где по значению ссылки определяется дальнейшее действие.
Чем гиперссылка отличается от кнопки на форме?
Функционально — ничем: обе вызывают обработчик. Разница визуальная: ссылка выглядит легче и подходит для второстепенных переходов, кнопка — для основных действий. Кнопку можно разместить в командной панели, ссылку — нет.