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

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

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

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

Под «ссылкой на документ» в 1С понимают разные вещи: навигационную ссылку вида e1cib/data/Документ.РеализацияТоваровУслуг?ref=..., внутреннюю ссылку объекта в коде (тип ДокументСсылка) или внешнюю ссылку для открытия документа через веб-клиент. Способ получения зависит от того, где вы работаете — в пользовательском интерфейсе, в коде конфигурации или при интеграции с внешними системами.

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

Ниже разобраны все рабочие способы: от кнопки в интерфейсе до программного получения ссылки и построения URL для веб-доступа, а также ограничения и типичные ошибки.

Что такое ссылка на документ в 1С и какие виды бывают

В платформе 1С:Предприятие существует три разных понятия, которые пользователи называют «ссылкой». Первое — внутренняя ссылка объекта (значение типа ДокументСсылка.ИмяДокумента). Это уникальный идентификатор документа внутри базы, который хранится в реквизитах других объектов и используется в коде. Получить её «глазами» нельзя — только программно.

Второе — навигационная ссылка. Это текстовая строка формата e1cib/data/Документ.ЗаказКлиента?ref=..., которую платформа генерирует автоматически. Её можно вставить в поле перехода, отправить коллеге по почте или в мессенджер — при наличии доступа к той же базе документ откроется сразу.

Третье — внешняя ссылка для веб-клиента. Она состоит из адреса опубликованной базы и навигационной ссылки: http://server/base/#e1cib/data/.... Такая ссылка работает только если база опубликована на веб-сервере и у получателя есть логин и пароль.

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

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

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

Получение ссылки в пользовательском режиме
  1. 1
    Откройте нужный документ или выделите его в списке
  2. 2
    Нажмите «Ещё» и выберите «Получить ссылку» либо кнопку со значком цепочки
  3. 3
    Скопируйте ссылку кнопкой «Копировать» или Ctrl+C
  4. 4
    Передайте ссылку коллеге — он откроет её через «Перейти по ссылке»
  5. 5
    Проверьте, что ссылка начинается с e1cib/data/ — иначе скопирован не тот фрагмент

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

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

Разработчику чаще всего нужна не навигационная, а внутренняя ссылка объекта. Если известны номер и дата документа, ссылку находят через менеджер документа:

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

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

Сообщить("Документ не найден");

КонецЕсли;

Если документ выбран пользователем в форме, ссылка уже есть в реквизите формы или в параметре события — искать её не нужно. Для массового получения ссылок эффективнее запрос: он возвращает поле Ссылка для всех документов, удовлетворяющих условию, без обхода объектов в цикле.

Навигационную ссылку из кода получают функцией ПолучитьНавигационнуюСсылку(). Она принимает ссылку на объект и возвращает строку вида e1cib/data/.... Это удобно для формирования писем из 1С, уведомлений в мессенджеры или выгрузки списка документов с гиперссылками.

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

Получение ссылки по уникальному идентификатору (GUID)

Иногда известен только GUID документа — например, он пришёл из внешней системы или из навигационной ссылки. Обратное преобразование выполняется через объект УникальныйИдентификатор и метод ПолучитьСсылку:

Ид = Новый УникальныйИдентификатор("8a9c0015-5d2b-...");

СсылкаНаДокумент = Документы.РеализацияТоваровУслуг.ПолучитьСсылку(Ид);

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

Внешняя ссылка для открытия документа в браузере

Если база опубликована на веб-сервере, документ можно открыть по прямой ссылке из браузера. Формат такой: адрес публикации, символ # и навигационная ссылка. Например: http://server/trade/#e1cib/data/Документ.ЗаказКлиента?ref=....

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

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

Какой вид ссылки выбрать

Навигационная ссылка e1cib/data

Для передачи коллегам внутри одной базы и для кода. Не работает в другой базе и без клиента 1С.

Внутренняя ссылка ДокументСсылка

Для кода, реквизитов, запросов и регистров. Не видна пользователю и не передаётся текстом.

Внешняя ссылка с # для веб-клиента

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

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

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

Вторая ошибка — путать представление документа (номер и дату) со ссылкой. Номер не является уникальным идентификатором: после перенумерации или в другой базе тот же номер будет у другого документа. Для интеграций используйте GUID, а не номер.

Третья типичная проблема — отсутствие прав. Команда «Получить ссылку» доступна не всем ролям, а получатель ссылки может не иметь права чтения документа. Если коллега сообщает, что «ссылка не работает», сначала проверьте его права, а потом саму ссылку.

Типичные ошибки
01
Передача навигационной ссылки в другую базу — документ не найден или открывается чужой объект
02
Использование номера документа как идентификатора в интеграции — после перенумерации связь ломается
03
ПолучитьСсылку(Ид) без проверки существования — битая ссылка и ошибки при обращении к реквизитам
04
Отправка внешней ссылки без учёта прав — получатель видит ошибку доступа вместо документа

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

Для навигационной ссылки признак корректности простой: строка начинается с e1cib/data/, содержит полное имя типа документа и параметр ref. Вставьте её обратно через «Перейти по ссылке» — должен открыться именно тот документ, с которого вы её копировали.

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

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

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

Формат навигационной ссылки
Норма

Начинается с e1cib/data/ и содержит имя типа и ref

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

Скопирован только номер документа или название

Открытие по ссылке
Норма

Открывается тот же документ в той же базе

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

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

Ссылка в коде
Норма

Тип ДокументСсылка, реквизиты читаются

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

Битая ссылка, ошибка при обращении к данным

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

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

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

Можно ли получить ссылку на несохранённый документ?

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

Чем навигационная ссылка отличается от GUID?

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

Почему ссылка открывается у меня, но не работает у коллеги?

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

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

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

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

Сама ссылка не даёт доступа к данным без учётной записи и прав, но раскрывает тип документа и структуру базы. Не отправляйте ссылки за пределы организации и не публикуйте их в открытых источниках.

Итог

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

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