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