IE 2017

Программное создание скриншотов из 1С

Обработки - Универсальные обработки

Пример программного создания снимков экрана (скриншотов) непосредственно из 1С.

Суть обработки:

С помощью COM Объекта "WScript.Shell" производится запуск MS PowerShell. При запуске PowerShell параметром передаётся скрипт выполнения снимка экрана. Снимок сохраняется во временный каталог, отображается на экране и далее удаляется.

Возможное применение:

Автоматизация сбора ошибок от пользователей. Не все пользователи занают, что можно снимок экрана сделать. Из тех, кто знает, не каждый может его к письму, и/или запросу в сервис деск приложить.

Во вложении обработка-пример для обычного приложения.

Скрипт PowerShell (строка 1С):

Текст = """& {[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()}""";

Скачать файлы

Наименование Файл Версия Размер
Скриншот.epf
.epf 9,77Kb
08.05.15
68
.epf 9,77Kb 68 Скачать

См. также

Комментарии
1. Кубаныч Абдышов (set5553) 08.05.15 05:15 Сейчас в теме
Интересно. а как дальше допустим по почте передавать, если "создается временный файл, а потом удаляется"? УФ тестировали?
2. Алексей С (terroristish) 74 08.05.15 10:25 Сейчас в теме
Файл скриншота создаётся в каталоге временных файлов. После создания он загружается в элемент формы (поле картинки) и удаляется из каталога временных файлов за ненадобностью. Это логично, т.к. данная обработка не является законченным решением, а лишь служит примером, того как можно сделать скриншот программно.
По поводу использования в УФ, могу сказать, что точно так же сделать не получится. В виду того, что согласно синтаксис-помощнику, если картинка задается программно, то может быть установлена либо пустая картинка, либо или картинка из библиотеки. Конечно можно выкрутиться и всё равно, его (скриншот) отобразить, например с помощью HTML.
Сейчас добавлю пример для УФ.
3. eugenie zheludkov (eugeniezheludkov) 32 12.05.15 01:46 Сейчас в теме
<Зануда>
Возможное приминение:
<\Зануда>
4. Алексей С (terroristish) 74 12.05.15 11:59 Сейчас в теме
(3) eugeniezheludkov, спасибо! Поправил.
5. Яков Коган (Yashazz) 2117 13.05.15 07:49 Сейчас в теме
Это знаете где хорошо применять? Я такое делал, когда меня попросили распечатывать яндекс-карту из 1С. Выяснилось, что API яндекса печатать не умеет, они сами-то долго мучались и через static api сделали, а в 1С вилы. В результате я выводил карту в форму, открытую модально в режиме рабочего стола (обычный интерфейс, не УФ), её скриншотил, а уж рисунок распечатывал. Тоже через WScript делал, кстати.
6. Вадим Миляев (PrinzOfMunchen) 74 13.05.15 09:27 Сейчас в теме
(2) terroristish, а с помощью этого скрипта можем сделать скриншот определенной области? А вообще, можно ли как нибудь табличный документ сконвертировать в картинку другим способом?
7. xaozai 13.05.15 09:36 Сейчас в теме
Есть ВК, которая скрины делает: http://infostart.ru/public/172868/
PowerShell не у всех есть.
8. Алексей С (terroristish) 74 13.05.15 14:48 Сейчас в теме
(6) PrinzOfMunchen, "а с помощью этого скрипта можем сделать скриншот определенной области?" - с помощью представленного мною скрипта - нет. Нужно скрипт править.
"можно ли как нибудь табличный документ сконвертировать в картинку" - на мой взгляд, этот вопрос, никак не связан с данной публикацией. Стандартными средствами платформы табличный документ нельзя сохранить в картинку. Смотрите в СП ТабличныйДокумент метод Записать() и/или ТипФайлаТабличногоДокумента.
9. Алексей С (terroristish) 74 13.05.15 14:59 Сейчас в теме
(7) xaozai, Спасибо за ссылку. Особенно ценно, что компонента разработана по технологии Native API. Что PowerShell не у всех есть - согласен.
Всё таки очевидный плюс моего решения, заключается в отсутствии необходимости использования сторонних ВК.
10. Александр Крынецкий (echo77) 742 10.08.16 20:11 Сейчас в теме
Рекомендую, все таки проверить опечатки вордом
Не все пользователи занают,
11. Николай Зевеке (zekrus) 103 01.08.17 13:37 Сейчас в теме
Добрый день!
Тема весьма актуальная.
Было бы здорово организовать скриншот распакованной формы обработки (в формате внутренней строки).
Пример:
"{2,
{36,0,0,0,0,1,0,1,00000000-0000-0000-0000-000000000000,1,
{1,1,
{"ru","(вер 1.1)"}
},0,0,1,1,1,0,0,0,
{1,3ccc650e-f631-4cae-8e33-3eaac610b5f9,"ПриОткрытии"},
{0},1,
{19,
{-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1,
{0,
{0,
{"B",1},0}
},9,"ФормаКоманднаяПанель",
{1,0},
{1,0},0,1,0,0,0,2,2,
{3,4,
{0}
}"
П.С.: Цель автоматическая генерация документации файла внешней обработки или отчета, парсер кода есть.
С уважением
12. Andrey Kolesnikov (Boneman) 76 01.08.17 13:48 Сейчас в теме
Интересна только идея, за это звезда.
Но с практической стороны, вроде бы и бесполезная фигня. Везде где работал, у пользователей куча разношерстных баз, и типовых и нетиповых. А скриншоты в основном нужны, например когда база крашится, или вываливает ошибку, где нужно еще нажать "подробно"...и смысл наворотов вроде как бесполезен в зоопарке. Тут внешняя среда исполнения нужна, в винде.
Оставьте свое сообщение