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

07.05.15

Разработка - Инструментарий разработчика

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Скриншот.epf
.epf 9,77Kb
143
143 Скачать (1 SM) Купить за 1 850 руб.

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

С помощью 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()}""";

скриншот снимок экрана

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    175707    976    403    

936

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    17330    120    59    

123

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    18285    49    19    

82

Инструментарий разработчика Программист Платформа 1С v8.3 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    28437    98    48    

143

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 руб.

10.11.2023    12502    49    33    

70

Инструментарий разработчика Программист 8.3.14 Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    18430    7    32    

43

Инструментарий разработчика Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1526    2    0    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. set5553 08.05.15 05:15 Сейчас в теме
Интересно. а как дальше допустим по почте передавать, если "создается временный файл, а потом удаляется"? УФ тестировали?
2. terroristish 95 08.05.15 10:25 Сейчас в теме
Файл скриншота создаётся в каталоге временных файлов. После создания он загружается в элемент формы (поле картинки) и удаляется из каталога временных файлов за ненадобностью. Это логично, т.к. данная обработка не является законченным решением, а лишь служит примером, того как можно сделать скриншот программно.
По поводу использования в УФ, могу сказать, что точно так же сделать не получится. В виду того, что согласно синтаксис-помощнику, если картинка задается программно, то может быть установлена либо пустая картинка, либо или картинка из библиотеки. Конечно можно выкрутиться и всё равно, его (скриншот) отобразить, например с помощью HTML.
Сейчас добавлю пример для УФ.
6. PrinzOfMunchen 84 13.05.15 09:27 Сейчас в теме
(2) а с помощью этого скрипта можем сделать скриншот определенной области? А вообще, можно ли как нибудь табличный документ сконвертировать в картинку другим способом?
8. terroristish 95 13.05.15 14:48 Сейчас в теме
(6) PrinzOfMunchen, "а с помощью этого скрипта можем сделать скриншот определенной области?" - с помощью представленного мною скрипта - нет. Нужно скрипт править.
"можно ли как нибудь табличный документ сконвертировать в картинку" - на мой взгляд, этот вопрос, никак не связан с данной публикацией. Стандартными средствами платформы табличный документ нельзя сохранить в картинку. Смотрите в СП ТабличныйДокумент метод Записать() и/или ТипФайлаТабличногоДокумента.
20. litvinov_yu 18.06.21 16:03 Сейчас в теме
(17)

+ "$size = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds;"
//+ "$size = [Windows.Forms.SystemInformation]::VirtualScreen;"
3. eugeniezheludkov 45 12.05.15 01:46 Сейчас в теме
<Зануда>
Возможное приминение:
<\Зануда>
AleksAaron; +1 Ответить
4. terroristish 95 12.05.15 11:59 Сейчас в теме
(3) eugeniezheludkov, спасибо! Поправил.
5. Yashazz 4810 13.05.15 07:49 Сейчас в теме
Это знаете где хорошо применять? Я такое делал, когда меня попросили распечатывать яндекс-карту из 1С. Выяснилось, что API яндекса печатать не умеет, они сами-то долго мучались и через static api сделали, а в 1С вилы. В результате я выводил карту в форму, открытую модально в режиме рабочего стола (обычный интерфейс, не УФ), её скриншотил, а уж рисунок распечатывал. Тоже через WScript делал, кстати.
7. xaozai 13.05.15 09:36 Сейчас в теме
Есть ВК, которая скрины делает: http://infostart.ru/public/172868/
PowerShell не у всех есть.
9. terroristish 95 13.05.15 14:59 Сейчас в теме
(7) xaozai, Спасибо за ссылку. Особенно ценно, что компонента разработана по технологии Native API. Что PowerShell не у всех есть - согласен.
Всё таки очевидный плюс моего решения, заключается в отсутствии необходимости использования сторонних ВК.
10. echo77 1918 10.08.16 20:11 Сейчас в теме
Рекомендую, все таки проверить опечатки вордом
Не все пользователи занают,
11. zekrus 151 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. Boneman 302 01.08.17 13:48 Сейчас в теме
Интересна только идея, за это звезда.
Но с практической стороны, вроде бы и бесполезная фигня. Везде где работал, у пользователей куча разношерстных баз, и типовых и нетиповых. А скриншоты в основном нужны, например когда база крашится, или вываливает ошибку, где нужно еще нажать "подробно"...и смысл наворотов вроде как бесполезен в зоопарке. Тут внешняя среда исполнения нужна, в винде.
14. feva 529 20.04.18 14:13 Сейчас в теме
(12)По большей части Вы правы.
Но нашёл применение на практике.
Есть одна большая база (овер 1000 продаж в день, 150+ юзверей бъют копытцами по клавиатуе весь день). Сделал пул самых опасных и прикрутил к парсеру нагрузки сервера отправку на клиент команды для лепки скриншота после чего грохаю сеанс. Потом админ с вещ. доком идёт бить по лицу.
mrChOP93; +1 Ответить
15. terroristish 95 20.04.18 17:53 Сейчас в теме
(14) Годное приминение
13. feva 529 20.04.18 12:56 Сейчас в теме
16. user932670 17.06.18 11:00 Сейчас в теме
Идея да хорошая, но почему скриншот экрана, не полностью, он обрезается справа и делает это не только на форме, но и в файле.
17. quares 21 27.11.18 21:23 Сейчас в теме
А как передать команду, чтобы делался скриншот только активного экрана? У меня их несколько. Это возможно?
18. Kaco 14.03.19 12:21 Сейчас в теме
Как убрать черное окно со скриншота?
19. bimy22 01.04.19 15:20 Сейчас в теме
Блин,вещь действительно крутая! Почему не было этой темы, когда я пыталась что-то подобное реализовывать :(
21. by_1Cnik 240 26.10.21 13:33 Сейчас в теме
&НаКлиенте
Процедура Скриншот_сеанса(Полный_путь_к_файлу = "") // доступна с версии 8.3.17

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

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

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

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

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

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

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

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

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

    #КонецЕсли

КонецПроцедуры
Показать
abryazgin; rhtr; user1069316; Tokiy; +4 Ответить
22. Serg2000mr 770 03.12.24 23:43 Сейчас в теме
(21) В коде ошибка
КопироватьФайл(Путь_к_скриншоту, ПолныйПутьКФайлу);
Оставьте свое сообщение