|   |   | 
| 
 | Как наиболее универсально получить путь к 1cestart.exe? | ☑ | ||
|---|---|---|---|---|
| 0
    
        TormozIT гуру 07.02.12✎ 02:54 | 
        Читал справку в конфигураторе
  Читал тут http://infostart.ru/public/104469/ Читал партнерский форум Нужно получить путь к стартеру платформы (1cestart.exe) на любой ОС. Понял что вроде отсюда (на Windows 7) C:\Users\All Users\1C\1CEStart\1CEStart.cfg нужно читать (параметр InstalledLocation). Как этот путь получить? В коллекции Shell.Application.NameSpace не нашел ни C:\Users\All Users\ ни C:\Users\ | |||
| 1
    
        Дядя Васька 07.02.12✎ 03:00 | 
        HKEY_CLASSES_ROOT\Applications\1cestart.exe? :)     | |||
| 2
    
        TormozIT гуру 07.02.12✎ 03:13 | 
        (1) Это имя ключа, а не значения системного реестра. Там нет пути к файлу.     | |||
| 3
    
        Дядя Васька 07.02.12✎ 03:17 | 
        [HKEY_CLASSES_ROOT\Applications\1cestart.exe\shell\open\command]
  @="\"C:\\Program Files\\1cv82\\common\\1cestart.exe\" /RunShortcut \"%1\"" | |||
| 4
    
        TormozIT гуру 07.02.12✎ 03:19 | 
        Вот рабочее решение (проверил на 2003 server, windows 7, windows 2008 server)
  ShellApplication = Новый COMobject("Shell.Application"); ВсеЮзеры = ShellApplication.NameSpace(35).Self.Path; ИмяКонфигФайла = ВсеЮзеры + "\1C\1CEStart\1CEStart.cfg"; Текст = Новый ТекстовыйДокумент; Текст.Прочитать(ИмяКонфигФайла); Путь = ""; Для Счетчик = 1 По СтрЧислоСтрок(Текст.ПолучитьТекст()) Цикл СтрокаТекста = СокрЛ(Текст.ПолучитьСтроку(Счетчик)); Если Найти(СтрокаТекста, "InstalledLocation") = 1 Тогда Путь = Сред(СтрокаТекста, Найти(СтрокаТекста, "=") + 1); Прервать; КонецЕсли; КонецЦикла; ИмяФайла = Путь + "\common\1cestart.exe"; Коллеги, если знаете способ короче или нашли в этом ошибку, то напишите сюда об этом | |||
| 5
    
        Дядя Васька 07.02.12✎ 03:21 | 
        (4) Те же яйца, только в профиль...     | |||
| 6
    
        Дядя Васька 07.02.12✎ 03:31 | 
        +(5) (3) Все же правильней наверное, если кому приспичит не Program Files поставить, а куда-нить в C:\1c например...     | |||
| 7
    
        TormozIT гуру 07.02.12✎ 03:37 | 
        (3) Это как я понимаю для команды ОС "Open with". Если она по какой то причине не будет работать (ее кто то испортит/удалит), то платформа продолжает полноценно работать.
  А вот если испортить значение параметра в указанном мной конфигурационном файле, то некоторые ее функции сломаются. На мой взгляд (3) проще и изящнее, а (4) надежнее, т.к. используется информация из документации по платформе. | |||
| 8
    
        TormozIT гуру 07.02.12✎ 03:40 | 
        (3) + Есть вероятность, что другое приложение также назовет свой исполняемый файл и зарегистрирует его в этом ключе, перезаписав значение.     | |||
| 9
    
        Дядя Васька 07.02.12✎ 03:44 | 
        (8) Ну-ну... Примерно такая же, как если мама с папой запишут своему дитю в свидетельство о рождении имя TormozIT, ну или "дядя Вася"... А вот установить в нестандартное место могут запросто.     | |||
| 10
    
        TormozIT гуру 07.02.12✎ 10:22 | 
        (9) При чем здесь нестандартное место? Оба способа устойчивы к изменению каталога установки. Еще раз хочу отметить, что платформа использует не ключ реестра из (3), а файл из (1) при определении каталога установки, правда в документации не указано для каких именно операций.
  " Формат конфигурационного файла программы запуска Файл расположен в каталоге %APPDATA%\1C\1CEStart. ... InstalledLocation - содержит указание на каталог, в который выполнена установка 1С:Предприятие. По умолчанию это значение C:\Program Files\1Cv82. " | |||
| 11
    
        TormozIT гуру 07.02.12✎ 10:28 | 
        (10) + Правда это другой (второй) конфигурационный файл, какой из (1) и (10) имеет больший приоритет пока не понял.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |