Работа с операционной системой в языке 1С 8.3

Aug 15, 2022 09:18


/// Как запустить внешнюю программу и
/// дождаться окончания её выполнения из 1с 8.3, 8.2

&НаКлиенте
Процедура ЗапуститьКалькуляторСОжиданием(Команда)

Перем КодВозврата;

ОткрытьЗначение("Запускаем калькулятор.");

ЗапуститьПриложение(
"calc.exe",
"", // текущий каталог для запускаемого приложения
Истина, // дожидаться завершения работы запущенного приложения
КодВозврата // сюда попадёт код, возвращаемый программой
);

// сюда мы попадём только после того,
// как пользователь закроет окно калькулятора

ОткрытьЗначение("Вы закрыли калькулятор.");

КонецПроцедуры
 
/// Как запустить внешнюю программу без ожидания
/// окончания её выполнения из 1с 8.3, 8.2

&НаКлиенте
Процедура ЗапуститьКалькуляторБезОжидания(Команда)

Перем КодВозврата;

ЗапуститьПриложение(
"calc.exe",
"", // текущий каталог для запускаемого приложения
Ложь, // дожидаться завершения работы запущенного приложения
КодВозврата // сюда попадёт код, возвращаемый программой
);

// сюда мы попадём сразу после запуска калькулятора
// не дожидаясь его закрытия

КонецПроцедуры

/// Как открыть сайт в браузере по умолчанию
/// в 1с 8.3, 8.2

&НаКлиенте
Процедура КакОткрытьСайтВБраузереПоУмолчанию(Команда)

ЗапуститьПриложение("http://helpme1s.ru");

КонецПроцедуры

/// Как открыть сайт в Internet Explorer из 1с 8.3, 8.2

// вариант #1

&НаКлиенте
Процедура КакОткрытьСайтВInternetExplorer(Команда)

Shell = Новый COMОбъект("WScript.Shell");
ProgramFiles = Shell.ExpandEnvironmentStrings("%PROGRAMFILES%");

ЗапуститьПриложение(ProgramFiles +
"\Internet Explorer\iexplore.exe http://helpme1s.ru");

// главный недостаток этого варианта запуска приложения
// с параметрами - нужно указывать полный путь к программе

КонецПроцедуры

// вариант #2 (мелькает чёрное окно)

&НаКлиенте
Процедура КакОткрытьСайтВInternetExplorer_2(Команда)

КомандаСистемы("start iexplore.exe http://helpme1s.ru");

// при запуске приложения с параметрами через команду системы
// полный путь указывать не нужно, но будет мелькать
// чёрное окно

КонецПроцедуры

/// Как открыть файл word или excel из 1с 8.3, 8.2

&НаКлиенте
Процедура КакОткрытьФайлWordИлиExcel(Команда)

ЗапуститьПриложение("c:\test.xlsx");

КонецПроцедуры

/// Как открыть конкретную папку в проводнике из 1с 8.3, 8.2

&НаКлиенте
Процедура КакОткрытьПапкуВПроводнике(Команда)

Shell = Новый COMОбъект("WScript.Shell");
WindowsDir = Shell.ExpandEnvironmentStrings("%WINDIR%");

ЗапуститьПриложение(WindowsDir +
"\explorer.exe ""C:\Program files""");

КонецПроцедуры

/// Как выделить нужный файл в проводнике из 1с 8.3, 8.2

&НаКлиенте
Процедура КакВыделитьФайлВПроводнике(Команда)

Shell = Новый COMОбъект("WScript.Shell");
WindowsDir = Shell.ExpandEnvironmentStrings("%WINDIR%");

// откроем проводник с выделенным файлом notepad.exe

ЗапуститьПриложение(WindowsDir +
"\explorer.exe /select,""C:\Windows\notepad.exe""");

КонецПроцедуры

/// Как запустить приложение с параметрами из 1с 8.3, 8.2

&НаКлиенте
Процедура КакЗапуститьПриложениеСПараметрами(Команда)

// Из примеров выше (запуска internet explorer и проводника)
// видно, что для запуска программы с параметрами
// нужно указывать полный путь к программе

// например:

ЗапуститьПриложение("C:\Windows\explorer.exe ""C:\Program files""");

// либо использовать командный интерпретатор Windows,
// но в этом случае будет мелькать чёрное окно

КомандаСистемы("start explorer.exe ""C:\Program files""");

КонецПроцедуры

/// Как выполнить команду операционной системы из
/// приложения в 1с 8

&НаКлиенте
Процедура КакВыполнитьКомандуОперационнойСистемы(Команда)

КомандаСистемы(
"winver", // выполняется через командный интерпретатор windows
"" // текущий каталог
);

КонецПроцедуры

/// Как получить имя компьютера в 1с 8.3, 8.2

&НаКлиенте
Процедура КакПолучитьИмяКомпьютера(Команда)

Сообщить(ИмяКомпьютера()); // например, VOLK

КонецПроцедуры

/// Как получить каталог исполняемых файлов из 1с 8.3, 8.2

&НаКлиенте
Процедура КакПолучитьКаталогИсполняемыхФайлов1С(Команда)

// выведет полный путь к папке bin
// из которой запущена 1с

Сообщить(КаталогПрограммы());

// например:
// C:\Program Files (x86)\1cv8t\8.3.4.482\bin\

КонецПроцедуры

/// Как получить каталог для временных файлов из 1с 8.3, 8.2

&НаКлиенте
Процедура КакПолучитьКаталогДляВременныхФайлов(Команда)

// получим каталог временных файлов для пользователя,
// от имени которого запущено приложение

Сообщить(КаталогВременныхФайлов()); // например, c:\temp\

КонецПроцедуры

/// Как получить стандартный каталог документов из 1с 8.3, 8.2

&НаКлиенте
Процедура КакПолучитьКаталогДокументов(Команда)

Сообщить(КаталогДокументов());

// например
// C:\Users\Пользователь\Documents\

КонецПроцедуры

/// Как получить информацию об экранах (dpi, разрешение)
/// клиента из 1с 8.3, 8.2

&НаКлиенте
Процедура КакПолучитьИнформациюОбЭкранах(Команда)

Для Каждого Экран Из ПолучитьИнформациюЭкрановКлиента() Цикл
Сообщить("DPI " + Строка(Экран.DPI) + " Высота: " +
Строка(Экран.Высота) + " Ширина: " + Строка(Экран.Ширина));
КонецЦикла;

// например
// DPI 96 Высота: 1 024 Ширина: 1 280

КонецПроцедуры

/// Как получить рабочий каталог данных пользователя
/// из 1с 8.3, 8.2

&НаКлиенте
Процедура КакПолучитьРабочийКаталогДанныхПользователя(Команда)

Сообщить(РабочийКаталогДанныхПользователя());

// например
// C:\Users\Пользователь\AppData\Roaming\1C\1cv8t\..
// ..01c02859-1a28-4514-b595-2abdc95ebb97\071523a4-5..
// ..16f-4fce-ba4b-0d11ab7a1893\App\

КонецПроцедуры

/// Как узнать текущий язык, используемый в приложении
/// в 1с 8.3, 8.2

&НаКлиенте
Процедура КакУзнатьТекущийЯзыкСистемы(Команда)

Сообщить(ТекущийЯзыкСистемы()); // ru

КонецПроцедуры

/// Как получить список пользователей операционной системы
/// в 1с 8.3, 8.2

&НаКлиенте
Процедура КакПолучитьСписокПользователейОперационнойСистемы(Команда)

ОткрытьЗначение("Внимание, если у вас учебная версия платформы," +
" то код ниже сработает с ошибкой.");

Для Каждого Пользователь Из ПользователиОС() Цикл
Сообщить(Пользователь.ИмяДомена + ": " +
Пользователь.ИмяСервера +" локальный (" +
Пользователь.Локальный + ")"
);

Для Каждого Имя Из Пользователь.Пользователи Цикл
Сообщить(" " + Имя);
КонецЦикла;
КонецЦикла;

КонецПроцедуры

Смотрите также:
Электронный учебник по программированию в 1С
Рекомендации по изучению программирования 1С с нуля
Игра "Кто хочет стать миллионером?" с вопросами на определенную тематику (язык программирования JavaScript, английские, немецкие, французские, испанские, португальские, ни­дер­ландские, итальянские слова, электробезопасность, промышленная безопасность, бокс и т.п.), написанная на 1С
Программирование в 1С 8.3 с нуля - краткий самоучитель
Комплексная подготовка программистов 1С:Предприятие 8.2
Сайты с уроками программирования и со справочниками
Youtube-каналы с уроками программирования
Сайты для обучения программированию
Лекции и уроки

программирование

Previous post Next post
Up