Имя: Пароль:
1C
 
Как создать скриншот в 1с в коде
0 Ravil45
 
23.06.25
14:05
Как создать скриншот в 1с программно, хочу сделать скрин когда код выполнится и на экране выйдет карта, после этого должен выполниться скриншот и сохраниться в нужной мне папке?
1 timurhv
 
23.06.25
14:07
ПолеHTML?
2 formista2000
 
23.06.25
14:09
Как только с sendkeys не извращались...
3 PR
 
23.06.25
14:27
4 Волшебник
 
23.06.25
14:58
VanessaExt - библиотека внешних компонент 1С
https://github.com/lintest/VanessaExt/blob/develop/README.md

WindowsControl - внешняя компонента для управления окнами и процессами

Захват изображения экрана:
ПолучитьСнимокЭкрана (TakeScreenshot)
ПолучитьСнимокОбласти (CaptureRegion)
ПолучитьСнимокОкна (CaptureWindow)
ПолучитьСнимокПроцесса (CaptureProcess)

https://github.com/lintest/VanessaExt/blob/develop/Docs/WindowsControl.md
5 Ravil45
 
23.06.25
16:10
(1) карта формируется в поле html, приближаю карту и делаю скрин, потом его засуну в отчет
6 timurhv
 
23.06.25
16:25
(5) Можно использовать JS скрипт html2canvas, но если используется сторонняя картинка на карте и у нее CORS политика запрещена, то картинка не будет сохранена в веб-клиенте.
Платформа 1С это игнорирует (тонкий клиент), но в будущем с обновлением могут пофиксить и тоже не выводить.
7 timurhv
 
23.06.25
16:30
(6) Так подложки карты, значки могут не выводиться при сохранении картинки.
8 Гений 1С
 
гуру
23.06.25
16:33
(0) можно попробовать использовать описание ошибки (дамп), как вариант.
9 r_p
 
23.06.25
17:58
Код


// Процедура сохраняет скриншот текущего сеанса пользователя по переданному адресу
// Работает начиная с версии 8.3.17.
//
// Параметры:
//  ПолныйПуть     - Строка     - Полный путь к файлу
//
&НаКлиенте
Процедура СохранитьСкриншотСеанса(ПолныйПуть = "")
    
    #Если НЕ ВебКлиент Тогда
    
    ВременныйФайл = ПолучитьИмяВременногоФайла(".zip");
    
    ОтчетОбОшибке = Новый ОтчетОбОшибке(ИнформацияОбОшибке());
    ОтчетОбОшибке.Записать(ВременныйФайл, Ложь);
    
    КаталогФайлов = КаталогВременныхФайлов() + СтрЗаменить(Новый УникальныйИдентификатор, "-", "");
    ЧтениеАрхива  = Новый ЧтениеZipФайла(ВременныйФайл);
    ЧтениеАрхива.ИзвлечьВсе(КаталогФайлов, РежимВосстановленияПутейФайловZIP.НеВосстанавливать);
    
    ПутьСкриншота = КаталогФайлов + "\screenshot.png";
    КопироватьФайл(ПутьСкриншота, ПолныйПуть);
    
    УдалитьФайлы(ВременныйФайл);
    УдалитьФайлы(КаталогФайлов);
    
    #КонецЕсли
    
КонецПроцедуры
10 Волшебник
 
23.06.25
20:38
(9) Вы только добавьте, что это всё внутри Исключение...КонецПопытки