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


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


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

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

Пример №1:

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

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

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

Переменная КаталогКэша у меня будет равна «C:UsersАдминистраторAppDataLocalMicrosoftWindowsTemporary Internet Files«;

У Васи «C:UsersVasyaAppDataLocalMicrosoftWindowsTemporary Internet Files«;
У Пети «C:UsersPeterAppDataLocalMicrosoftWindowsTemporary Internet Files«;

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

КаталогКэша = «%LOCALAPPDATA%MicrosoftWindowsTemporary Internet Files«;

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

Shell = Новый COMОбъект(«WScript.Shell»);
LOCALAPPDATA = Shell.ExpandEnvironmentStrings(«%LOCALAPPDATA);
КаталогКэша = LOCALAPPDATA + «MicrosoftWindowsTemporary Internet Files»;


Пример №2:

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

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

%userprofile%AppDataRoaming1C1Cv82
%userprofile%AppDataLocal1C1Cv82

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

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

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

 

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


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

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

11 Comments

  1. tormozit

    А че все в табличном виде сразу вычислить нельзя разве?

    Reply
  2. Yury1001

    (1) tormozit, кажыся зреет версия 2.0:)

    Reply
  3. abc2000

    (1) tormozit,

    В версии 2.0 пожелание будет исполнено.

    Reply
  4. tormozit

    (3) С нетерпением будем ждать версию 2.0!

    Reply
  5. abc2000

    (4) Обновил, скачиваем и голосуем.

    Reply
  6. tormozit

    А почему не указываешь для какого пользователя и компьютера получены значения переменных?

    Reply
  7. abc2000

    (6) Не понял вопроса. Для разных рабочих станций значения будут разными .

    Reply
  8. tormozit

    (7) Это если переменные на клиенте вычисляются.

    Reply
  9. abc2000

    (8) Это Вы к тому , потому что в версии 2.0 получение переменных происходит внутри процедуры помеченной директивой &НаСервере ?

    Reply
  10. abc2000

    Сервера у меняя нет, только файловая версия, потому проверить не могу. Вставил код в процедуру с директивой &НаКлиенте.

    Reply
  11. pvl_mksv

    Спасибо!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *