Как правильно сформировать ссылку для открытия документа 1С из письма

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

При автоматической отправке писем из 1С часто возникает необходимость вставить в текст гиперссылку, при нажатии на которую пользователь мог бы сразу перейти к конкретному документу или справочнику. Однако попытка собрать такую ссылку вручную — путем подстановки уникального идентификатора (GUID) объекта после параметра ref= — приводит к ошибкам «Неизвестное имя формы» или «Объект не найден».

В этом материале мы разберем причину возникновения таких ошибок, рассмотрим правильный способ генерации внешней навигационной ссылки с помощью встроенного языка 1С, а также проанализируем настройку Windows для прямого открытия тонкого клиента без участия веб-браузера.

Выясним причину ошибки при ручном формировании ссылки

Параметр ref= в навигационных ссылках платформы 1С:Предприятие 8.3 содержит не обычное строковое представление уникального идентификатора (типа 4352ab51-d683-11e7-846b-d8d3855d369d), а специальное кодирование Base64 с измененным порядком байтов. Если подставить стандартный GUID вручную (с дефисами или без них), платформа не сможет корректно сопоставить его с внутренним адресом объекта в базе данных, из-за чего веб-клиент выдаст ошибку.

Использование функции ПолучитьНавигационнуюСсылку

Для создания корректной ссылки на объект необходимо использовать штатную функцию платформы ПолучитьНавигационнуюСсылку(). Она генерирует правильный внутренний путь к форме или данным объекта с учетом правил платформы.

Чтобы сформировать внешнюю ссылку для отправки по электронной почте, объединим адрес публикации информационной базы на веб-сервере и полученную навигационную ссылку.

Рассмотрим пример кода для формирования полной внешней ссылки на документ:


// Получаем ссылку на объект (например, документ)
СсылкаНаДокумент = ДокументОбъект.Ссылка;

// Получаем внутренний навигационный адрес 1С
ВнутренняяСсылка = ПолучитьНавигационнуюСсылку(СсылкаНаДокумент);

// Базовый адрес публикации базы на веб-сервере
АдресПубликации = "http://192.168.1.1/Trade/ru/";

// Формируем итоговую гиперссылку для письма
ПолнаяСсылка = АдресПубликации + "#" + ВнутренняяСсылка;

В результате переменная ПолнаяСсылка будет содержать правильный URL, при переходе по которому в веб-клиенте сразу откроется нужный документ.

Настройка Windows для открытия ссылки напрямую в тонком клиенте

По умолчанию при клике на гиперссылку вида http://... браузер пытается открыть веб-клиент 1С. Если вы хотите, чтобы при клике по ссылке у пользователя сразу запускался установленный тонкий клиент 1С (без открывания браузера), можно зарегистрировать специальный протокол e1c в системном реестре Windows.

Для этого необходимо создать и выполнить файл с расширением .reg следующего содержания:


Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\e1c]
@="URL:e1c"
"URL Protocol"="e1c"
"EditFlags"=hex:02,00,00,00

[HKEY_CLASSES_ROOT\e1c\shell]

[HKEY_CLASSES_ROOT\e1c\shell\open]

[HKEY_CLASSES_ROOT\e1c\shell\open\command]
@="\"C:\\Program Files\\1cv8\\8.3.20.1549\\bin\\1cv8s.exe\" /URL \"%1\""

Обратите внимание: вместо пути к исполняемому файлу в примере укажите фактический путь к 1cv8s.exe на компьютере пользователя.

Особенности работы ссылок на мобильных устройствах

Проанализируем работу навигационных ссылок на мобильных устройствах под управлением iOS и Android:

  1. Мобильные операционные системы не позволяют вносить изменения в системный реестр Windows для регистрации протоколов запуска настольных приложений, поэтому прямой запуск тонкого клиента по протоколу e1c на смартфонах не работает.
  2. Работа веб-клиента 1С в мобильных браузерах ограничена спецификой мобильных ОС.
  3. Для реализации переходов к объектам базы на мобильных устройствах рекомендуется использовать Мобильный клиент 1С или мобильное приложение с поддержкой глубинных ссылок (Deep Links) и обрабатывать их с помощью события ОбработкаПереходаПоНавигационнойСсылке.
← На главную