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

Быстрый старт · 10 мин

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

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

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

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

Важно понимать разницу между навигационной ссылкой и уникальным идентификатором (GUID) объекта. Навигационная ссылка открывается только внутри 1С, а GUID — это технический идентификатор, который используется в обменах, веб-сервисах и внешних системах. Ниже разобраны оба подхода с конкретными действиями.

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

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

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

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

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

В типовых конфигурациях на управляемых формах (1С:Бухгалтерия, Управление торговлей, ERP, ЗУП) команда получения ссылки встроена в стандартное меню формы. Порядок действий одинаков для документов, справочников и большинства других объектов.

Порядок действий
  1. 1
    Откройте нужный документ в режиме просмотра или редактирования
  2. 2
    Нажмите кнопку «Ещё» в командной панели формы (обычно справа вверху)
  3. 3
    Выберите пункт «Получить ссылку...»
  4. 4
    В открывшемся окне нажмите «Копировать в буфер обмена» или скопируйте текст ссылки вручную
  5. 5
    Вставьте ссылку в письмо, сообщение или задачу

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

Проверить результат просто: вставьте скопированную ссылку в поле «Перейти по ссылке» (меню «Ещё» в списке документов или команда «Перейти по ссылке» в главном меню «Файл» в некоторых конфигурациях) либо передайте её коллеге. Если документ открылся — ссылка корректна.

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

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

Второй вариант — кликабельные ссылки внутри самой 1С. Если ссылка вставлена в текстовый документ, комментарий задачи или письмо, сформированное внутри системы, платформа часто распознаёт её как гиперссылку, и документ открывается одним кликом.

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

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

Разработчику платформа предоставляет функцию ПолучитьНавигационнуюСсылку(). Она принимает ссылку на объект базы данных и возвращает строку навигационной ссылки. Типичный код выглядит так:

bsl
НавСсылка = ПолучитьНавигационнуюСсылку(ДокументОбъект.Ссылка);
// Результат: e1cib/data/Документ.РеализацияТоваровУслуг?ref=...

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

Обратная задача — получить объект по навигационной ссылке — решается разбором строки: из параметра ref извлекается идентификатор, который преобразуется в ссылку через Документы.ИмяДокумента.ПолучитьСсылку(Новый УникальныйИдентификатор(Ид)). Учтите, что идентификатор в ссылке хранится в особом порядке байтов, поэтому при разборе вручную легко ошибиться; надёжнее использовать готовые функции из общих модулей конфигурации, если они есть.

Как получить GUID документа для внешних систем

Для интеграций с сайтом, CRM или другой учётной системой обычно нужен не навигационный формат, а чистый GUID — строка вида 8e5f3a2c-.... Получить его можно так:

bsl
ГУИД = XMLСтрока(ДокументОбъект.Ссылка);
// или
ГУИД = Строка(ДокументОбъект.Ссылка.УникальныйИдентификатор());

По GUID можно восстановить ссылку на объект:

bsl
СсылкаНаДокумент = Документы.РеализацияТоваровУслуг.ПолучитьСсылку(Новый УникальныйИдентификатор(ГУИД));
Если СсылкаНаДокумент.ПолучитьОбъект() = Неопределено Тогда
    // объекта с таким GUID в базе нет
КонецЕсли;

Обязательно проверяйте существование объекта после восстановления ссылки: ПолучитьСсылку() создаёт «битую» ссылку даже по несуществующему GUID, и обращение к реквизитам такой ссылки вызовет ошибку. Признак проблемы — объект не получается или поля возвращают пустые значения.

Частые ошибки и ограничения

Самая распространённая ошибка — попытка открыть ссылку из одной базы в другой. Идентификаторы объектов уникальны в пределах конкретной базы, поэтому ссылка из рабочей базы в тестовой копии либо не сработает, либо, что опаснее, откроет другой документ с совпавшим идентификатором. Всегда проверяйте, в какой базе работает получатель.

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

Типичные ошибки
01
Отправка ссылки коллеге без прав на документ — получатель видит ошибку доступа вместо формы
02
Использование ссылки из рабочей базы в тестовой — открывается другой объект или ничего не открывается
03
Восстановление ссылки по GUID без проверки существования объекта — ошибка при обращении к реквизитам
04
Ручной разбор параметра ref без учёта порядка байтов — получается неверный идентификатор

Также помните: навигационная ссылка не является ссылкой на файл. Она не откроется в проводнике Windows и не скачает документ — она лишь указывает платформе, какой объект показать в интерфейсе.

Как проверить, что всё сделано правильно

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

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

Переход по ссылке в той же базе
Норма

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

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

Сообщение об ошибке, пустая форма или другой документ

Права получателя
Норма

Пользователь видит документ и может его прочитать

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

Сообщение о нарушении прав доступа

Восстановление по GUID программно
Норма

ПолучитьОбъект() возвращает объект, реквизиты заполнены

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

ПолучитьОбъект() возвращает Неопределено

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

Итог

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

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

Частые вопросы

Можно ли открыть документ по ссылке через браузер без установленной 1С?

Да, если база опубликована на веб-сервере и у вас есть доступ к веб-клиенту. Сначала войдите в базу через браузер, затем используйте команду перехода по навигационной ссылке внутри веб-клиента. Просто вставить e1cib-ссылку в адресную строку браузера недостаточно.

Почему коллега нажимает на ссылку и получает ошибку доступа?

У его учётной записи нет прав на просмотр этого вида документов или на конкретный объект (если настроено ограничение доступа на уровне записей). Обратитесь к администратору для проверки ролей пользователя.

Сохранится ли ссылка, если документ перепровести или изменить?

Да. Навигационная ссылка привязана к уникальному идентификатору объекта, а он не меняется при редактировании, перепроведении или смене номера. Ссылка перестанет работать только после физического удаления документа из базы.

Чем навигационная ссылка отличается от ссылки на печатную форму?

Навигационная ссылка открывает форму самого документа в программе. Печатная форма — это отдельный табличный документ, у неё нет постоянной навигационной ссылки; её можно только сохранить в файл (PDF, Excel) и передать файлом.

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

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

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

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