Разработка и Конфигурация · 11 мин
Как указать ссылку на документ в 1С
Как получить и указать ссылку на документ в 1С: навигационная ссылка, ПолучитьСсылку, представление ссылки, передача ссылки в запрос и обмен данными.
Под «ссылкой на документ» в 1С понимают несколько разных вещей: объект встроенного языка, который однозначно идентифицирует документ в базе; навигационную ссылку вида e1cib/data/Документ.РеализацияТоваровУслуг?ref=..., которую можно отправить коллеге; или просто текстовое представление документа с номером и датой. Способ указать ссылку зависит от задачи: передать документ в запрос, заполнить реквизит, дать ссылку пользователю или обеспечить обмен между базами.
Ключевой момент: ссылка — это не номер и не наименование документа. Это уникальный идентификатор (GUID), который не меняется при перенумерации и не зависит от видимости документа в списке. Поэтому в коде и реквизитах всегда хранится именно ссылка, а номер и дата — лишь отображаемые атрибуты.
Ниже разобраны все рабочие способы указать ссылку на документ: в интерфейсе пользователя, во встроенном языке, в запросах, при обмене данными и при интеграции через веб-сервисы.
Что такое ссылка на документ и чем она отличается от номера
Каждый документ в информационной базе имеет уникальный идентификатор — GUID. На его основе платформа формирует объект типа «ДокументСсылка.<ИмяДокумента>». Именно этот объект хранится в реквизитах других документов, регистрах и справочниках, когда нужно связать один объект с другим.
Номер документа — это просто строковый или числовой атрибут, который может повторяться между видами документов и даже меняться при перенумерации. Сравнение документов по номеру — частая причина ошибок: два разных документа могут иметь одинаковый номер, а один и тот же документ после перенумерации «потеряется» для поиска по номеру.
Представление ссылки — это то, что видит пользователь: например, «Реализация товаров и услуг 0000-000123 от 15.03.2026». Платформа формирует его автоматически, но его можно переопределить в модуле менеджера объекта через обработчик ОбработкаПолученияПредставления.
Как получить навигационную ссылку и поделиться ею с коллегой
Самый простой способ «указать ссылку» без программирования — получить навигационную ссылку в интерфейсе. Откройте нужный документ, в меню формы (кнопка «Ещё» или значок ссылки, в зависимости от конфигурации) выберите команду «Получить ссылку». Платформа покажет строку вида e1cib/data/Документ.ПоступлениеТоваровУслуг?ref=8a3f00155d....
Эту строку можно отправить коллеге по почте или в мессенджер. Если у получателя есть доступ к той же базе и права на документ, он вставит ссылку в диалог «Перейти по ссылке» (меню «Файл» или сочетание клавиш в тонком клиенте) — и документ откроется сразу, без поиска в журнале.
Навигационные ссылки работают только внутри конкретной информационной базы. Если база была восстановлена из копии или документ создан заново, GUID изменится и старая ссылка перестанет открывать объект. Поэтому внешние регламенты и инструкции не стоит наполнять «жёсткими» навигационными ссылками — лучше указывать номер, дату и вид документа.
- 1Откройте документ в режиме 1С:Предприятие
- 2Нажмите «Ещё» и выберите «Получить ссылку» (или скопируйте навигационную ссылку)
- 3Отправьте строку e1cib/data/... коллеге
- 4Коллега открывает «Файл — Перейти по ссылке», вставляет строку и нажимает «Перейти»
- 5Проверьте, что у коллеги есть права на просмотр этого вида документов
Как получить ссылку на документ во встроенном языке
Ссылка из формы и из реквизита
В модуле формы документа ссылка доступна через Объект.Ссылка. Если реквизит другого объекта имеет тип «ДокументСсылка», его значение уже является ссылкой — ничего дополнительно получать не нужно, достаточно присвоить или прочитать значение.
Ссылка по уникальному идентификатору
Если известен GUID документа (например, получен из внешней системы или из другой базы при обмене), ссылку восстанавливают так:
Идентификатор = Новый УникальныйИдентификатор("8a3f0015-5d0b-11e9-9f2b-00155d0a1b2c");
СсылкаНаДокумент = Документы.РеализацияТоваровУслуг.ПолучитьСсылку(Идентификатор);
Важно понимать: ПолучитьСсылку() не проверяет, существует ли документ с таким GUID в базе. Если документа нет, будет возвращена «битая» ссылка. Проверка существования выполняется запросом или функцией ОбщегоНазначения.СсылкаСуществует() в типовых конфигурациях на БСП.
Поиск документа и получение ссылки
Если известны номер и дата, документ ищут методом НайтиПоНомеру():
СсылкаНаДокумент = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("0000-000123", Дата(2026,3,15));
Если СсылкаНаДокумент.Пустая() Тогда
// документ не найден
КонецЕсли;
Метод возвращает либо ссылку на найденный документ, либо пустую ссылку. Учтите, что номер может быть не уникален в широком интервале дат — передавайте дату, максимально близкую к дате документа.
Как указать ссылку на документ в запросе
В запросах ссылка передаётся как параметр — это единственный корректный способ отбора по конкретному документу. Сравнивать по номеру или представлению в запросе нельзя: это и медленно, и ненадёжно.
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Товары.Номенклатура, Товары.Количество
|ИЗ Документ.РеализацияТоваровУслуг.Товары КАК Товары
|ГДЕ Товары.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", СсылкаНаДокумент);
В полях запроса типа «Ссылка» платформа автоматически предоставляет доступ к реквизитам документа через точку (например, Товары.Ссылка.Контрагент). Однако злоупотреблять обращением через точку к ссылкам в больших выборках не стоит — это приводит к неявным соединениям и замедляет запрос. Лучше явно соединить с таблицей документа.
При динамическом формировании текста запроса никогда не подставляйте GUID строкой — только через параметр. Это защищает от ошибок форматирования и от потенциальных уязвимостей при обработке внешних данных.
Ссылка в реквизитах, печатных формах и при обмене данными
Реквизит с типом «ДокументСсылка»
Чтобы один документ ссылался на другой (например, счёт на оплату — на заказ), в конфигураторе добавляют реквизит с типом ДокументСсылка.ЗаказКлиента или составным типом из нескольких видов документов. Пользователь заполняет такой реквизит выбором из списка, а в коде значение присваивается напрямую: Объект.ДокументОснование = СсылкаНаЗаказ;.
Ссылка в печатной форме
В макетах печатных форм выводят не саму ссылку, а её представление: номер и дату. Для этого используют параметры макета и функции форматирования, например Формат(ДатаДокумента, "ДЛФ=D"). Выводить GUID в печатную форму бессмысленно — он ничего не скажет контрагенту.
Ссылки при обмене между базами
При обмене через планы обмена или универсальный формат EnterpriseData документы сопоставляются именно по GUID. Если в базе-приёмнике документ с таким идентификатором не найден, он создаётся с тем же GUID — так ссылки остаются согласованными между базами. Поэтому при интеграциях критично не удалять документы физически, а пользоваться пометкой удаления: повторная выгрузка восстановит объект с прежней ссылкой.
Как проверить корректность ссылки
Базовые проверки просты: сравнение с пустой ссылкой выполняется через Ссылка.Пустая() или ЗначениеЗаполнено(Ссылка). Это показывает, заполнен ли реквизит, но не гарантирует, что документ существует в базе.
Для проверки существования используют запрос с условием ГДЕ Ссылка = &Ссылка или типовую функцию БСП. Признак битой ссылки в интерфейсе — отображение вида «<Объект не найден> (8a3f0015...)» вместо номера и даты документа.
Найти все битые ссылки в базе помогает штатная обработка «Поиск и удаление дублей» и отчёт по ссылкам на объект (команда «Ещё — Найти ссылки» в форме документа), а также тестирование и исправление информационной базы с включённой проверкой ссылочной целостности.
Как проверить результат
Показывается номер и дата документа
Надпись «Объект не найден» и длинный код
ЗначениеЗаполнено(Ссылка) = Истина и запрос по ссылке возвращает строку
Ссылка заполнена, но запрос ничего не находит
Документ открывается у коллеги в той же базе
Ошибка «объект не найден» или нет прав доступа
Если нужно быстро узнать GUID документа без написания кода, откройте его форму и получите навигационную ссылку через «Ещё — Получить ссылку»: идентификатор содержится в конце строки после параметра ref. Это удобно при отладке обменов.
Частые вопросы
Чем ссылка отличается от объекта документа?
Ссылка — лёгкий идентификатор, позволяющий указать на документ без загрузки его данных. Объект (ДокументОбъект) — полная копия данных документа в памяти, которую можно изменять и записывать. Для чтения одного реквизита достаточно ссылки с обращением через точку; для изменения данных нужен объект, полученный методом ПолучитьОбъект().
Можно ли открыть документ по навигационной ссылке из браузера?
Да, если база опубликована на веб-сервере. Навигационная ссылка дополняется адресом публикации, и по ней документ открывается в веб-клиенте после авторизации. Без публикации базы ссылка e1cib работает только внутри клиентского приложения 1С.
Что делать, если в реквизите отображается «Объект не найден»?
Это битая ссылка: документ был удалён физически или база восстановлена без него. Проверьте корзину помеченных на удаление объектов, журналы обмена и резервные копии. Если документ восстановить нельзя, реквизит очищают или заменяют корректной ссылкой, предварительно зафиксировав, где использовалась битая ссылка.
Как указать ссылку на документ в тексте письма или задачи?
Используйте навигационную ссылку из команды «Получить ссылку», но дублируйте её человекочитаемым описанием: видом документа, номером и датой. Тогда, даже если ссылка перестанет работать (например, после переноса базы), документ можно будет найти вручную.
Меняется ли ссылка при изменении или перепроведении документа?
Нет. GUID документа неизменен на всём протяжении жизни объекта: редактирование, перепроведение, смена номера и даты на ссылку не влияют. Ссылка изменится только если документ удалить и создать заново — это будет уже другой объект.
Что важно запомнить
Ссылка на документ — это уникальный идентификатор, а не номер. В коде её получают через Объект.Ссылка, НайтиПоНомеру() или ПолучитьСсылку() с проверкой существования; в запросы передают только параметром; пользователям дают навигационную ссылку из формы документа. При обменах документы помечают на удаление, а не удаляют физически, чтобы не порождать битые ссылки.