При автоматической отправке писем из 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, при переходе по которому в веб-клиенте сразу откроется нужный документ.
По умолчанию при клике на гиперссылку вида 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:
e1c на смартфонах не работает.ОбработкаПереходаПоНавигационнойСсылке.