1С 8.3 Скриншот сеанса программно - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 Скриншот сеанса программно

Данные > Примеры кода 1С > 1С 8.3 Пользователи, роли (права) доступа
Программное сохраненные скриншота в 1С 8.3:
&НаКлиенте
Процедура Скриншот_сеанса(Полный_путь_к_файлу = "") // доступна с версии 8.3.17

    // Сохранение скриншота текущего сеанса пользователя (по переданному адресу)
    // Установить в настройках БД: "Управление настройками обработки ошибок" -
    // "Снимок окон приложения" = "Отправлять"

   
#Если НЕ ВебКлиент Тогда

       
// Получаем имя временного файла с типом: Строка
       
Временный_zip_файл = ПолучитьИмяВременногоФайла("zip");

       
// Регистрация (сохранение и отправки данных) ошибки
       
Отчет_об_ошибке = Новый ОтчетОбОшибке(ИнформацияОбОшибке());
       
Отчет_об_ошибке.Записать(Временный_zip_файл, Ложь);

       
// Получаем имя каталога временных файлов пользователя
       
Каталог_файлов = КаталогВременныхФайлов() + СтрЗаменить(Новый УникальныйИдентификатор, "-", "");

       
// Чтение файла ZIP
       
Архив_zip  = Новый ЧтениеZipФайла(Временный_zip_файл);
       
Архив_zip.ИзвлечьВсе(Каталог_файлов, РежимВосстановленияПутейФайловZIP.НеВосстанавливать);

       
// Случайное число в диапазоне от 1 до 999999 для рандомного имени файла
       
ГенераторСлЧисел = Новый ГенераторСлучайныхЧисел();
       
СлучЧисло=ГенераторСлЧисел.СлучайноеЧисло(1,999999);

       
// Сохраняем скриншот 1С в папку
       
Путь_к_скриншоту = Каталог_файлов + "\screen"+СлучЧисло+".png";
       
КопироватьФайл(Путь_к_скриншоту, Полный_путь_к_файлу);

       
// Чистим мусор
       
УдалитьФайлы(Временный_zip_файл);
       
УдалитьФайлы(Каталог_файлов);

   
#КонецЕсли

КонецПроцедуры
В предыдущих версиях 1С (до 8.3.17), реализация данного метода была возможна с использованием внешних компонент или с помощью PowerShell:
При запуске PowerShell (COM объект WScript.Shell) параметром передаётся скрипт выполнения снимка экрана. Скриншот сохраняется во временный каталог, отображается на экране и далее удаляется. Пример реализации:
Текст_PS = """& {[void][Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms');"
+ "$size = [Windows.Forms.SystemInformation]::VirtualScreen;"
+ "$bitmap = new-object Drawing.Bitmap $size.width, $size.height;"
+ "$graphics = [Drawing.Graphics]::FromImage($bitmap);"
+ "$graphics.CopyFromScreen($size.location,[Drawing.Point]::Empty, $size.size);"
+ "$graphics.Dispose();"
+ "$bitmap.Save('"+ИмяФайлаСкриншота+"');"
+ "$bitmap.Dispose()}""";
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 08.05.2021
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому