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 начинается с тела модуля - кода, расположенного после всех методов.
Состав свойств и методов класса СистемнаяИнформация мы можем узнать в синтакс-помощнике. Напишем следующий код.
СистемнаяИнформация = Новый СистемнаяИнформация();
Сообщить("Имя компьютера: " + СистемнаяИнформация.ИмяКомпьютера);
Сообщить("Версия ОС: " + СистемнаяИнформация.ВерсияОС);
Сообщить("Тип платформы: " + СистемнаяИнформация.ТипПлатформы);
Сообщить("Пользователь: " + СистемнаяИнформация.ПользовательОС);
Сообщить("Количество ЦПУ: " + СистемнаяИнформация.КоличествоПроцессоров);
Сообщить("Разрядность: " + ?(СистемнаяИнформация.Это64БитнаяОперационнаяСистема, "64", "32"));Мы получаем значения свойств класса и выводим их в консоль, пользуясь методом Сообщить.
Дополним код информацией о специальных папках и дисках системы. Добавим два цикла:
Сообщить("Системные папки:");
Для Каждого Папка Из СпециальнаяПапка Цикл
Сообщить(Символы.Таб + Строка(Папка) + ": " + СистемнаяИнформация.ПолучитьПутьПапки(Папка));
КонецЦикла;
Сообщить("Логические диски:");
Для Каждого ИмяДиска Из СистемнаяИнформация.ИменаЛогическихДисков Цикл
Сообщить(Символы.Таб + ИмяДиска);
КонецЦикла;Наш скрипт готов. Запустим его на выполнение. Откроем встроенный терминал VS Code из меню Terminal -> New Terminal
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:\\Сейчас мы используем конкатенацию строк в каждом значении, это не очень удобно, т.к. если мы захотим изменить формат вывода, нам придется изменять его в каждой строчке. Выделим отдельный метод ВывестиЗначение, который будет отвечать за форматирование текста.
Методы должны располагаться перед кодом тела модуля, поэтому процедуру ВывестиЗначение мы располагаем в самом верху файла
Процедура ВывестиЗначение(Название, Значение)
КонецПроцедуры
СистемнаяИнформация = Новый СистемнаяИнформация();
... и далее без измененийДобавим в методе код вывода. Будем использовать встроенную функцию СтрШаблон. Также заменим места вывода значений на вызов метода ВывестиЗначение
Процедура ВывестиЗначение(Название, Значение)
Сообщить(СтрШаблон("%1: %2", Название, Значение), СтатусСообщения.Информация);
КонецПроцедуры
СистемнаяИнформация = Новый СистемнаяИнформация();
ВывестиЗначение("Имя компьютера", СистемнаяИнформация.ИмяКомпьютера);
ВывестиЗначение("Версия ОС", СистемнаяИнформация.ВерсияОС);
ВывестиЗначение("Тип платформы", СистемнаяИнформация.ТипПлатформы);
ВывестиЗначение("Пользователь", СистемнаяИнформация.ПользовательОС);
ВывестиЗначение("Количество ЦПУ", СистемнаяИнформация.КоличествоПроцессоров);
ВывестиЗначение("Разрядность", ?(СистемнаяИнформация.Это64БитнаяОперационнаяСистема, "64", "32"));
Сообщить("Системные папки:");
Для Каждого Папка Из СпециальнаяПапка Цикл
ВывестиЗначение(Символы.Таб + Строка(Папка), СистемнаяИнформация.ПолучитьПутьПапки(Папка));
КонецЦикла;
Сообщить("Логические диски:");
Для Каждого ИмяДиска Из СистемнаяИнформация.ИменаЛогическихДисков Цикл
Сообщить(Символы.Таб + ИмяДиска);
КонецЦикла;Теперь формат вывода можно менять в одном месте.
Мы научились: