Разное - [решено] Подружить реестр с внутренними ссылками 1С
-
Stavral
Разное - [решено] Подружить реестр с внутренними ссылками 1С
Пытаюсь научить Windows 7 открывать т.н. внутренние ссылки 1С Предприятие (разновидность URI). Сама ссылка имеет такой вид: e1c://server/srv-cm2.test.ru/basa1c#e1cib/data/Справочник.ВнутренниеДокументы?ref=9bd4567542136c11e38813d6f7f28b
Чтобы винда узнавала ссылку, нужно внести изменения в реестре и связать приложение клиента 1С с именем ссылки. В ветке HKEY_CLASSES_ROOT создаю раздел e1c и подразделы shell/open/command - тут прописываю ключ для открытия этой ссылки клиентом 1С: "C:\Program Files (x86)\1cv8\common\1cestart.exe" - вроде открывает.
Проблема в том, что эту запись надо распространить политиками по компьютерам домена. Естественно, ОСи х32 и х64 у нас в соотношении 50/50. Т.е. в ключе реестра путь до 1cestart.exe варьируется в зависимости от разрядности системы - надо сделать переменные. ОК, иду в переменные среды, там добавляю параметр PATH и в нем указываю два пути до возможного расположения клиента 1С: %Programfiles%\1cv8\common;%Programfiles(x86)%\1cv8\common.
В реестре меняю прописанный в ключе путь на "%1cestart.exe%" (точно не знаю, надо ли ставить % - пробовал с ними и без них). В общем, при попытке зайти по ссылке выдается ошибка, что приложение не найдено.
Делал это все в первый раз, раньше опыта не было, потому полагаю, что где-то чего-то забыл прописать. Подскажите, пожалуйста, если кто знает!
Чтобы винда узнавала ссылку, нужно внести изменения в реестре и связать приложение клиента 1С с именем ссылки. В ветке HKEY_CLASSES_ROOT создаю раздел e1c и подразделы shell/open/command - тут прописываю ключ для открытия этой ссылки клиентом 1С: "C:\Program Files (x86)\1cv8\common\1cestart.exe" - вроде открывает.
Проблема в том, что эту запись надо распространить политиками по компьютерам домена. Естественно, ОСи х32 и х64 у нас в соотношении 50/50. Т.е. в ключе реестра путь до 1cestart.exe варьируется в зависимости от разрядности системы - надо сделать переменные. ОК, иду в переменные среды, там добавляю параметр PATH и в нем указываю два пути до возможного расположения клиента 1С: %Programfiles%\1cv8\common;%Programfiles(x86)%\1cv8\common.
В реестре меняю прописанный в ключе путь на "%1cestart.exe%" (точно не знаю, надо ли ставить % - пробовал с ними и без них). В общем, при попытке зайти по ссылке выдается ошибка, что приложение не найдено.
Делал это все в первый раз, раньше опыта не было, потому полагаю, что где-то чего-то забыл прописать. Подскажите, пожалуйста, если кто знает!
-
Blast
Re: Разное - [решено] Подружить реестр с внутренними ссылками 1С
Цитата Stavral:
точно не знаю, надо ли ставить %
Ставить. А еще попробуйте значение параметра писать так:
Код:
Цитата Stavral:
два пути до возможного расположения клиента 1С: %Programfiles%\1cv8\common;%Programfiles(x86)%\1cv8\common
То есть в 64-разрядных системах к одной и той же папке - Program Files (x86)
Переменные там такие:
%ProgramFiles% = C:\Program Files (x86)
%ProgramFiles(x86)% = C:\Program Files (x86)
%ProgramW6432% = C:\Program Files
Можете свою переменную и не создавать, а писать переменную PF, примерно так:
@%ProgramFiles%\1cv8\common\1cestart.exe %1
или
@%ProgramW6432%\1cv8\common\1cestart.exe %1
Может чего не то насоветовал, не проверял еще
точно не знаю, надо ли ставить %
Разное - [решено] Подружить реестр с внутренними ссылками 1С
Ставить. А еще попробуйте значение параметра писать так:
Код:
Код: Выделить всё
@%1cestart.exe%Цитата Stavral:
два пути до возможного расположения клиента 1С: %Programfiles%\1cv8\common;%Programfiles(x86)%\1cv8\common
Разное - [решено] Подружить реестр с внутренними ссылками 1С
То есть в 64-разрядных системах к одной и той же папке - Program Files (x86)

Переменные там такие:
%ProgramFiles% = C:\Program Files (x86)
%ProgramFiles(x86)% = C:\Program Files (x86)
%ProgramW6432% = C:\Program Files
Можете свою переменную и не создавать, а писать переменную PF, примерно так:
@%ProgramFiles%\1cv8\common\1cestart.exe %1
или
@%ProgramW6432%\1cv8\common\1cestart.exe %1
Может чего не то насоветовал, не проверял еще

-
Stavral
Re: Разное - [решено] Подружить реестр с внутренними ссылками 1С
Цитата Blast:
Переменные там такие:
%ProgramFiles% = C:\Program Files (x86)
%ProgramFiles(x86)% = C:\Program Files (x86)
%ProgramW6432% = C:\Program Files
Да, я читал об этом на каком-то ресурсе. Только вот опытном это не подтверждается, как ни странно. На 64-битной системе переменная среды "%Programfiles%\1cv8\common" не дает возможность открыть 1cestart.exe из командной строки. А вот переменная "%Programfiles(x86)%\1cv8\common" - дает... В свою очередь на 32-битной системе работает именно "%Programfiles%\1cv8\common", а "%Programfiles(x86)%\1cv8\common" - нет. Таким образом, придется все-таки обе переменные политиками распространять. Ну или политиками же определять сначала разрядность...
В любом случае, не работает, если в ключе реестра указываю переменную, а не полный путь
Непонятно как-то, почему реестре не воспринимает переменные.
Переменные там такие:
%ProgramFiles% = C:\Program Files (x86)
%ProgramFiles(x86)% = C:\Program Files (x86)
%ProgramW6432% = C:\Program Files
Разное - [решено] Подружить реестр с внутренними ссылками 1С
Да, я читал об этом на каком-то ресурсе. Только вот опытном это не подтверждается, как ни странно. На 64-битной системе переменная среды "%Programfiles%\1cv8\common" не дает возможность открыть 1cestart.exe из командной строки. А вот переменная "%Programfiles(x86)%\1cv8\common" - дает... В свою очередь на 32-битной системе работает именно "%Programfiles%\1cv8\common", а "%Programfiles(x86)%\1cv8\common" - нет. Таким образом, придется все-таки обе переменные политиками распространять. Ну или политиками же определять сначала разрядность...
В любом случае, не работает, если в ключе реестра указываю переменную, а не полный путь
-
Stavral
Re: Разное - [решено] Подружить реестр с внутренними ссылками 1С
Stavral, а с чего он вдруг должен «воспринимать»? «Воспринимают» или «не воспринимают» приложения. Специально для «не воспринимающих» был заведён тип параметра «REG_EXPAND_SZ». Если в Вашем случае сие допустимо — можете попробовать.
-
Iska
Re: Разное - [решено] Подружить реестр с внутренними ссылками 1С
Stavral, а с чего он вдруг должен «воспринимать»? «Воспринимают» или «не воспринимают» приложения. Специально для «не воспринимающих» был заведён тип параметра «REG_EXPAND_SZ». Если в Вашем случае сие допустимо — можете попробовать.
-
Stavral
Re: Разное - [решено] Подружить реестр с внутренними ссылками 1С
Stavral, используйте параметр типа
Цитата Iska:
REG_EXPAND_SZ
Цитата Iska:
REG_EXPAND_SZ
Разное - [решено] Подружить реестр с внутренними ссылками 1С
-
Blast
Re: Разное - [решено] Подружить реестр с внутренними ссылками 1С
Blast, у меня получилось в таком варианте:
Код:
Но хочется еще доработать, чтобы использовать переменные, о которых писал выше.
По логике, чтобы получить требуемое, надо лишь заменить C:\\Program Files (x86)\\1cv8\\common\\1cestart.exe\ на %1cestart.exe% - но это почему-то не работает. При этом в переменных среды все указано, запуск 1cestart.exe через "Выполнить" тоже работает - т.е. система восприняла новую переменную. Почему же когда переменную помещаю в реестр - все перестает работать?
Код:
Код: Выделить всё
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\e1c]
"URL Protocol"=""
[HKEY_CLASSES_ROOT\e1c\shell]
[HKEY_CLASSES_ROOT\e1c\shell\open]
[HKEY_CLASSES_ROOT\e1c\shell\open\command]
@="\"C:\\Program Files (x86)\\1cv8\\common\\1cestart.exe\" /URL \"%1\""Но хочется еще доработать, чтобы использовать переменные, о которых писал выше.
По логике, чтобы получить требуемое, надо лишь заменить C:\\Program Files (x86)\\1cv8\\common\\1cestart.exe\ на %1cestart.exe% - но это почему-то не работает. При этом в переменных среды все указано, запуск 1cestart.exe через "Выполнить" тоже работает - т.е. система восприняла новую переменную. Почему же когда переменную помещаю в реестр - все перестает работать?
-
Stavral
Re: Разное - [решено] Подружить реестр с внутренними ссылками 1С
Blast, у меня получилось в таком варианте:
Код:
Но хочется еще доработать, чтобы использовать переменные, о которых писал выше.
По логике, чтобы получить требуемое, надо лишь заменить C:\\Program Files (x86)\\1cv8\\common\\1cestart.exe\ на %1cestart.exe% - но это почему-то не работает. При этом в переменных среды все указано, запуск 1cestart.exe через "Выполнить" тоже работает - т.е. система восприняла новую переменную. Почему же когда переменную помещаю в реестр - все перестает работать?
Код:
Код: Выделить всё
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\e1c]
"URL Protocol"=""
[HKEY_CLASSES_ROOT\e1c\shell]
[HKEY_CLASSES_ROOT\e1c\shell\open]
[HKEY_CLASSES_ROOT\e1c\shell\open\command]
@="\"C:\\Program Files (x86)\\1cv8\\common\\1cestart.exe\" /URL \"%1\""Но хочется еще доработать, чтобы использовать переменные, о которых писал выше.
По логике, чтобы получить требуемое, надо лишь заменить C:\\Program Files (x86)\\1cv8\\common\\1cestart.exe\ на %1cestart.exe% - но это почему-то не работает. При этом в переменных среды все указано, запуск 1cestart.exe через "Выполнить" тоже работает - т.е. система восприняла новую переменную. Почему же когда переменную помещаю в реестр - все перестает работать?
-
Stavral
Re: Разное - [решено] Подружить реестр с внутренними ссылками 1С
Цитата Stavral:
со значением @%1cestart.exe% /URL
1. У Вас есть такая переменная окружения — «%1cestart.exe%»?
2. Если есть — попробуйте обрамить кавычками путь — «"%1cestart.exe%"».
со значением @%1cestart.exe% /URL
Разное - [решено] Подружить реестр с внутренними ссылками 1С
1. У Вас есть такая переменная окружения — «%1cestart.exe%»?
2. Если есть — попробуйте обрамить кавычками путь — «"%1cestart.exe%"».
-
Iska
Re: Разное - [решено] Подружить реестр с внутренними ссылками 1С
Цитата Stavral:
заменить C:\\Program Files (x86)\\1cv8\\common\\1cestart.exe\ на %1cestart.exe%
Не так, переменную назначить к папке, а не к исполняемому файлу. То есть к C:\Program Files (x86)\1cv8\common\
заменить C:\\Program Files (x86)\\1cv8\\common\\1cestart.exe\ на %1cestart.exe%
Разное - [решено] Подружить реестр с внутренними ссылками 1С
Не так, переменную назначить к папке, а не к исполняемому файлу. То есть к C:\Program Files (x86)\1cv8\common\