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



&НаКлиенте

Процедура Скриншот_сеанса(Полный_путь_к_файлу = "") // доступна с версии 8.3.17



// Сохранение скриншота текущего сеанса пользователя (по переданному адресу)

// Установить в настройках БД: "Управление настройками обработки ошибок" -

// "Снимок окон приложения" = "Отправлять"



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



// Получаем имя временного файла с типом: Строка

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



// Регистрация (сохранение и отправки данных) ошибки

Отчет_об_ошибке = Новый ОтчетОбОшибке(ИнформацияОбОшибке());

Отчет_об_ошибке.Записать(Временный_zip_файл, Ложь);



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

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



// Чтение файла ZIP

Архив_zip = Новый ЧтениеZipФайла(Временный_zip_файл);

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



// Случайное число в диапазоне от 1 до 999999 для рандомного имени файла

ГенераторСлЧисел = Новый ГенераторСлучайныхЧисел();

СлучЧисло=ГенераторСлЧисел.СлучайноеЧисло(1,999999);



// Сохраняем скриншот 1С в папку

Путь_к_скриншоту = Каталог_файлов + "\screen"+СлучЧисло+".png";

КопироватьФайл(Путь_к_скриншоту, Полный_путь_к_файлу);



// Чистим мусор

УдалитьФайлы(Временный_zip_файл);

УдалитьФайлы(Каталог_файлов);



#КонецЕсли



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






✍️ @odin1C_rus