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

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

Как получить гиперссылку на документ в 1С

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

Гиперссылка на документ в 1С — это навигационная ссылка вида e1cib/data/Документ.РеализацияТоваровУслуг?ref=..., которая позволяет открыть конкретный объект базы одним кликом. Такие ссылки используют для быстрого обмена документами между коллегами, вставки в письма, задачи, регламентные задания и внешние системы.

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

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

Что такое навигационная ссылка и когда она нужна

Навигационная ссылка — внутренний адрес объекта в информационной базе. Она начинается с префикса e1cib/data/, далее указывается тип объекта (например, Документ.ПоступлениеТоваровУслуг) и уникальный идентификатор ссылки. Платформа по этой строке однозначно находит объект и открывает его форму.

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

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

В управляемом приложении откройте нужный документ, затем нажмите кнопку «Ещё» в командной панели формы и выберите пункт «Получить ссылку». В появившемся окне будет показана навигационная ссылка — её можно скопировать кнопкой «Копировать» и вставить в письмо, мессенджер или задачу.

В ряде конфигураций на «Такси» пункт может называться «Вывести ссылку» или находиться в меню «Ещё» → «Получить ссылку...». Если пункта нет, проверьте, не снят ли он из командной панели настройками формы — его можно вернуть через «Ещё» → «Изменить форму» либо попросить администратора проверить настройки интерфейса.

Полученную строку получатель вставляет в 1С через пункт главного меню «Файл» → «Перейти по ссылке» либо просто кликает по ней, если ссылка оформлена как гиперссылка внутри самой 1С (например, в задаче или обсуждении).

Копирование ссылки через интерфейс
  1. 1
    Откройте документ в 1С
  2. 2
    Нажмите «Ещё» в командной панели формы
  3. 3
    Выберите «Получить ссылку»
  4. 4
    Скопируйте строку и отправьте коллеге
  5. 5
    Получатель открывает её через «Файл» → «Перейти по ссылке»

Как получить ссылку программно

Для программного получения используется глобальный метод ПолучитьНавигационнуюСсылку(). В него передаётся ссылка на объект, а метод возвращает строку навигационной ссылки. Метод работает и на сервере, и на клиенте.

ДокументСсылка = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("000001", ТекущаяДатаСеанса());

Если Не ДокументСсылка.Пустая() Тогда

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

// НавигационнаяСсылка = "e1cib/data/Документ.РеализацияТоваровУслуг?ref=..."

КонецЕсли;

Если нужно получить ссылку из текущей строки таблицы формы (например, в обработчике списка документов), используйте данные текущей строки:

ТекущиеДанные = Элементы.Список.ТекущиеДанные;

Если ТекущиеДанные <> Неопределено Тогда

СсылкаСтрокой = ПолучитьНавигационнуюСсылку(ТекущиеДанные.Ссылка);

КонецЕсли;

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

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

Как получить внешнюю ссылку для браузера

Навигационная ссылка e1cib/... открывается только в клиенте 1С. Если база опубликована на веб-сервере, можно сформировать обычную HTTP-ссылку, добавив навигационную часть к адресу публикации:

АдресПубликации = "https://server/base/"; // адрес публикации базы

ВнешняяСсылка = АдресПубликации + "#" + ПолучитьНавигационнуюСсылку(ДокументСсылка);

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

Два вида ссылок

Навигационная (e1cib/...)

Работает только в клиенте 1С, подключённом к той же базе. Не требует публикации на веб-сервере.

Внешняя (https://...#e1cib/...)

Открывается в браузере или тонком клиенте. Требует публикации базы на веб-сервере и авторизации пользователя.

Как открыть документ по полученной ссылке

Самый простой способ — главное меню «Файл» → «Перейти по ссылке». Вставьте строку e1cib/... в поле и нажмите «Перейти»: платформа откроет форму документа. В некоторых версиях платформы пункт находится в меню «Сервисы» или вызывается из системной области.

Программно перейти по ссылке можно методом ПерейтиПоНавигационнойСсылке(Ссылка) на клиенте. Это удобно в обработчиках нажатия на гиперссылку в отчётах и форматированных документах:

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

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

ПерейтиПоНавигационнойСсылке(ДанныеСобытия.Href);

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

Если ссылка пришла извне (из письма), а 1С уже запущена, достаточно кликнуть по ней — операционная система при настроенной ассоциации протокола e1c передаст ссылку в клиент. Если ассоциация не настроена, используйте «Перейти по ссылке» вручную.

Контрольные точки

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

Переход по ссылке
Норма

Открывается форма именно того документа, что был скопирован

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

Ошибка «объект не найден» — документ удалён или ссылка из другой базы

Права доступа
Норма

Документ открывается у получателя без предупреждений

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

Сообщение о нарушении прав доступа — нужно выдать права на документ

Тип ссылки
Норма

Строка начинается с e1cib/data/ и содержит тип объекта

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

Скопирован неполный фрагмент или обычный текст вместо ссылки

Типичные ошибки и ограничения

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

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

Третья ошибка — использование навигационной ссылки как постоянного идентификатора во внешних системах. Для интеграций надёжнее хранить GUID объекта (метод УникальныйИдентификатор() у ссылки) и строить ссылку в момент обращения, а не сохранять готовую строку e1cib.

Типичные ошибки
01
Отправка ссылки коллеге, работающему в другой базе — ссылка не откроется или откроет не тот объект
02
Игнорирование прав доступа — получатель видит ошибку вместо документа
03
Сохранение ссылки e1cib во внешней системе надолго — после обмена или переноса данных она устаревает
04
Копирование ссылки из адресной строки браузера неполностью — обрезанная ссылка не сработает

FAQ

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

Да. В списке документов встаньте на нужную строку и используйте «Ещё» → «Получить ссылку» — платформа вернёт ссылку на текущий объект списка. Программно достаточно иметь значение ссылки и вызвать ПолучитьНавигационнуюСсылку().

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

Да. Ссылка привязана к объекту, а не к его состоянию: изменение реквизитов, перепроведение и пометка на удаление (пока объект физически не удалён) не ломают ссылку. После физического удаления документа ссылка перестаёт работать.

Как получить GUID документа вместо навигационной ссылки?

Используйте выражение ДокументСсылка.УникальныйИдентификатор() — оно вернёт строку GUID. Обратное преобразование: Документы.ВидДокумента.ПолучитьСсылку(Новый УникальныйИдентификатор(СтрокаGUID)).

Почему ссылка из письма не открывается кликом?

Обычно не настроена ассоциация протокола e1c в операционной системе или почтовый клиент не распознаёт ссылку как кликабельную. Решение — вставить строку вручную через «Файл» → «Перейти по ссылке» в самой 1С.

Можно ли сформировать ссылку на конкретную строку табличной части документа?

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

Отличается ли получение ссылки в обычном приложении (8.2)?

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

Итог

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

Ссылку на документ получают через «Ещё» → «Получить ссылку» или методом ПолучитьНавигационнуюСсылку(). Ссылка действует только внутри своей базы и у пользователей с правами доступа. Для веб-клиента к навигационной ссылке добавляют адрес публикации.