Ссылка на документ, справочник или отчёт 1С: из интерфейса, вручную и программно

· 9 мин

Содержание

Чтобы получить навигационную ссылку в 1С 8.3, откройте нужный документ или элемент справочника и нажмите Shift+F11. Появится окно «Получить ссылку» со строкой вида e1cib/data/Документ.РеализацияТоваровУслуг?ref=8c3a001e6a6f1d6e11e9e5f6a1b2c3d4 — её копируют и отправляют коллеге, а он открывает объект командой «Перейти по ссылке».

Частое заблуждение: такая строка — это не адрес в интернете. Сама по себе она работает только внутри той же информационной базы. Чтобы ссылка открывалась из браузера, письма или с сайта, к ней приписывают адрес веб-публикации базы. Порядок действий одинаков для любой конфигурации на платформе 8.3: Бухгалтерии, ЗУП, УТ или самописной.

Из чего состоит навигационная ссылка

Любая ссылка начинается с префикса e1cib/, дальше идёт тип ссылки, имя объекта метаданных и, при необходимости, параметры.

Тип ссылкиЧто открываетПример
e1cib/data/Конкретный объект: документ, элемент справочника, бизнес-процессe1cib/data/Справочник.Контрагенты?ref=…
e1cib/list/Форму списка объектаe1cib/list/Документ.ПоступлениеТоваровУслуг
e1cib/app/Основную форму отчёта или обработкиe1cib/app/Отчет.ОборотноСальдоваяВедомость
e1cib/command/Команду из командного интерфейсаe1cib/command/ОбщаяКоманда.ИмяКоманды
e1cib/navigationpoint/Раздел или точку навигации интерфейсассылка на раздел и его подменю

Разберём части ссылки на объект:

  • 🔹 Документ.РеализацияТоваровУслуг — тип и имя объекта в конфигураторе, а не синоним из интерфейса. «Реализация (акты, накладные, УПД)» в адрес не пишут.
  • 🔹 ?ref= — параметр с идентификатором записи.
  • 🔹 8c3a001e6a6f1d6e11e9e5f6a1b2c3d4 — 32 шестнадцатеричных символа без дефисов. Это уникальный идентификатор объекта, переставленный по частям (как именно — ниже).

Для регистров сведений ссылка тоже бывает, но вместо ref в ней ключ записи с отбором по измерениям. Такую строку руками не собирают — только через интерфейс или код.

Имена в ссылке пишутся на русском, если конфигурация на русском языке. В браузере кириллица превратится в последовательности вида %D0%94… — это нормальная URL-кодировка, ссылка от этого не ломается.

Получить ссылку на объект через интерфейс 1С

Самый быстрый путь, без программирования и прав администратора.

Ссылка на документ или элемент справочника

  1. Откройте объект двойным щелчком из списка. Новый, ещё не записанный документ ссылку не даст: у него нет идентификатора. Сначала нажмите Записать.
  2. Нажмите Shift+F11. Либо откройте меню формы (кнопка Ещё или значок с тремя точками в заголовке окна) и выберите команду «Получить ссылку».
  3. В окне выделится строка ссылки. Нажмите Ctrl+C, окно закройте.
  4. Вставьте ссылку в письмо, мессенджер или задачу.

Ссылка на список, отчёт или обработку

Та же команда работает в открытой форме списка и в форме отчёта. Для списка получится e1cib/list/…, для отчёта — e1cib/app/….

⚠️ Ссылка на список не хранит ваши отборы и сортировку. Коллега откроет журнал целиком, без фильтра по контрагенту или периоду. Ссылка на отчёт открывает его форму, а не уже сформированный результат.

Как открыть полученную ссылку

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

Ещё два способа:

  • 📌 Если ссылка вставлена в текст комментария, задачи или письма внутри 1С, по ней часто можно просто щёлкнуть — платформа распознаёт гиперссылку.
  • 📌 В веб-клиенте ссылку можно дописать в адресную строку браузера после символа # (подробнее в следующем разделе).

Адрес для веб-клиента и запуска из ярлыка

Внутренняя ссылка превращается во внешнюю, когда к ней добавляют адрес базы.

Ссылка для браузера

Если база опубликована на веб-сервере, адрес строится так:

http://srv-1c/buh/#e1cib/data/Справочник.Контрагенты?ref=8c3a001e6a6f1d6e11e9e5f6a1b2c3d4

Где srv-1c — веб-сервер, buh — имя публикации. Иногда в адресе есть код языка: http://srv-1c/buh/ru_RU/#e1cib/…. Проще всего узнать точный префикс, открыв базу в браузере и скопировав адресную строку до символа #.

Пользователь, перешедший по такой ссылке, сначала увидит окно авторизации (если оно настроено), затем сразу нужную форму.

Ссылка в параметрах запуска тонкого клиента

Тонкий клиент принимает навигационную ссылку через параметр командной строки /URL. Пример ярлыка, который открывает базу сразу на списке счетов:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"srv-1c\buh" /URL"e1cib/list/Документ.СчетНаОплатуПокупателю"

Так делают «рабочий стол одной кнопки» для кассира или кладовщика: ярлык ведёт прямо на его журнал, без поиска по разделам.

Внешняя ссылка формата e1c://

Платформа понимает ссылки с префиксом базы и протоколом e1c://. Для файловой базы адрес содержит путь к каталогу, для клиент-серверной — сервер и имя базы:

e1c://filev/C:/Bases/Buh#e1cib/data/Справочник.Контрагенты?ref=…
e1c://server/srv-1c/buh#e1cib/data/Справочник.Контрагенты?ref=…

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

Собрать ссылку вручную и в коде

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

Встроенный язык: три функции

ФункцияЧто возвращает
ПолучитьНавигационнуюСсылку(Ссылка)Строку e1cib/data/…?ref=… для объекта
ПолучитьНавигационнуюСсылкуИнформационнойБазы()Адрес базы: веб-публикацию или e1c://…
ПерейтиПоНавигационнойСсылке(Строка)Открывает форму по ссылке (на клиенте)

Пример: полная ссылка для письма с напоминанием об оплате.

&НаСервереБезКонтекста
Функция ПолнаяСсылкаНаОбъект(СсылкаНаОбъект)
    Префикс = ПолучитьНавигационнуюСсылкуИнформационнойБазы();
    Возврат Префикс + "#" + ПолучитьНавигационнуюСсылку(СсылкаНаОбъект);
КонецФункции

А так ссылку открывают из клиентского кода, например по нажатию кнопки в обработке:

&НаКлиенте
Процедура ОткрытьПоСсылке(Команда)
    ПерейтиПоНавигационнойСсылке(Объект.СсылкаТекстом);
КонецПроцедуры

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

Как из GUID получить параметр ref

Внешние системы обычно хранят идентификатор в привычном виде, например a1b2c3d4-e5f6-11e9-8c3a-001e6a6f1d6e (его отдаёт XMLСтрока(Ссылка) или OData). В ссылке группы идут в обратном порядке: четвёртая, пятая, третья, вторая, первая.

Группа GUIDЗначениеМесто в ref
1a1b2c3d4пятое
2e5f6четвёртое
311e9третье
48c3aпервое
5001e6a6f1d6eвторое

Результат: 8c3a + 001e6a6f1d6e + 11e9 + e5f6 + a1b2c3d4 = 8c3a001e6a6f1d6e11e9e5f6a1b2c3d4.

На Python перестановка занимает одну строку:

def guid_to_ref(guid: str) -> str:
    p = guid.lower().split("-")
    return p[3] + p[4] + p[2] + p[1] + p[0]

print(guid_to_ref("a1b2c3d4-e5f6-11e9-8c3a-001e6a6f1d6e"))
# 8c3a001e6a6f1d6e11e9e5f6a1b2c3d4

Перед массовой генерацией сверьте результат с одной ссылкой, полученной через Shift+F11 для того же объекта. Совпало — схема верна для вашей базы.

Что можно и нельзя передать в адресе

Здесь чаще всего ждут больше, чем умеет платформа.

✅ Работает:

  • ссылка на конкретный объект по ref;
  • открытие формы списка, отчёта, обработки, общей команды;
  • переход в раздел командного интерфейса.

❌ Не работает «из коробки»:

  • отбор списка по реквизиту прямо в адресе (?Контрагент=… платформа проигнорирует);
  • период и настройки отчёта в URL;
  • передача произвольных значений в обработку.

Как всё же передать параметры

Если нужна ссылка «открой отчёт за март по складу №2», задача решается доработкой, лучше в расширении конфигурации, чтобы не снимать типовую с поддержки:

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

Второй путь — варианты отчёта. Сохраните вариант с нужным отбором, и пользователь откроет его из списка вариантов. Это проще и не требует кода.

Ссылки из внешних систем и с сайта

Типовые сценарии, где навигационная ссылка экономит время:

  • 📧 Уведомления по почте. Согласование заявки: письмо содержит адрес веб-клиента с #e1cib/data/…, руководитель открывает документ в один клик.
  • 🗂 Трекер задач или CRM. В карточке сделки хранится ссылка на счёт в 1С. Удобно, когда сотрудники работают в обеих системах.
  • 🌐 Корпоративный портал. Ссылки на рабочие места: «Касса», «Склад», «Заявки на оплату» ведут сразу в нужный список.
  • 🔗 Обмен данными. Внешняя система получает GUID через HTTP-сервис или OData и строит ссылку по схеме из предыдущего раздела.

Ссылка на странице портала

На внутреннем сайте ссылка оформляется обычным тегом. Адрес базы и имя объекта подставьте свои:

<a href="https://srv-1c.company.local/buh/#e1cib/list/Документ.ПоступлениеТоваровУслуг"
   target="_blank">Журнал поступлений</a>

Атрибут target="_blank" открывает веб-клиент в новой вкладке, и портал остаётся под рукой. Если в одной вкладке уже открыт веб-клиент этой базы, второй сеанс займёт ещё одну лицензию — учитывайте это при массовых рассылках ссылок.

Ограничения, которые нужно учесть до запуска:

ОграничениеЧто делать
Пользователь без доступа к базеСсылка откроет окно входа, а не объект. Нужна учётная запись в 1С
Нет прав на объектФорма не откроется. Права по ссылке не выдаются
Нет веб-публикацииРаботают только e1c:// и параметр /URL на компьютерах с установленным клиентом
Сайт в интернете, база в локальной сетиВнешний пользователь до сервера не дойдёт. Нужен VPN или публикация с защитой

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

Почему ссылка не открывается: разбор ошибок

Диагностика: выберите симптом

Как отлаживать ссылку по шагам

  1. Откройте ссылку у себя в той же базе. Не открывается — проблема в самой строке.
  2. Сравните строку посимвольно с полученной через Shift+F11. Удобно вставить обе в текстовый редактор друг под другом.
  3. Проверьте в конфигураторе точное имя объекта метаданных.
  4. Для внешних ссылок откройте адрес публикации без части после #. Не открывается база — дело в веб-сервере, а не в ссылке.
  5. В коде выведите результат ПолучитьНавигационнуюСсылку() через Сообщить() и сравните с тем, что уходит во внешнюю систему.

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

Живёт ли навигационная ссылка вечно?
Да, пока объект существует в этой базе и его не переименовали в конфигураторе. Ref не меняется при изменении реквизитов, перепроведении и обновлении релиза.
Сработает ли ссылка в копии базы, развёрнутой из выгрузки .dt?
Сработает: при загрузке выгрузки идентификаторы объектов сохраняются. Нужно только поменять адрес базы во внешней части ссылки.
Можно ли получить ссылку на строку табличной части?
Нет. Ссылка ведёт на объект целиком. Нужную строку пользователь найдёт в открытом документе сам.
Как получить ссылки сразу на много документов?
Только программно: запросом выберите ссылки и для каждой вызовите ПолучитьНавигационнуюСсылку(). Результат выгрузите в таблицу или файл.
Нужны ли права администратора, чтобы получить ссылку?
Нет. Получить ссылку может любой пользователь, который видит объект. Открыть её получится только у того, у кого есть права на чтение.