Какие пути просматривает Платформа при поиске ВК?
Приветствую, уважаемые коллеги!
Просмотрел документацию по Платформе и не нашел там ответа на мой вопрос.
Вопрос звучит так: Какие пути (папки) просматривает Платформа 1С, когда ищет файл внешней компоненты?
При использовании метода (ниже) в каких путях будет искать файл V8My.dll ?
Вопрос возник потому, что безопасники в организации категорически запрещают размещать dll внешних компонент в макетах, внутри конфигурации.
За то, можно разместить dll на сервере. Нужно найти такое место, которое "сможет найти" Платформа 1С:Предприятие.
Не желательно, конечно, размещать в папке bin, Платформы.
И не желательно размещать в какой-то папке, чтобы потом хардкодить путь к ВК в коде обработки.
Если правильно понимаю, то это пути:
- папка bin Платформы (не желательный вариант)
- папка Windows (не желательный вариант)
- ??? Какие еще есть пути?
Просмотрел документацию по Платформе и не нашел там ответа на мой вопрос.
Вопрос звучит так: Какие пути (папки) просматривает Платформа 1С, когда ищет файл внешней компоненты?
При использовании метода (ниже) в каких путях будет искать файл V8My.dll ?
ПодключитьВнешнююКомпоненту("V8My.dll", "V8My", ТипВнешнейКомпоненты.Native)
Вопрос возник потому, что безопасники в организации категорически запрещают размещать dll внешних компонент в макетах, внутри конфигурации.
За то, можно разместить dll на сервере. Нужно найти такое место, которое "сможет найти" Платформа 1С:Предприятие.
Не желательно, конечно, размещать в папке bin, Платформы.
И не желательно размещать в какой-то папке, чтобы потом хардкодить путь к ВК в коде обработки.
Если правильно понимаю, то это пути:
- папка bin Платформы (не желательный вариант)
- папка Windows (не желательный вариант)
- ??? Какие еще есть пути?
По теме из базы знаний
- Методология i3 как основа новой экономики. Индустрия 5.0
- Синхронизация хранилища 1С и git-репозитория с применением OneScript и Gitsync. Методика и пошаговая инструкция для создания скрипта и его регулярного запуска
- Решенные задания для сертификационного экзамена 1С: Специалист по Платформе 8.3 + Шпаргалки
- Xubuntu 20.04 для бухгалтера 1С
- Результаты ревью кода 1500+ решений каталога Инфостарт: наиболее частые ошибки разработчиков в коде
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
(1)
Можно общую папку 1С рекомендовать, так как бин платформы и бин конфиги величины переменные в отличии от c:\ProgramData\1C\
или c:\Program Files\1cv8\
??? Какие еще есть пути
А какие пути разрешают безопасники?
(1)
что безопасники в организации категорически запрещают размещать dll внешних компонент в макетах, внутри конфигурации.
1С ники именно так и делают. правда они встраивают этов в конфигу.
Можно общую папку 1С рекомендовать, так как бин платформы и бин конфиги величины переменные в отличии от c:\ProgramData\1C\
или c:\Program Files\1cv8\
(2)
Есть папка, в которой складываются всякие обработки. Условно, D:\things\
Но путь к ней на разных серверах различается.
У меня есть идея сделать переменную окружения вида VKPATH, в которую админы пропишут путь к ВК. Под это подойдет размещение ВК в разных папках на разных серверах.
А вызывать ВК можно так
Как считаете, такое будет работать в Windows?
А какие пути разрешают безопасники?
Есть папка, в которой складываются всякие обработки. Условно, D:\things\
Но путь к ней на разных серверах различается.
У меня есть идея сделать переменную окружения вида VKPATH, в которую админы пропишут путь к ВК. Под это подойдет размещение ВК в разных папках на разных серверах.
А вызывать ВК можно так
ПодключитьВнешнююКомпоненту("%VKPATH%\V8My.dll", "V8My", ТипВнешнейКомпоненты.Native)
Как считаете, такое будет работать в Windows?
(4) Привет.
Жаль, что не получилось от форумчан получить ответ, пришлось ждать согласования безопасников и потом экспериментировать.
Рассказываю по порядку результат. Платформа 1С:Предприятие не понимает использование переменных окружения, не умеет к ним обращаться и получать значения. Такой код не работает:
Но идея использовать переменную окружения понравилась многим у нас. Поэтому, решили найти способ ее использовать. Для этого написали функцию, которая обращается к операционной системе, выбирает переменную окружения по имени и возвращает ее значение. Упрощенно функция выглядит так:
Используя эту функцию, можно обратиться к любой переменной окружения и получить ее значение.
Жаль, что не получилось от форумчан получить ответ, пришлось ждать согласования безопасников и потом экспериментировать.
Рассказываю по порядку результат. Платформа 1С:Предприятие не понимает использование переменных окружения, не умеет к ним обращаться и получать значения. Такой код не работает:
ПодключитьВнешнююКомпоненту("%VKPATH%\V8My.dll", "V8My", ТипВнешнейКомпоненты.Native)
Но идея использовать переменную окружения понравилась многим у нас. Поэтому, решили найти способ ее использовать. Для этого написали функцию, которая обращается к операционной системе, выбирает переменную окружения по имени и возвращает ее значение. Упрощенно функция выглядит так:
Функция ВернутьПутьВК(Парам)
ИмяПеременнойОкружения = "%Парам%";
Shell = Новый COMОбъект("WScript.Shell");
сКаталогВК = Shell.ExpandEnvironmentStrings(ИмяПеременнойОкружения);
Возврат сКаталогВК;
КонецФункции
Используя эту функцию, можно обратиться к любой переменной окружения и получить ее значение.
(5)
Метод ExpandEnvironmentStrings не "возвращает ее значение". Он возвращает строку, в которой переменные среды заменены на их фактические значения. Если значение какой-либо переменной раскрыть не удалось, то её плейсхолдер не меняется. По вашей же "логике" значением неустановленной переменой среды "%NotSet%" будет строка "%NotSet%"
написали функцию, которая обращается к операционной системе, выбирает переменную окружения по имени и возвращает ее значение
Вы не написали, вы скопировали кусок gousi из интернета и решили осчастливить им всех, gen houzi bi diushi.
Метод ExpandEnvironmentStrings не "возвращает ее значение". Он возвращает строку, в которой переменные среды заменены на их фактические значения. Если значение какой-либо переменной раскрыть не удалось, то её плейсхолдер не меняется. По вашей же "логике" значением неустановленной переменой среды "%NotSet%" будет строка "%NotSet%"
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот