Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 7 » Разное - [решено] Подружить реестр с внутренними ссылками 1С

Ответить
Настройки темы
Разное - [решено] Подружить реестр с внутренними ссылками 1С

Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: Stavral
Дата: 03-03-2015
Пытаюсь научить 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%" (точно не знаю, надо ли ставить % - пробовал с ними и без них). В общем, при попытке зайти по ссылке выдается ошибка, что приложение не найдено.

Делал это все в первый раз, раньше опыта не было, потому полагаю, что где-то чего-то забыл прописать. Подскажите, пожалуйста, если кто знает!

Отправлено: 16:05, 03-03-2015

 

Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, Blast, так, я похоже всех запутал слегка.

Дано (уже имеется):

- в переменных среды для Path добавлено следующее: C:\Program Files (x86)\1cv8\common;C:\Program Files\1cv8\common
- в реестре добавлено следующее:

Код: Выделить весь код
[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%" - все прекращает работать. Если же в реестре использую REG_EXPAND_SZ со значением "%1cestart.exe%" /URL "%1" - тоже ошибка, но другая.

Отправлено: 14:36, 04-03-2015 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Administrator


Сообщения: 25151
Благодарности: 3803

Профиль | Сайт | Отправить PM | Цитировать


Цитата Stavral:
если в реестре поменять C:\\Program Files (x86)\\1cv8\\common\\1cestart.exe\ на "%1cestart.exe%" - все прекращает работать »
Так пробуйте менять на "%1cestart.exe%"\\1cestart.exe или "@%1cestart.exe%\1cestart.exe" /URL "%1" или скорее даже %1cestart.exe%\1cestart.exe /URL %1 (без кавычек)

Вы ведь переменную назначили к папке, а исполняемый файл не указали в параметре реестра, как его системе как найти?
Да и переменную обзовите как-то иначе чтоб не путаться.

-------
FAQ по Windows 10 .::. Настройка Центра обновления в Windows 10 .::. Чистая установка Windows 10 – пошаговая инструкция


Отправлено: 14:46, 04-03-2015 | #12


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Stavral:
- в переменных среды для Path добавлено следующее: C:\Program Files (x86)\1cv8\common;C:\Program Files\1cv8\common »
Stavral, попробуйте в этом случае добавить просто:
Код: Выделить весь код
[HKEY_CLASSES_ROOT\e1c\shell\open\command]
@="\"1cestart.exe\" /URL \"%1\""
т.е., безо всяких REG_EXPAND_SZ, без символов процента. Просто имя исполняемого файла.

Отправлено: 14:49, 04-03-2015 | #13


Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


Blast, не пойму, при чем тут имя переменной. Я не новую переменную создавал, а модифицировал переменную PATH, чтобы операционная система искала исполняемый 1cestart.exe в нужной папке. И ведь это работает! Потому что если утилитой "Выполнить" попробовать зайти по ссылке 1cestart.exe /URL e1c://server/srv-s4cm1.onegroup.ru/sed83#e1cib/data/Задача.ЗадачаИсполнителя?ref=b2ef00505692136c11e3dcd9d889a7f6 - она откроется.

Может быть я изначально все не так сделал? Подскажите, пожалуйста, как мне создать переменную, указывающую на конкретный *.exe?

Iska, так я уже пробовал, не работает

Отправлено: 15:54, 04-03-2015 | #14


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Stavral:
Потому что если утилитой "Выполнить" …»
Для «Выполнить» работает не только PATH, но и «App Paths»: Application Registration (Windows),

Цитата Stavral:
Iska, так я уже пробовал, не работает »
Что при этом сообщает?

Отправлено: 16:08, 04-03-2015 | #15


Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
Что при этом сообщает? »
"Приложение не найдено"

Отправлено: 16:19, 04-03-2015 | #16


Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, решил попробовать с другой стороны. Зарегистрировал приложение 1cestart.exe тут HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\1cestart.exe.

Выглядит это так:

Код: Выделить весь код
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\1cestart.exe]
@="C:\Program Files (x86)\1cv8\common\1cestart.exe"
"Path"="C:\Program Files (x86)\1cv8\common"
В таком виде все работает.

Пожалуйста, объясните, почему все перестает работать, если заменить C:\Program Files (x86) на %ProgramFiles(x86)%??? Хоть убейте не понимаю, в чем тут ошибка...

Отправлено: 16:54, 04-03-2015 | #17


Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Соответственно, на х86 запись в реестр выглядит так:

Код: Выделить весь код
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\1cestart.exe]
@="C:\Program Files (x86)\1cv8\common\1cestart.exe"
"Path"="C:\Program Files (x86)\1cv8\common"
На х64 так:

Код: Выделить весь код
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\1cestart.exe]
@="C:\Program Files\1cv8\common\1cestart.exe"
"Path"="C:\Program Files\1cv8\common"
Переменные среды так и не заработали как от них ожидалось. Тему можно закрывать.

Отправлено: 12:11, 06-03-2015 | #18



Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 7 » Разное - [решено] Подружить реестр с внутренними ссылками 1С

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2008 R2 - [решено] Serv2008R2 + RemoteAPP+printer+1С 7.7 и 1С 8.2 Sermion Windows Server 2008/2008 R2 2 05-06-2012 12:20
[решено] Программирование 1С и доработки конфигураций 1С Kerberos_2.0 Хочу все знать 4 26-02-2011 17:45
Обмен ссылками Vertex Флейм 0 15-10-2009 19:10
Проблема с внутренними вызовами Bullet-Avalon Мобильные ОС, смартфоны и планшеты 2 24-11-2008 11:59




 
Переход