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