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