LINUX.ORG.RU

Ссылка для 1С в Linux

 


4

0

Добрый день, может кто знает, пользователю на почту приходят из 1С задача с ссылкой на эту задачу e1c://server/srv-1c… Для Windows, если внести правку в реестр, то можно прям из почты, нажав на эту ссылку открыть её в приложении 1С, а как быть на Linux (Astra) ? Можно ли сделать, чтобы из почты по этой ссылке открывался 1С ?


Ответ на: комментарий от Jameson

Ну, поточнее будет - за привязку ссылок к программам отвечает та же часть XDG, которая занимается и привязкой MIME-типов к оным. В desktop-файле указывается MimeType=x-scheme-handler/протокол.

token_polyak ★★★★★
()
Ответ на: комментарий от token_polyak

Опять же мне кажется это только обработки этих самых .desktop файлов и касается, то бишь «ярлычков» в терминологии Виндоуз. А почтовая программа или браузер, не знаю чем он там письма читает, запросто может это игнорировать и иметь свои настройки обработки псевдопротокола://

Jameson ★★★★★
()
Ответ на: комментарий от Jameson

Я там в файрфокс себе добавлял свой «протокол» для запуска своего обработчика. Единственное неудобство - он почему-то всё равно при первом за сессию клике спрашивает какой программой я хочу его открыть (она всего одна).

Надо создать ~/.local/share/applications/имя_проги.desktop

[Desktop Entry]
Name=имя_проги
GenericName=имя_проги
Exec=/путь/к/бинарнику %U
Terminal=false
TryExec=/путь/к/бинарнику
Type=Application
MimeType=x-scheme-handler/протокол
NoDisplay=true

и сделать

update-desktop-database ~/.local/share/applications

(эта команда составляет кеш связей протокол -> прога, ведь в самих desktop только в обратную сторону имеется)

firkax ★★★★★
()
Ответ на: комментарий от firkax

Строка запуска - это Exec, в ней %U заменяется на сам урл. Там есть кажется и какие-то другие подстановки, но они тут не нужны. MimeType можно перечислить несколько через точку с запятой, и сейчас заметил - у меня в конце ещё точка с запятой есть, не знаю насколько она обязательна.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Да, я так и понял уже ) Почти получилось, у меня вышел такой файл:

[Desktop Entry]
Exec=/opt/1cv8/common/1cestart %U
Name=1C:Enterprise x64
GenericName=1C:Enterprise x64
Terminal=false
TryExec=/opt/1cv8/common/1cestart
Type=Application
MimeType=x-scheme-handler/e1c
NoDisplay=true

по нажатию на ссылку 1С открывается, но я так понял, он не понимает какой сервер использовать и базу, а это есть в URL

e1c://server/srv-1c/basename#e1cib/data/%D0%97%

Ошибка установки соединения
по причине:
server_addr=erver descr=-3(0xFFFFFFFD): Временный сбой в разрешении имен line=581 file=src/core/src/Networking.cpp

rk3dnp
() автор топика
Последнее исправление: rk3dnp (всего исправлений: 1)
Ответ на: комментарий от rk3dnp

Ну это уже смотри как его правильно запускать. Может в командную строку надо ещё что-то дописывать. Может быть даже придётся какой-то скрипт-обёртку делать, если вдруг он принимает не сам урл на вход а какие-то поля из него отдельно.

/opt/1cv8/common/1cestart "e1c://server/srv-1c/basename#e1cib/data/%D0%97%"

Вот если такую команду запустить - та же ошибка? И вообще это правильный урл? Там в конце что-то странное.

firkax ★★★★★
()
Ответ на: комментарий от firkax

если такую команду запустить будет тоже самое
(1cestart:14141): Gtk-WARNING **: 17:22:27.351: Theme parsing error: gtk.css:3877:13: Not using units is deprecated. Assuming ‘px’. user@astra:~/.local/share/applications$ (1cv8c:14146): Gtk-WARNING **: 17:22:27.796: Theme parsing error: gtk.css:3877:13: Not using units is deprecated. Assuming ‘px’.

** (1cv8c:14146): WARNING **: 17:22:28.983: failed to get find a colord device: The name org.freedesktop.ColorManager was not provided by any .service files

rk3dnp
() автор топика
Ответ на: комментарий от firkax

у меня в этой папке уже есть файл для 1С с прописанной базой, он вот так выглядит
Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/opt/1cv8/common/1cestart
Categories=Office;Finance;
Name[az]=1C:Mь?ssis? x64
Name[bg]=1?:??????????? x64
Name[de]=1C:Enterprise x64
Name[el]=1C:?????????? x64
Name[en_GB]=1C:Enterprise x64
Name[es]=1?:Empresa x64
Name[fr]=1C:Entreprise x64
Name[hu]=1C:Enterprise x64
Name[hy]=1C:?????????????? x64
Name[it]=1C:Enterprise x64
Name[ka]=1C:??????? x64
Name[kk]=1?:????????? x64
Name[lt]=1C:Organizacija x64
Name[lv]=1C:Uz??mums x64
Name[pl]=1C:Enterprise x64
Name[ro]=1C:Enterprise x64
Name[ru_RU]=1?:??????????? x64
Name[tr]=1C:??letme x64
Name[uk]=1?:???????????? x64
Name[vi]=1C:DOANH NGHI?P x64
Name[zh]=1C:?? x64
Name=1C:Enterprise x64
Icon=1cestart-8.3.22-1709
X-Desktop-File-Install-Version=0.26
Actions=Config1;

[Desktop Action Config1]
Name=База 1С
Exec=/opt/1cv8/common/1cestart ENTERPRISE /S"srv-1c\basename"
OnlyShowIn=Unity;

rk3dnp
() автор топика
Ответ на: комментарий от rk3dnp

Ну, можешь попробовать 1cestart ENTERPRISE /S"урл"

Но возможно ему нужен не урл, а его хвост, с убранным e1c://server/ (я так и не понял только, server в урле это имя чьё-то или оно всегда одинаковое?) и заменёнными / на \. В любом случае, если неизменённый урл не поодходит, придётся делать скрипт-обёртку, который конвертирует урл в то что нужно 1с-клиенту и запускает его.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

мне удалось открыть из командной строке вот так
/opt/1cv8/common/1cestart /url e1c://server/srv-1c/basename#e1cib/data/%D
Но если в файл добавить
Exec=/opt/1cv8/common/1cestart /url не открывает список, просто запускается 1С со списком баз

rk3dnp
() автор топика
Ответ на: комментарий от firkax

Спасибо большое, все работает, итоговая версия
Desktop Entry]
Exec=/opt/1cv8/common/1cestart /url %U
Name=1C:Enterprise x64
GenericName=1C:Enterprise x64
Terminal=false
TryExec=/opt/1cv8/common/1cestart
Type=Application
MimeType=x-scheme-handler/e1c
NoDisplay=true

rk3dnp
() автор топика