Ссылка на документ, справочник или отчёт 1С: из интерфейса, вручную и программно
Содержание
Чтобы получить навигационную ссылку в 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С
Самый быстрый путь, без программирования и прав администратора.
Ссылка на документ или элемент справочника
- Откройте объект двойным щелчком из списка. Новый, ещё не записанный документ ссылку не даст: у него нет идентификатора. Сначала нажмите
Записать. - Нажмите
Shift+F11. Либо откройте меню формы (кнопкаЕщёили значок с тремя точками в заголовке окна) и выберите команду «Получить ссылку». - В окне выделится строка ссылки. Нажмите
Ctrl+C, окно закройте. - Вставьте ссылку в письмо, мессенджер или задачу.
Ссылка на список, отчёт или обработку
Та же команда работает в открытой форме списка и в форме отчёта. Для списка получится 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 |
|---|---|---|
| 1 | a1b2c3d4 | пятое |
| 2 | e5f6 | четвёртое |
| 3 | 11e9 | третье |
| 4 | 8c3a | первое |
| 5 | 001e6a6f1d6e | второе |
Результат: 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», задача решается доработкой, лучше в расширении конфигурации, чтобы не снимать типовую с поддержки:
- Создайте общую команду или обработку, которая принимает параметры.
- Параметры храните не в адресе, а в базе: например, в регистре сведений «сохранённые запросы» с ключом.
- В ссылку передавайте только ссылку на эту запись. Обработчик открытия читает параметры и формирует отчёт с нужными настройками.
Второй путь — варианты отчёта. Сохраните вариант с нужным отбором, и пользователь откроет его из списка вариантов. Это проще и не требует кода.
Ссылки из внешних систем и с сайта
Типовые сценарии, где навигационная ссылка экономит время:
- 📧 Уведомления по почте. Согласование заявки: письмо содержит адрес веб-клиента с
#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 и ограничения доступа только ради работающих ссылок. Навигационная ссылка не выдаёт данные, но открытая публикация с простыми паролями — прямой путь к утечке.
Почему ссылка не открывается: разбор ошибок
Как отлаживать ссылку по шагам
- Откройте ссылку у себя в той же базе. Не открывается — проблема в самой строке.
- Сравните строку посимвольно с полученной через
Shift+F11. Удобно вставить обе в текстовый редактор друг под другом. - Проверьте в конфигураторе точное имя объекта метаданных.
- Для внешних ссылок откройте адрес публикации без части после
#. Не открывается база — дело в веб-сервере, а не в ссылке. - В коде выведите результат
ПолучитьНавигационнуюСсылку()черезСообщить()и сравните с тем, что уходит во внешнюю систему.
Частые вопросы
Живёт ли навигационная ссылка вечно?
Сработает ли ссылка в копии базы, развёрнутой из выгрузки .dt?
Можно ли получить ссылку на строку табличной части?
Как получить ссылки сразу на много документов?
ПолучитьНавигационнуюСсылку(). Результат выгрузите в таблицу или файл.