gifts2017

1С:Предприятие и системные переменные Windows.

Опубликовал abc2000 (abc2000) в раздел Обработки - Универсальные обработки

Данная обработка позволяет просматривать установленные системные переменные Windows.


Данная обработка позволяет просматривать установленные системные переменные Windows.


Какая же польза от использования системных переменных в 1С спросите Вы у меня ?

Пример №1:

Нам нужно удалить файлы кэша IE.
Как это сделать средствами 1С.

// Удалим в каталоге все файлы JS

Попытка УдалитьФайлы(КаталогКэша, "*.js");
   Исключение
        #Если Клиент Тогда
            Сообщить(ОписаниеОшибки());
        #КонецЕсли
КонецПопытки;


Переменная КаталогКэша у меня будет равна "C:\Users\Администратор\AppData\Local\Microsoft\Windows\Temporary Internet Files";

У Васи "C:\Users\Vasya\AppData\Local\Microsoft\Windows\Temporary Internet Files";
У Пети "C:\Users\Peter\AppData\Local\Microsoft\Windows\Temporary Internet Files";

И вот тут на помощь приходит системная переменная %LOCALAPPDATA%, т.е. можно для каждого пользователя можно записать

КаталогКэша = "%LOCALAPPDATA%\Microsoft\Windows\Temporary Internet Files";

Тут правда возникает еще одна проблема, дело в том что 1С не поймет такой путь.
И тут нам на помощь приходит старый добрый Windows Script Host.


Shell = Новый COMОбъект("WScript.Shell");
LOCALAPPDATA = Shell.ExpandEnvironmentStrings("%LOCALAPPDATA%");
КаталогКэша = LOCALAPPDATA + "\Microsoft\Windows\Temporary Internet Files";


Пример №2:

Например, возникла потребность удалить или скопировать настройки пользователей 1С.

Для Win 7 настройки хранятся в каталогах:

%userprofile%\AppData\Roaming\1C\1Cv82
%userprofile%\AppData\Local\1C\1Cv82

У меня полный путь выглядет так:
C:\Users\Администратор\AppData\Local\1C\1Cv82\

Соответственно получить путь к настройкам:

Shell = Новый COMОбъект("WScript.Shell");
APPDATA = Shell.ExpandEnvironmentStrings("%APPDATA%");
КаталогНастроек = APPDATA + "\1C\1Cv82";

 

Прикрепленная обработка содержит в себе список некоторых системных переменных Windows и позволяет узнать установленное им значение.


P. S. По многочисленным просьбам добавил версию 2.0. Функционал тот же, отличается только тем, что все значения отображает в табличном поле.

UPD: Версия 2.1 - работает теперь не только на управляемых но и на обычных формах.

Скачать файлы

Наименование Файл Версия Размер
Системные переменные 38
.epf 9,27Kb
24.11.12
38
.epf 9,27Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение
Комментарии
1. Сергей Старых (tormozit) 22.11.12 17:26
А че все в табличном виде сразу вычислить нельзя разве?
2. Юрий Зайцев (Yury1001) 22.11.12 17:36
(1) tormozit, кажыся зреет версия 2.0:)
3. abc2000 (abc2000) 22.11.12 17:41
(1) tormozit,
В версии 2.0 пожелание будет исполнено.
4. Сергей Старых (tormozit) 22.11.12 17:50
(3) С нетерпением будем ждать версию 2.0!
5. abc2000 (abc2000) 22.11.12 19:03
(4) Обновил, скачиваем и голосуем.
6. Сергей Старых (tormozit) 22.11.12 19:10
А почему не указываешь для какого пользователя и компьютера получены значения переменных?
7. abc2000 (abc2000) 22.11.12 19:16
(6) Не понял вопроса. Для разных рабочих станций значения будут разными .
8. Сергей Старых (tormozit) 22.11.12 19:35
(7) Это если переменные на клиенте вычисляются.
9. abc2000 (abc2000) 22.11.12 19:41
(8) Это Вы к тому , потому что в версии 2.0 получение переменных происходит внутри процедуры помеченной директивой &НаСервере ?
10. abc2000 (abc2000) 22.11.12 19:59
Сервера у меняя нет, только файловая версия, потому проверить не могу. Вставил код в процедуру с директивой &НаКлиенте.
11. Павел Мокосеев (pvl_mksv) 16.04.13 15:06