Быстрый старт · 10 мин
Как в 1С сделать ссылку на документ
Как в 1С получить и вставить ссылку на документ: навигационная ссылка, копирование в буфер, программный способ через ПолучитьНавигационнуюСсылку.
Ссылка на документ в 1С нужна в двух разных ситуациях: когда вы хотите поделиться с коллегой прямым переходом к конкретному документу (навигационная ссылка) и когда нужно программно получить объект документа в коде или вставить его в поле другого объекта. Оба сценария решаются штатными средствами платформы, без доработок.
Навигационная ссылка выглядит как строка вида e1cib/data/Документ.РеализацияТоваровУслуг?ref=... и работает внутри информационной базы: получатель открывает её через команду «Перейти по ссылке» и сразу попадает в нужный документ. Это удобно для обсуждений в почте, мессенджерах и задачах.
Отдельный случай — ссылка как значение реквизита. Когда в поле ввода нужно указать документ, 1С хранит именно ссылку на объект базы, а не его номер или дату. Ниже разберём все способы: от копирования ссылки пользователем до программного получения в коде.
Что такое навигационная ссылка и когда она нужна
Навигационная ссылка — это внутренний адрес объекта в информационной базе. Она уникально идентифицирует документ, элемент справочника, запись регистра и даже конкретную форму. По сути это аналог URL, только работает внутри клиентского приложения 1С, а не в браузере.
Типовые сценарии использования: бухгалтер просит коллегу проверить конкретную реализацию и присылает ссылку в почте; руководитель прикладывает ссылку к задаче; специалист поддержки просит пользователя прислать ссылку на «проблемный» документ вместо скриншота. Во всех случаях получатель открывает объект одним действием, без поиска по номеру и дате.
Важно понимать ограничение: навигационная ссылка работает только в той базе, где она создана. Если скопировать её из рабочей базы и попытаться открыть в тестовой копии, документ либо не найдётся, либо откроется другой объект с совпадающим внутренним идентификатором.
Как скопировать ссылку на документ через интерфейс
Самый простой способ не требует никаких прав и настроек. Откройте нужный документ, затем в правом верхнем углу формы нажмите кнопку «Ещё» и выберите пункт «Получить ссылку...». В появившемся окне платформа покажет сформированную строку — нажмите «Скопировать», и ссылка окажется в буфере обмена.
Тот же результат даёт сочетание клавиш Ctrl+F11, когда форма документа активна. В некоторых конфигурациях команда доступна и из списка документов: выделите строку, нажмите «Ещё» в командной панели списка и найдите пункт получения ссылки — тогда даже не нужно открывать сам документ.
- 1Откройте документ или выделите его в списке
- 2Нажмите «Ещё → Получить ссылку...» или Ctrl+F11
- 3В окне ссылки нажмите «Скопировать»
- 4Вставьте ссылку в письмо, задачу или сообщение
- 5Попросите получателя открыть её через «Перейти по ссылке»
Проверить результат просто: вставьте скопированное в любое текстовое поле. Корректная ссылка начинается с e1cib/data/, содержит имя типа объекта (например, Документ.ПоступлениеТоваровУслуг) и параметр ref с внутренним идентификатором. Если вместо этого скопировался номер документа — вы использовали другую команду.
Как открыть документ по полученной ссылке
Получателю ссылки нужно выполнить обратное действие. В главном меню клиентского приложения выберите команду «Перейти по ссылке» (в типовых конфигурациях она находится в меню «Сервис» или доступна по Ctrl+F11 в пустой области — зависит от настроек интерфейса). Вставьте строку в поле и нажмите «Перейти».
Если документ существует и у пользователя есть права на его просмотр, форма откроется сразу. Если появилось сообщение «Объект не найден» — возможны три причины: документ удалён, ссылка скопирована из другой базы, либо строка повреждена при пересылке (обрезана или перенесена).
Как проверить результат
Документ открывается сразу, номер и дата совпадают с ожидаемыми
Сообщение «Объект не найден» или открывается другой документ
Строка начинается с e1cib/data/ и содержит тип документа
Скопирован только номер или дата документа
У пользователя есть права на чтение этого вида документов
Ошибка доступа при переходе
Как вставить документ в поле ввода (ссылка как значение)
Когда в документе или справочнике есть реквизит типа «ДокументСсылка», его нужно заполнить ссылкой на конкретный объект. Сделать это можно несколькими способами: нажать кнопку выбора и найти документ в открывшемся списке, начать вводить номер документа прямо в поле (сработает подбор по введённой строке) или перетащить документ мышью из списка в поле.
Подбор по вводу — самый быстрый вариант: введите несколько цифр номера, и платформа покажет выпадающий список подходящих документов с номерами и датами. Выберите нужный — в поле запишется именно ссылка, а не текст. Признак правильного заполнения: значение отображается как представление документа и по кнопке открытия (лупа или стрелка) открывается сам документ.
Как получить ссылку на документ программно
В коде на встроенном языке ссылка получается через менеджер документа. Для поиска по номеру используется метод НайтиПоНомеру, для перебора — запрос. Навигационную ссылку формирует функция ПолучитьНавигационнуюСсылку().
ДокументСсылка = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("0000-000123", ТекущаяДатаСеанса());
Если Не ДокументСсылка.Пустая() Тогда
НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(ДокументСсылка);
Сообщить(НавигационнаяСсылка);
Иначе
Сообщить("Документ не найден");
КонецЕсли;
Обратите внимание на типичный нюанс: НайтиПоНомеру ищет документ в пределах периода, поэтому вторым параметром передаётся дата, попадающая в нужный интервал (для большинства видов документов — год). Если искать документ прошлого года с текущей датой, поиск может ничего не вернуть.
Для поиска по уникальному идентификатору (например, полученному из внешней системы) используйте конструкцию Документы.ИмяДокумента.ПолучитьСсылку(Новый УникальныйИдентификатор(СтрокаGUID)). Это самый надёжный способ сопоставления объектов при обменах.
Ссылка = Документы.СчетФактура.ПолучитьСсылку(Новый УникальныйИдентификатор("a1b2c3d4-..."));
НавСсылка = ПолучитьНавигационнуюСсылку(Ссылка);Как поделиться ссылкой с внешним пользователем
Стандартная навигационная ссылка не откроется в браузере у человека без доступа к базе. Если база опубликована на веб-сервере, можно сформировать веб-ссылку: она состоит из адреса публикации базы и навигационной части, например http://server/base/#e1cib/data/Документ...?ref=.... Такую ссылку можно отправить пользователю веб-клиента.
Для полностью внешних адресатов (клиентов, контрагентов) навигационные ссылки не подходят в принципе. В этом случае используют печатные формы, отправку PDF или механизмы внешних печатных форм и сервисов совместной работы, если они внедрены в конфигурацию.
Типичные ошибки и ограничения
Чаще всего проблемы возникают не при получении ссылки, а при её использовании. Ниже — ситуации, которые регулярно встречаются на практике.
Ещё одно ограничение: навигационная ссылка не гарантирует доступ. Даже корректная ссылка не откроется у пользователя без прав на чтение этого вида документов — платформа выдаст ошибку доступа. Это нормальное поведение, а не неисправность.
Что важно запомнить
Навигационная ссылка копируется через «Ещё → Получить ссылку» или Ctrl+F11 и открывается командой «Перейти по ссылке» только в той же базе. В коде ссылку на документ получают через Документы.Имя.НайтиПоНомеру() или ПолучитьСсылку(), а навигационную строку — функцией ПолучитьНавигационнуюСсылку(). Для обменов между системами используйте GUID, а не навигационную ссылку.
Частые вопросы
Можно ли открыть документ по ссылке в браузере?
Да, если информационная база опубликована на веб-сервере. Добавьте навигационную часть к адресу публикации после символа # — получится полноценная веб-ссылка. Пользователю потребуется логин и пароль от базы и права на просмотр документа.
Почему по ссылке открывается «Объект не найден»?
Три основные причины: документ удалён или помечен и затем удалён окончательно, ссылка скопирована из другой базы (например, из тестовой копии), либо строка была обрезана при пересылке. Проверьте ссылку у отправителя и убедитесь, что работаете в той же базе.
Как получить ссылку на документ, зная только его номер?
В интерфейсе — найдите документ в журнале по номеру через отбор и используйте «Получить ссылку». В коде — метод НайтиПоНомеру с указанием даты, попадающей в период документа. Только номера недостаточно, так как нумерация повторяется в разных периодах.
Чем ссылка отличается от уникального идентификатора (GUID)?
Ссылка — это объектное значение внутри 1С, которое указывает на документ. GUID — строковое представление внутреннего идентификатора этой ссылки, удобное для обмена с внешними системами. Из GUID можно восстановить ссылку методом ПолучитьСсылку.
Сохранится ли навигационная ссылка после обмена данными?
При типовом обмене объект переносится с сохранением GUID, поэтому ссылка обычно остаётся рабочей в базе-приёмнике. Но при загрузке данных другими способами (например, через перенос с новым созданием объектов) ref может измениться, и старые ссылки перестанут работать.
Можно ли сделать ссылку на конкретную строку табличной части документа?
Штатно — нет: навигационная ссылка указывает на документ целиком. В коде можно программно открыть форму документа и активизировать нужную строку, но для пользователя ссылка всегда ведёт на документ в целом.