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

24.11.12

Разработка - Универсальные функции

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

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

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


Данная обработка позволяет просматривать установленные системные переменные 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 - работает теперь не только на управляемых но и на обычных формах.

См. также

Вставляем картинку из буфера обмена (платформа 1С 8.3.24)

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    2665    0    John_d    8    

53

GUID в 1С 8.3 - как с ними быть

Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    4597    atdonya    22    

45

Переоткрытие внешних обработок

Универсальные функции Платформа 1С v8.3 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    3956    ke.92@mail.ru    16    

61

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    8804    YA_418728146    6    

141

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    2071    21    progmaster    7    

3

Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов

Инструментарий разработчика Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    16141    133    sapervodichka    112    

129

Система контроля ведения учета [БСП]

Универсальные функции Механизмы типовых конфигураций БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данном материале рассмотрим типовой алгоритм подсистемы контроля учета БСП в конфигурациях на примерах.

18.07.2022    7242    quazare    8    

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

Функция ПрочитатьПеременныеСреды() Экспорт

	ИмяВременногоФайла = ПолучитьИмяВременногоФайла("txt");
	СИ = Новый СистемнаяИнформация();	
	ЭтоLinux = СИ.ТипПлатформы = ТипПлатформы.Linux_x86 ИЛИ СИ.ТипПлатформы = ТипПлатформы.Linux_x86_64;
	ЭтоMacOS = СИ.ТипПлатформы = ТипПлатформы.MacOS_x86 ИЛИ СИ.ТипПлатформы = ТипПлатформы.MacOS_x86_64;
	ЭтоWindows = СИ.ТипПлатформы = ТипПлатформы.Windows_x86 ИЛИ СИ.ТипПлатформы = ТипПлатформы.Windows_x86_64;

	Если ЭтоLinux ИЛИ ЭтоMacOS Тогда
		КомандаСистемы("env > """ + ИмяВременногоФайла + """");
	ИначеЕсли ЭтоWindows Тогда	
		КомандаСистемы("set > """ + ИмяВременногоФайла + """");
	Иначе	
		Возврат Null; //неизвестная платформа
	КонецЕсли;

	СоотвествиеПеременные = Новый Соответствие();
	
	Попытка
		
		ДанныеФайл = Новый ЧтениеТекста(ИмяВременногоФайла, КодировкаТекста.UTF8);
		
		Пока Истина Цикл
			
			ДанныеСтрока = ДанныеФайл.ПрочитатьСтроку();
			
			Если ДанныеСтрока = Неопределено Тогда
				Прервать;
			КонецЕсли;	
			
			Разделитель = СтрНайти(ДанныеСтрока, "=");
			ИмяПеременной = Лев(ДанныеСтрока, Разделитель - 1);
			ЗначениеПеременной = Сред(ДанныеСтрока, Разделитель + 1);
			
			Если Не ПустаяСтрока(ИмяПеременной) Тогда
				СоотвествиеПеременные.Вставить(ИмяПеременной, ЗначениеПеременной);
			КонецЕсли;
			
		КонецЦикла;
		
		ДанныеФайл.Закрыть();
		
	Исключение
		Возврат Null; //если не смогли считать файл то все плохо
	КонецПопытки;
	
	//пробуем почистить за собой
	Попытка
		УдалитьФайлы(ИмяВременногоФайла);
	Исключение
	КонецПопытки;

	Возврат Новый ФиксированноеСоответствие(СоотвествиеПеременные);

КонецФункции
Показать
begemot; Onaisoft; platonov.e; user747134; Zeskord; VGHOST; +6 Ответить
Оставьте свое сообщение