|
Как создать скриншот в 1с в коде
Волшебник, Crusher, s_newbi, AlexKimp, МаленькийВопросик, strange2007, Pprog151713, Лодырь, nick86, BayJay, PLUT, N-S-B, arsik, Mankubus, Скучный бух, DimR_71, d4rkmesa, СвинТуз, Mr_Boogie, r_p, craxx, Ravil45, sikuda, kir-g, Многолетний Апельсин, Gucci76, Sneer, tir654, Good day, piter3, dedmoroz777, Ненавижу 1С, saaken, Ёпрст, Hawk_1c, Ильф, formista2000, Доминошник, DiMel_77, reg0303, Builder, ОбновляторОдинЭс, глазковыколупыватель, takefive, ttk, elka302, laeg, rbcvg, Aleksey, michael512, obs191, Tatitutu, GreenLab, vicof, DemonShinji2, DAKE, lEvGl, Sabron, BalBess, Metman, Умный Слоненок, fserg84, hiddi
| ☑ |
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) Вы только добавьте, что это всё внутри Исключение...КонецПопытки
|
|
11
Pprog151713
24.06.25
✎
09:46
|
(4) Огонь компонента.
|
|
12
strange2007
24.06.25
✎
10:12
|
(0) Не проще ли ВК написать? Вопрос для меня новый, поэтому просто предположение
|
|
13
arsik
гуру
24.06.25
✎
10:36
|
(12) Так в (4) все уже написано.
|
|
14
strange2007
24.06.25
✎
11:49
|
(13) Точно!!! И ничего не надо изобретать
|
|