import{_ as i,c as a,a3 as n,o as p}from"./chunks/framework.CUlkWZrb.js";const l="/assets/vscode-new-file.B9v1x2ki.png",y=JSON.parse('{"title":"Урок: Информация о системе","description":"","frontmatter":{},"headers":[],"relativePath":"learn/tutorial-info.md","filePath":"learn/tutorial-info.md"}'),h={name:"learn/tutorial-info.md"};function k(t,s,e,r,d,E){return p(),a("div",null,s[0]||(s[0]=[n('

Урок: Информация о системе

Начнем изучать OneScript с практического примера. Создадим скрипт, который печатает информацию о текущей системе.

Вы научитесь

Постановка задачи

Скрипт, который выводит на экран:

Начало работы

Создадим пустой каталог и откроем его в VS Code с помощью меню File -> Open Folder. Этот режим открывает папку, как каталог проекта. Это основной режим разработки проектов для OneScript. В нем мы работаем с содержимым папки, как с единым проектом.

Добавим новый файл с расширением .os в нашу папку.

Назовем файл sys-info.os и откроем его в редакторе.

Пишем код

Мы будем пользоваться классом СистемнаяИнформация, который предоставит нам все необходимые данные о системе. Так же, как в системе 1С:Предприятие, исполнение любого модуля OneScript начинается с тела модуля - кода, расположенного после всех методов.

Состав свойств и методов класса СистемнаяИнформация мы можем узнать в синтакс-помощнике. Напишем следующий код.

bsl
СистемнаяИнформация = Новый СистемнаяИнформация();

Сообщить("Имя компьютера: " + СистемнаяИнформация.ИмяКомпьютера);
Сообщить("Версия ОС: " + СистемнаяИнформация.ВерсияОС);
Сообщить("Тип платформы: " + СистемнаяИнформация.ТипПлатформы);
Сообщить("Пользователь: " + СистемнаяИнформация.ПользовательОС);
Сообщить("Количество ЦПУ: " + СистемнаяИнформация.КоличествоПроцессоров);
Сообщить("Разрядность: " + ?(СистемнаяИнформация.Это64БитнаяОперационнаяСистема, "64", "32"));

Мы получаем значения свойств класса и выводим их в консоль, пользуясь методом Сообщить.

Дополним код информацией о специальных папках и дисках системы. Добавим два цикла:

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

Сообщить("Логические диски:");
Для Каждого ИмяДиска Из СистемнаяИнформация.ИменаЛогическихДисков Цикл
	Сообщить(Символы.Таб + ИмяДиска);
КонецЦикла;

Наш скрипт готов. Запустим его на выполнение. Откроем встроенный терминал VS Code из меню Terminal -> New Terminal

sh
oscript sys-info.os

Если все написано правильно, мы должны получить примерно такой вывод:

C:\\Users\\user\\Desktop\\tmp\\releases>oscript sys-info.os
Имя компьютера: WIN-HOME
Версия ОС: Microsoft Windows NT 6.2.9200.0
Тип платформы: Windows_x86_64
Пользователь: \\\\WIN-HOME\\user
Количество ЦПУ: 4
Разрядность: 64
Системные папки:
 МоиДокументы:C:\\Users\\user\\Documents
 ДанныеПриложений:C:\\Users\\user\\AppData\\Roaming
 ЛокальныйКаталогДанныхПриложений:C:\\Users\\user\\AppData\\Local
 РабочийСтол:C:\\Users\\user\\Desktop
 КаталогРабочийСтол:C:\\Users\\user\\Desktop
 МояМузыка:C:\\Users\\user\\Music
 МоиРисунки:C:\\Users\\user\\Pictures
 Шаблоны:C:\\Users\\user\\AppData\\Roaming\\Microsoft\\Windows\\Templates
 МоиВидеозаписи:C:\\Users\\user\\Videos
 ОбщиеШаблоны:C:\\ProgramData\\Microsoft\\Windows\\Templates
 ПрофильПользователя:C:\\Users\\user
 ОбщийКаталогДанныхПриложения:C:\\ProgramData
Логические диски:
 C:\\
 D:\\
 E:\\
 J:\\

Рефакторинг

Сейчас мы используем конкатенацию строк в каждом значении, это не очень удобно, т.к. если мы захотим изменить формат вывода, нам придется изменять его в каждой строчке. Выделим отдельный метод ВывестиЗначение, который будет отвечать за форматирование текста.

Методы должны располагаться перед кодом тела модуля, поэтому процедуру ВывестиЗначение мы располагаем в самом верху файла

bsl
Процедура ВывестиЗначение(Название, Значение)

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

СистемнаяИнформация = Новый СистемнаяИнформация();

... и далее без изменений

Добавим в методе код вывода. Будем использовать встроенную функцию СтрШаблон. Также заменим места вывода значений на вызов метода ВывестиЗначение

bsl
Процедура ВывестиЗначение(Название, Значение)
	Сообщить(СтрШаблон("%1: %2", Название, Значение), СтатусСообщения.Информация);
КонецПроцедуры

СистемнаяИнформация = Новый СистемнаяИнформация();

ВывестиЗначение("Имя компьютера", СистемнаяИнформация.ИмяКомпьютера);
ВывестиЗначение("Версия ОС", СистемнаяИнформация.ВерсияОС);
ВывестиЗначение("Тип платформы", СистемнаяИнформация.ТипПлатформы);
ВывестиЗначение("Пользователь", СистемнаяИнформация.ПользовательОС);
ВывестиЗначение("Количество ЦПУ", СистемнаяИнформация.КоличествоПроцессоров);
ВывестиЗначение("Разрядность", ?(СистемнаяИнформация.Это64БитнаяОперационнаяСистема, "64", "32"));

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

Сообщить("Логические диски:");
Для Каждого ИмяДиска Из СистемнаяИнформация.ИменаЛогическихДисков Цикл
	Сообщить(Символы.Таб + ИмяДиска);
КонецЦикла;

Теперь формат вывода можно менять в одном месте.

Итоги

Мы научились:

`,33)]))}const F=i(h,[["render",k]]);export{y as __pageData,F as default};

AltStyle によって変換されたページ (->オリジナル) /