Разработка и Конфигурация · 9 мин
Как получить гиперссылку на документ в 1С
Как получить гиперссылку на документ в 1С: метод ПолучитьНавигационнуюСсылку, копирование ссылки из формы, отправка коллеге. Примеры кода и типичные ошибки.
Гиперссылка на документ в 1С — это навигационная ссылка вида e1cib/data/Документ.РеализацияТоваровУслуг?ref=..., которая позволяет открыть конкретный объект базы одним кликом. Такие ссылки используют для быстрого обмена документами между коллегами, вставки в письма, задачи, регламентные задания и внешние системы.
Получить ссылку можно двумя путями: штатными средствами интерфейса без программирования или программно через встроенный язык 1С. Выбор зависит от задачи: разовая отправка коллеге проще через интерфейс, массовая рассылка или интеграция требуют кода.
Важно понимать ограничение: навигационная ссылка работает только внутри той же информационной базы. Пользователь, получивший ссылку, должен иметь доступ к этой базе и права на просмотр документа, иначе при переходе появится сообщение об ошибке доступа.
Что такое навигационная ссылка и когда она нужна
Навигационная ссылка — внутренний адрес объекта в информационной базе. Она начинается с префикса e1cib/data/, далее указывается тип объекта (например, Документ.ПоступлениеТоваровУслуг) и уникальный идентификатор ссылки. Платформа по этой строке однозначно находит объект и открывает его форму.
Типовые сценарии использования: менеджер отправляет бухгалтеру ссылку на спорный счёт, руководитель прикрепляет ссылку на заказ в задачу, разработчик формирует список ссылок в отчёте или уведомлении из регламентного задания. Во всех случаях получатель открывает документ напрямую, минуя поиск по журналам.
Как скопировать ссылку через интерфейс без программирования
В управляемом приложении откройте нужный документ, затем нажмите кнопку «Ещё» в командной панели формы и выберите пункт «Получить ссылку». В появившемся окне будет показана навигационная ссылка — её можно скопировать кнопкой «Копировать» и вставить в письмо, мессенджер или задачу.
В ряде конфигураций на «Такси» пункт может называться «Вывести ссылку» или находиться в меню «Ещё» → «Получить ссылку...». Если пункта нет, проверьте, не снят ли он из командной панели настройками формы — его можно вернуть через «Ещё» → «Изменить форму» либо попросить администратора проверить настройки интерфейса.
Полученную строку получатель вставляет в 1С через пункт главного меню «Файл» → «Перейти по ссылке» либо просто кликает по ней, если ссылка оформлена как гиперссылка внутри самой 1С (например, в задаче или обсуждении).
- 1Откройте документ в 1С
- 2Нажмите «Ещё» в командной панели формы
- 3Выберите «Получить ссылку»
- 4Скопируйте строку и отправьте коллеге
- 5Получатель открывает её через «Файл» → «Перейти по ссылке»
Как получить ссылку программно
Для программного получения используется глобальный метод ПолучитьНавигационнуюСсылку(). В него передаётся ссылка на объект, а метод возвращает строку навигационной ссылки. Метод работает и на сервере, и на клиенте.
ДокументСсылка = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("000001", ТекущаяДатаСеанса());
Если Не ДокументСсылка.Пустая() Тогда
НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(ДокументСсылка);
// НавигационнаяСсылка = "e1cib/data/Документ.РеализацияТоваровУслуг?ref=..."
КонецЕсли;
Если нужно получить ссылку из текущей строки таблицы формы (например, в обработчике списка документов), используйте данные текущей строки:
ТекущиеДанные = Элементы.Список.ТекущиеДанные;
Если ТекущиеДанные <> Неопределено Тогда
СсылкаСтрокой = ПолучитьНавигационнуюСсылку(ТекущиеДанные.Ссылка);
КонецЕсли;
Для записей регистров сведений и объектов без «классической» ссылки метод вызывается с дополнительными параметрами — ключом записи или именами измерений. В простых сценариях с документами и справочниками достаточно одного аргумента.
СсылкаНаДокумент = ПолучитьНавигационнуюСсылку(ДокументСсылка);Как получить внешнюю ссылку для браузера
Навигационная ссылка e1cib/... открывается только в клиенте 1С. Если база опубликована на веб-сервере, можно сформировать обычную HTTP-ссылку, добавив навигационную часть к адресу публикации:
АдресПубликации = "https://server/base/"; // адрес публикации базы
ВнешняяСсылка = АдресПубликации + "#" + ПолучитьНавигационнуюСсылку(ДокументСсылка);
Такая ссылка откроет документ в веб-браузере или тонком клиенте после авторизации пользователя. Учтите, что адрес публикации зависит от настроек веб-сервера вашей организации — уточните его у администратора. Для баз, не опубликованных в вебе, этот способ не работает.
Два вида ссылок
Работает только в клиенте 1С, подключённом к той же базе. Не требует публикации на веб-сервере.
Открывается в браузере или тонком клиенте. Требует публикации базы на веб-сервере и авторизации пользователя.
Как открыть документ по полученной ссылке
Самый простой способ — главное меню «Файл» → «Перейти по ссылке». Вставьте строку e1cib/... в поле и нажмите «Перейти»: платформа откроет форму документа. В некоторых версиях платформы пункт находится в меню «Сервисы» или вызывается из системной области.
Программно перейти по ссылке можно методом ПерейтиПоНавигационнойСсылке(Ссылка) на клиенте. Это удобно в обработчиках нажатия на гиперссылку в отчётах и форматированных документах:
Процедура ОбработкаНажатия(Элемент, ДанныеСобытия, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПерейтиПоНавигационнойСсылке(ДанныеСобытия.Href);
КонецПроцедуры
Если ссылка пришла извне (из письма), а 1С уже запущена, достаточно кликнуть по ней — операционная система при настроенной ассоциации протокола e1c передаст ссылку в клиент. Если ассоциация не настроена, используйте «Перейти по ссылке» вручную.
Как проверить результат
Открывается форма именно того документа, что был скопирован
Ошибка «объект не найден» — документ удалён или ссылка из другой базы
Документ открывается у получателя без предупреждений
Сообщение о нарушении прав доступа — нужно выдать права на документ
Строка начинается с e1cib/data/ и содержит тип объекта
Скопирован неполный фрагмент или обычный текст вместо ссылки
Типичные ошибки и ограничения
Наиболее частая проблема — попытка открыть ссылку из одной базы в другой. Навигационная ссылка содержит внутренний идентификатор, уникальный только в пределах конкретной базы. После обмена данными, восстановления из копии или переноса в тестовую базу «старые» ссылки могут указывать на другие объекты или не открываться вовсе.
Вторая ошибка — передача ссылки пользователю без прав. Платформа корректно найдёт объект, но откажет в открытии формы. Перед рассылкой убедитесь, что у получателей есть роль, дающая чтение соответствующего вида документов.
Третья ошибка — использование навигационной ссылки как постоянного идентификатора во внешних системах. Для интеграций надёжнее хранить GUID объекта (метод УникальныйИдентификатор() у ссылки) и строить ссылку в момент обращения, а не сохранять готовую строку e1cib.
FAQ
Можно ли получить ссылку на документ, не открывая его форму?
Да. В списке документов встаньте на нужную строку и используйте «Ещё» → «Получить ссылку» — платформа вернёт ссылку на текущий объект списка. Программно достаточно иметь значение ссылки и вызвать ПолучитьНавигационнуюСсылку().
Работает ли ссылка после перепроведения или изменения документа?
Да. Ссылка привязана к объекту, а не к его состоянию: изменение реквизитов, перепроведение и пометка на удаление (пока объект физически не удалён) не ломают ссылку. После физического удаления документа ссылка перестаёт работать.
Как получить GUID документа вместо навигационной ссылки?
Используйте выражение ДокументСсылка.УникальныйИдентификатор() — оно вернёт строку GUID. Обратное преобразование: Документы.ВидДокумента.ПолучитьСсылку(Новый УникальныйИдентификатор(СтрокаGUID)).
Почему ссылка из письма не открывается кликом?
Обычно не настроена ассоциация протокола e1c в операционной системе или почтовый клиент не распознаёт ссылку как кликабельную. Решение — вставить строку вручную через «Файл» → «Перейти по ссылке» в самой 1С.
Можно ли сформировать ссылку на конкретную строку табличной части документа?
Штатной навигационной ссылки на строку табличной части нет — ссылка ведёт на документ целиком. Обходной путь: открыть документ программно и активизировать нужную строку в обработчике открытия формы.
Отличается ли получение ссылки в обычном приложении (8.2)?
В обычном приложении нет пункта «Получить ссылку» в интерфейсе, но метод ПолучитьНавигационнуюСсылку() работает. Обычно в таких базах ссылки получают программно или через специальные обработки.
Что важно запомнить
Ссылку на документ получают через «Ещё» → «Получить ссылку» или методом ПолучитьНавигационнуюСсылку(). Ссылка действует только внутри своей базы и у пользователей с правами доступа. Для веб-клиента к навигационной ссылке добавляют адрес публикации.