Какие пути просматривает Платформа при поиске ВК?

1. Liris 39 29.11.23 16:48 Сейчас в теме
Приветствую, уважаемые коллеги!
Просмотрел документацию по Платформе и не нашел там ответа на мой вопрос.
Вопрос звучит так: Какие пути (папки) просматривает Платформа 1С, когда ищет файл внешней компоненты?

При использовании метода (ниже) в каких путях будет искать файл V8My.dll ?
ПодключитьВнешнююКомпоненту("V8My.dll", "V8My", ТипВнешнейКомпоненты.Native) 


Вопрос возник потому, что безопасники в организации категорически запрещают размещать dll внешних компонент в макетах, внутри конфигурации.
За то, можно разместить dll на сервере. Нужно найти такое место, которое "сможет найти" Платформа 1С:Предприятие.
Не желательно, конечно, размещать в папке bin, Платформы.
И не желательно размещать в какой-то папке, чтобы потом хардкодить путь к ВК в коде обработки.

Если правильно понимаю, то это пути:
- папка bin Платформы (не желательный вариант)
- папка Windows (не желательный вариант)
- ??? Какие еще есть пути?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. lefthander 29.11.23 17:20 Сейчас в теме
(1)
??? Какие еще есть пути
А какие пути разрешают безопасники?

(1)
что безопасники в организации категорически запрещают размещать dll внешних компонент в макетах, внутри конфигурации.
1С ники именно так и делают. правда они встраивают этов в конфигу.

Можно общую папку 1С рекомендовать, так как бин платформы и бин конфиги величины переменные в отличии от c:\ProgramData\1C\
или c:\Program Files\1cv8\
3. Liris 39 29.11.23 17:53 Сейчас в теме
(2)
А какие пути разрешают безопасники?


Есть папка, в которой складываются всякие обработки. Условно, D:\things\
Но путь к ней на разных серверах различается.
У меня есть идея сделать переменную окружения вида VKPATH, в которую админы пропишут путь к ВК. Под это подойдет размещение ВК в разных папках на разных серверах.
А вызывать ВК можно так
ПодключитьВнешнююКомпоненту("%VKPATH%\V8My.dll", "V8My", ТипВнешнейКомпоненты.Native) 

Как считаете, такое будет работать в Windows?
4. starik-2005 3098 29.11.23 18:50 Сейчас в теме
(3)
Как считаете
Так попробуй.
lefthander; +1 Ответить
5. Liris 39 14.12.23 22:51 Сейчас в теме
(4) Привет.
Жаль, что не получилось от форумчан получить ответ, пришлось ждать согласования безопасников и потом экспериментировать.
Рассказываю по порядку результат. Платформа 1С:Предприятие не понимает использование переменных окружения, не умеет к ним обращаться и получать значения. Такой код не работает:
ПодключитьВнешнююКомпоненту("%VKPATH%\V8My.dll", "V8My", ТипВнешнейКомпоненты.Native)

Но идея использовать переменную окружения понравилась многим у нас. Поэтому, решили найти способ ее использовать. Для этого написали функцию, которая обращается к операционной системе, выбирает переменную окружения по имени и возвращает ее значение. Упрощенно функция выглядит так:
Функция ВернутьПутьВК(Парам)
  ИмяПеременнойОкружения = "%Парам%";
  Shell = Новый COMОбъект("WScript.Shell");
  сКаталогВК = Shell.ExpandEnvironmentStrings(ИмяПеременнойОкружения);
  Возврат сКаталогВК;
КонецФункции

Используя эту функцию, можно обратиться к любой переменной окружения и получить ее значение.
6. user1880116 14.12.23 23:03 Сейчас в теме
(5)
Жаль, что не получилось от форумчан получить ответ
Нам стало очень стыдно.
7. user1880116 14.12.23 23:20 Сейчас в теме
(5)
написали функцию, которая обращается к операционной системе, выбирает переменную окружения по имени и возвращает ее значение
Вы не написали, вы скопировали кусок gousi из интернета и решили осчастливить им всех, gen houzi bi diushi.

Метод ExpandEnvironmentStrings не "возвращает ее значение". Он возвращает строку, в которой переменные среды заменены на их фактические значения. Если значение какой-либо переменной раскрыть не удалось, то её плейсхолдер не меняется. По вашей же "логике" значением неустановленной переменой среды "%NotSet%" будет строка "%NotSet%"
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот