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

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

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

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

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

Навигационная ссылка выглядит как строка вида e1cib/data/Документ.РеализацияТоваровУслуг?ref=... и работает внутри информационной базы: получатель открывает её через команду «Перейти по ссылке» и сразу попадает в нужный документ. Это удобно для обсуждений в почте, мессенджерах и задачах.

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

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

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

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

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

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

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

Тот же результат даёт сочетание клавиш Ctrl+F11, когда форма документа активна. В некоторых конфигурациях команда доступна и из списка документов: выделите строку, нажмите «Ещё» в командной панели списка и найдите пункт получения ссылки — тогда даже не нужно открывать сам документ.

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

Проверить результат просто: вставьте скопированное в любое текстовое поле. Корректная ссылка начинается с e1cib/data/, содержит имя типа объекта (например, Документ.ПоступлениеТоваровУслуг) и параметр ref с внутренним идентификатором. Если вместо этого скопировался номер документа — вы использовали другую команду.

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

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

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

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

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

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

Документ открывается сразу, номер и дата совпадают с ожидаемыми

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

Сообщение «Объект не найден» или открывается другой документ

Внешний вид ссылки
Норма

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

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

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

Доступ получателя
Норма

У пользователя есть права на чтение этого вида документов

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

Ошибка доступа при переходе

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

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

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

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

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

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

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

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

Сообщить(НавигационнаяСсылка);

Иначе

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

КонецЕсли;

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

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

bsl
Ссылка = Документы.СчетФактура.ПолучитьСсылку(Новый УникальныйИдентификатор("a1b2c3d4-..."));
НавСсылка = ПолучитьНавигационнуюСсылку(Ссылка);

Как поделиться ссылкой с внешним пользователем

Стандартная навигационная ссылка не откроется в браузере у человека без доступа к базе. Если база опубликована на веб-сервере, можно сформировать веб-ссылку: она состоит из адреса публикации базы и навигационной части, например http://server/base/#e1cib/data/Документ...?ref=.... Такую ссылку можно отправить пользователю веб-клиента.

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

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

Чаще всего проблемы возникают не при получении ссылки, а при её использовании. Ниже — ситуации, которые регулярно встречаются на практике.

Типичные ошибки
01
Копирование ссылки из другой базы: в копии или соседней базе открывается другой документ или «Объект не найден» — всегда проверяйте, из какой базы взята ссылка
02
Поиск по номеру без учёта периода: НайтиПоНомеру с текущей датой не находит документы прошлых лет — передавайте дату нужного периода
03
Хранение навигационной ссылки как постоянного идентификатора: после загрузки данных из другой базы ref может измениться — для обменов используйте GUID
04
Пересылка ссылки с переносом строки: почтовый клиент обрезает длинную строку, и получатель не может её открыть — отправляйте ссылку целиком в одну строку

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

Итог

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

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

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

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

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

Почему по ссылке открывается «Объект не найден»?

Три основные причины: документ удалён или помечен и затем удалён окончательно, ссылка скопирована из другой базы (например, из тестовой копии), либо строка была обрезана при пересылке. Проверьте ссылку у отправителя и убедитесь, что работаете в той же базе.

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

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

Чем ссылка отличается от уникального идентификатора (GUID)?

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

Сохранится ли навигационная ссылка после обмена данными?

При типовом обмене объект переносится с сохранением GUID, поэтому ссылка обычно остаётся рабочей в базе-приёмнике. Но при загрузке данных другими способами (например, через перенос с новым созданием объектов) ref может измениться, и старые ссылки перестанут работать.

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

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