Как открывать навигационные ссылки 1С в уже запущенном сеансе?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При работе с навигационными ссылками в 1С часто возникает ситуация, когда пользователь ожидает открытия документа в уже открытом окне программы, но вместо этого система запускает «запускатор» 1cestart и предлагает выбрать базу заново. Разберемся, почему это происходит и как сделать так, чтобы ссылки открывались именно там, где нам нужно.

Разберемся с типами навигационных ссылок

Для начала проанализируем, почему система ведет себя именно так. В 1С существует два основных типа ссылок, и их поведение в операционной системе кардинально различается:

  1. Полные ссылки (начинаются с e1c://): Они содержат информацию о сервере и базе данных. Когда мы кликаем по такой ссылке, операционная система «понимает», что нужно вызвать внешнее приложение 1cestart.exe. Этот процесс по умолчанию настроен на проверку запуска базы, и если он не «видит» уже активного сеанса с идентичными параметрами соединения, он инициирует открытие нового окна выбора базы.
  2. Внутренние ссылки (начинаются с e1cib/): Это те самые ссылки, которые «понимает» сама платформа, когда она уже запущена. Они указывают непосредственно на data (объект) или команду внутри текущей информационной базы.

Решение проблемы: использование внутренних ссылок

Чтобы документ открывался в существующем сеансе, нам необходимо использовать формат e1cib/data/.... Платформа 1С устроена таким образом, что если вы «скормите» текущему запущенному клиенту такую ссылку, он интерпретирует её как команду навигации внутри текущей сессии.

Рассмотрим, как это реализовать на практике:

  1. Использование кнопки «Перейти по ссылке»: В интерфейсе любого приложения на управляемых формах (меню «Сервис и настройки») существует штатный механизм «Перейти по ссылке». Если вы вставите туда строку вида e1cib/data/Документ.Заявка?ref=..., документ моментально откроется в текущем окне.
  2. Программный метод: Если вы пишете код внутри конфигурации, используйте метод ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку(). Этот метод является эталонным способом работы с навигацией в БСП (Библиотеке стандартных подсистем). Он корректно обрабатывает и внешние, и внутренние ссылки, при необходимости направляя запрос в текущий клиент.

Почему это важно для интеграций

При разработке интеграций (например, при отправке ссылок через Telegram или почту) важно понимать: если вы передаете ссылку пользователю, который уже работает в 1С, лучше всего передавать именно внутреннюю часть e1cib/data/.... Если технически возможно, настройте ваш почтовый клиент или мессенджер так, чтобы он распознавал этот протокол. Внутренний механизм 1С самостоятельно перехватит этот запрос из текущего сеанса без необходимости перезапуска всей системы.

Важное предостережение: Убедитесь, что в текущем сеансе не открыты модальные окна (например, открытые диалоги или сообщения о необходимости подтверждения действия). Модальность блокирует обработку навигационных ссылок, так как платформа ждет закрытия активного окна, что может привести к тому, что клик по ссылке будет проигнорирован или приведет к ошибке интерфейса.

Резюмируем шаги для настройки

Попробуйте сменить формат ссылки на e1cib/..., и вы увидите, что 1С перестанет навязчиво открывать окно запуска, а вместо этого переключится на нужный документ прямо в текущем рабочем окне!

← На главную