Управляемый режим 1С позволяет получить ссылку на любой объект базы вида: "e1c://server/<сервер>/<Имя базы>#e1cib/data/<Тип>?ref=<Ид>. Предлагаемый файл настройки реестра позволяет настроить открытие таких ссылок сразу в клиенте 1С, например, при получении ссылки по почте.
Управляемый режим 1С позволяет получить ссылку на любой объект базы вида: «e1c://server/<сервер>/<Имя базы>#e1cib/data/<Тип>?ref=<Ид>. Предлагаемый файл настройки реестра позволяет настроить открытие таких ссылок сразу в клиенте 1С, например, при получении ссылки по почте.
Работает начиная с версии 1С: Предприятие 8.3, т.к. только там появилась возможность открытия ссылок из командной строки.
Работает начиная с версии 1С: Предприятие 8.3, т.к. только там появилась возможность открытия ссылок из командной строки.
Текст файла регистрации:
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOTe1c] @="URL:e1c" "URL Protocol"="e1c" "EditFlags"=hex:02,00,00,00 [HKEY_CLASSES_ROOTe1cDefaultIcon] @="C:\Program Files (x86)\1cv8\common\1ceunt.dll,17" [HKEY_CLASSES_ROOTe1cshell] [HKEY_CLASSES_ROOTe1cshellopen] [HKEY_CLASSES_ROOTe1cshellopencommand] @=""C:\Program Files (x86)\1cv8\common\1cestart.exe" /URL "%1""
как полагаете почему нет плюсов? Вроде как люди скачали а плюсов нет )))
раскройте код в статье и люди потянутся ))
Было бы хорошо, если 1cestart.exe понимал ссылки без прямого пути к базе, например по заранее настроенному соответствию.
Т.е. вместо:
e1c://server/server_name/base_name#e1cib/data/Документ.ЗаказКлиента?ref=80dc3d2b871a973a11e4ee771f1d4b2f
достаточно было указать:
e1c://server/Условное_Имя/Документ.ЗаказКлиента?ref=80dc9d2b871a973a11e4ee771f1d4b2f
а в настройках 1cestart.exe имелась возможность указать соответствие:
«Условное_Имя» соответствует «server_name/base_name»
Если бы была такая возможность
Кстати, если использовать этот метод для 1С:Документооборота, то в настройках уведомлений веб-адрес базы можно указать:
e1c://server/<сервер>/<Имя базы># и тогда в почтовых уведомлениях будет приходить ссылка, которая откроется приложением 1С без изменения типовой конфигурации.
Если веб-адрес базы не указан, то рассылается внутренняя ссылка, т.е. часть после знака #
(3) Puk2,
В письме почему-то ссылка e1c:// не выделяется как гиперссылка, а если ее скопировать-вставить в адресную строку то работает только через Internet Explorer, через Google Chrome не работает. У вас не так?
Спасибо.
Как заставить outlook воспринимать e1c:// как гиперссылку?
(6) Zhilyakovdr, Зависит от того, каким образом формируется письмо:
1. Если письмо формируется программно, то достаточно сформировать его в формате HTML и оформить ссылку соответствующим образом.
2. Если письмо создается вручную и ссылка вставляется руками (через буфер обмена, например), то необходимо, при вставке адреса, самостоятельно оформить его как гиперссылку средствами редактора Outlook (ВставкаГиперссылка).
Почему 1Ска сама при установке это в реестр не прописывает? Интересно…
А по теме однозначно плюс.
Здравствуйте!
Подскажите, пожалуйста, можно ли при открытии таких ссылок записать, например, новых контрагентов в базе… Есть ли у вас какой-то пример использования данного метода? Или может посоветуете где найти информацию?
Спасибо.
(9) wmonref1, Нет, эти ссылки предназначены только для открытия объектов. На тему манипуляции данными ИБ по ссылкам рекомендую поискать информацию по интерфейсу OData.
В версии 8.2 переход по ссылке не работает. Открывается нужна ИБ, авторизация, но ссылка не открывается. Можно дополнить в реестре строчку, добавив параметр:
@=»»C:\Program Files (x86)\1cv8\common\1cestart.exe» /URL «%1» /C «%1″» и обработать переданный параметр ПриНачалеРаботы(). Но и тут сложность. Если ИБ не прописана в загрузчике, то параметр будет пустым.
(11) colinsn, я собственно и написал, что работает начиная с 8.3. С 8.2 можно настроить только открытие объекта через web-клиент.
(4)
В веб-версиях почтовых сайтов (например, Mail.ru и Яндекс) ссылка e1c:// выделяется цветом, но не кликабельна. А если пользоваться почтовой программой, например, Outlook — то ссылка кликабельна.
Наверное, кликабельность ссылок блокируется в целях безопасности.
Есть варианты, как сделать так, что бы при переходе по ссылке не открывалась новая 1Ска, еси она уже открыта (сейчас оно так работает, при каждом клике открывает новую)?
(14) Таких экспериментов не ставил. Подозреваю, что т.к. может быть открыто несколько экземпляров 1С с разными ИБ, то поиска экземпляра с «нужной» ИБ не происходит.
1. При необходимости внести в реестр изменения без административных прав, можно воспользоваться ключом в пользовательской ветке. То есть, вместо
узла HKEY_CLASSES_ROOT использовать узел HKEY_CURRENT_USERSoftwareClasses
Если необходимо в путях использовать расширяемые переменные (например %AppData%), то текст следует задавать в параметрах типа REG_EXPAND_SZ, а в файле реестра это будет выглядеть как @=hex(2):25,00…. Чтобы сформировать параметр по умолчанию в таком виде подручными средствами, можно в реестре в нужном узле создать параметр такого типа, и вставить в него текст с расширяемыми переменными , затем экспортировать узел с параметром, отредактировать экспортированный файл так, чтобы вместо названия параметра в кавычках был установлен знак @ (без кавычек). После импорта файла в реестр, параметр по умолчанию будет иметь нужный тип.
Пример простого работающего файла реестра:
Показать
(16)
Этот же вариант, но без
танцев с бубномручного редактирования реестра и файлов реестра:Добрый день! А как настроить открытие таких ссылок сразу из html-документа? Нажал — открылся клиент на нужном объекте. Не копируя ссылку в командную строку.
(18) прям так и пишешь:
Надо только убедиться, что существует 1cestart.exe по пути указанному в реестре.
Через командную строку всё работает
e1c://server/[АдресСервера]/[ИмяБазы]#e1cib/data/Справочник.Контрагенты?ref=80bf001e67d4b29711e5794d1a2e5ce6
Через html-файл:
Тест
<html>
</html>
Система 1С стартует, но пишет ошибку:
server_addr=erver Этот хост неизвестен.
Т.е., как я понимаю, система раскладывает строку «e1c://server/…» и считает последовательность символов «/s» как параметр клиент-сервер и ,соответственно, «erver» как имя сервера.
(20) В своем коментарии я указал точно работающий вариант (проверил прям при написании коментария), значит проблема где-то в другом месте. Если сделаете выгрузку ключа реестра [HKEY_CURRENT_USERSoftwareClassese1c], могу попробовать помочь разобраться.
Спасибо! Проблема в Mozzila Firefox. IE отрабатывает корректно!
И Google Chrome отрабатывает правильно!
Подскажите, пожалуйста, если сохранить HTML как PDF нужны ли какие-то доп. настройки?
Открываю в «Adobe Acrobat Reader DC», при нажатии на гиперссылку ничего не происходит…
(24) Не в курсе, не пробовал. Возможно есть какие-то проблемы с безопасностью.
Чувак, 🙂 Спасибо тебе! То что доктор прописал.
А можно ли как-то открыть ссылку e1c:// через терминал (remote app, rdp файл), т.е. когда на компе нет тонкого клиента?
(27) Можно, но с дополнительными костылями. Простыми словами — нужен обработчик протокола, который разберёт адрес на составляющие и передаст дальше, на обработку.
Подскажите, пожалуйста, никак не могу разобраться
Для запуска тонкого клиента (не браузера) опубликованной базы как следует задать путь у ссылки?
Т.е. для серверных баз понятно что так:
e1c://server/<сервер>/<Имя базы>
а для веб как?
Вот так не проходит
e1c://server/http://путь.ru<и т.д. навигационня ссылка>
Говорит этот хост неизвестен
Есть особенности?
(29) Тут проблема! В таком случае (при подключении тонкого клиента по протоколу http(s)) путь к базе задается также как и в браузере, т.е. не содержит ни каких «e1c:», соответственно в системе для таких путей уже зарегистрировано приложение по умолчанию — браузер.
Если поменять на 1С, то все web-ссылки будут путаться открываться в 1С.
Добрый день. Проблема с OWA. Хоть убей, не открывает в браузерах ссылки из письма.
В реестр добавил параметр.
В Outlook что в пакет офиса входит все отлично. Проблема именно в OWA.