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

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

Дата Если Массивы Математика Процедуры Строки Циклы
Диалоги ОписаниеТипов ОперационнаяСистема Приложение Соответствие
СписокЗначений Структура ТаблицаЗначений ФайловаяСистема Формат

ОбщиеОбъекты Запросы ПрикладныеОбъекты УниверсальныеФункции

Скачать эти примеры в виде тестовой базы (как загрузить, как исследовать)

Оглавление (нажмите, чтобы раскрыть)

/// Как запустить внешнюю программу и
/// дождаться окончания её выполнения из 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С 8.3, 8.2 (в примерах)

Дата Если Массивы Математика Процедуры Строки Циклы
Диалоги ОписаниеТипов ОперационнаяСистема Приложение Соответствие
СписокЗначений Структура ТаблицаЗначений ФайловаяСистема Формат

ОбщиеОбъекты Запросы ПрикладныеОбъекты УниверсальныеФункции

С уважением, (преподаватель школы 1С программистов и разработчик обновлятора).



Владимир Милькин
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться: