Перехват печати (Native API)

10.10.19

Разработка - Разработка внешних компонент

Внешняя компонента для перехвата печати в 1С (Native API, 8.2, 8.3)

Скачать файл

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

Наименование По подписке [?] Купить один файл
КомпонентаСПримером
.7z 115,14Kb
80
80 Скачать (2 SM) Купить за 2 150 руб.

Представляю вашему вниманию внешнюю компоненту для перехвата события "Печать" в 1С.

Перед печатью компонента генерирует внешнее событие, которое можно обработать.

Для использования:

В модуле управляемого приложения

Перем Hooklib; //обязательно после создания хранить контекст компоненты в глоб. переменной

Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
    Если Источник = "PrintHook" И Событие = "PrintStarting" Тогда
	    СохранитьТабДок();
    КонецЕсли; 
	
КонецПроцедуры

Процедура ПриНачалеРаботыСистемы()
	
	//в общем макете(двоичные данные) компонента в виде zip-архива (hooklib.dll и MANIFEST.xml)
	Если ПодключитьВнешнююКомпоненту("ОбщийМакет.HookLib", "Hooklib", AddInType.Native) Тогда
		Hooklib = Новый("AddIn.Hooklib.PrintHook");
		//Hooklib.ЗапретПечати = Истина;
		Hooklib.Перехват(); 
	Иначе
		Сообщить("Компонента не подключена");
	КонецЕсли; 
			                          
КонецПроцедуры

Возможен запрет на распечатывание установкой свойства Hooklib.ЗапретПечати = Истина;

В архиве компонента с исходниками(Delphi7) и конфигурация с ее использованием(8.3). В конфигурации в качестве примера использования компоненты реализовано сохранение копии распечатываемого документа (табличный документ, mxl).

перехват печать hook компонента

См. также

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

Внешняя компонента позволяет работать c TWAIN-совместимым оборудованием (сканерами, камерами) . Полностью совместима со стандартной TWAIN-компонентой из БСП и может применяться как ее замена без изменения вызовов, при этом может работать с 64-разрядной платформой, а так же имеет расширенную функциональность, например, сохранение результата непосредственно в PDF без использования сторонних утилит. Прекрасно работает на сервере, тонком клиенте и веб-клиенте (проверена работа в браузерах Google Chrome, Mozilla Firefox и Microsoft Internet Explorer).

3000 руб.

12.05.2020    29481    140    100    

93

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

Внешняя компонента позволяет печатать PDF файлы непосредственно из 1С, не используя при этом сторонних программ. Прекрасно работает на сервере, тонком клиенте и веб-клиенте. Основана на проекте PDFium из состава проекта Chromium/Chrome

1500 руб.

17.09.2018    37469    116    128    

117

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

Позволяет автоматизировать работу с картинками. С помощью компоненты можно измерять размер изображений, поворачивать их, наносить водяные знаки, конвертировать из одного формата в другой. Будет очень полезна для интернет-магазинов и всех, кому постоянно требуется работать с различными графическими форматами. Выполнена по технологии NativeAPI. Работает с форматами: jpg (jpeg), png, bmp, gif, tif

3600 руб.

02.09.2010    78299    73    280    

191

Разработка внешних компонент Телефония, SIP Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Внешняя компонента выполнена по технологии Native API для 1С 8.х, обеспечивает доступ к программным АТС Asterisk (FreePBX, Elastix) через AMI интерфейс. Через него можно управлять многими функциями Asterisk (определение номеров, перевод звонков, набор телефона и т. д.)

2400 руб.

04.05.2018    47975    125    66    

68

Разработка внешних компонент Системный администратор Программист Стажер Бесплатно (free)

Библиотека для работы с базами SQLite из 1С на основе внешней компоненты. Для Linux и Windows, бесплатно и с открытым исходным кодом!

14.01.2025    3025    bayselonarrend    14    

50

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

В статье описывается приложение-конструктор внешних компонент (native API). Конструктор упрощает процесс разработки за счет удобного добавления всех нужных функций и процедур в графическом режиме, с указанием их параметров и типов параметров. На выходе приложение генерирует готовый код на С++ и Rust и позволяет сразу приступить к реализации, без настройки API компоненты вручную.

04.12.2024    5945    kovalevdmv    26    

79

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

Внешняя компонента для конвертации PDF файлов в картинки без использования дополнительных программ. Работает на сервере и в тонком клиенте.

2400 руб.

25.06.2024    1442    3    4    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. anig99 2855 21.07.15 13:01 Сейчас в теме
Ай, спасибо!!!! Ай, молодца!!! Обязательно попробую! Очень нужна для лечения моей параноии
2. пользователь 21.07.15 15:45
Сообщение было скрыто модератором.
...
3. пользователь 21.07.15 16:17
Сообщение было скрыто модератором.
...
4. пользователь 21.07.15 16:21
Сообщение было скрыто модератором.
...
5. пользователь 21.07.15 16:23
Сообщение было скрыто модератором.
...
6. пользователь 21.07.15 16:39
Сообщение было скрыто модератором.
...
7. пользователь 21.07.15 16:53
Сообщение было скрыто модератором.
...
8. пользователь 21.07.15 16:58
Сообщение было скрыто модератором.
...
9. script 128 21.07.15 17:44 Сейчас в теме
ВОТ ОГРОМНОЕ СПАСИБИЩЕ
10. CheBurator 3229 21.07.15 19:25 Сейчас в теме
тыщу лет подобное на клюшках формексом реализовано.
хорошо что и здесь появилось.
11. Makushimo 160 22.07.15 08:25 Сейчас в теме
12. wolfsoft 2421 22.07.15 08:52 Сейчас в теме
Не очень понятно, откуда берётся информация для сохранения печатаемого табличного документа?
13. andboss 201 22.07.15 10:20 Сейчас в теме
(12) wolfsoft, Через АктивноеОкно() и перебор элементов управляемой формы. Ничего лучшего, к сожалению, пока не придумал...
15. anig99 2855 22.07.15 16:15 Сейчас в теме
(13) да-да! Должно работать в обычных формах. А то как-то не очень правильно получится!
14. script 128 22.07.15 12:23 Сейчас в теме
Через АктивноеОкно() и перебор элементов управляемой формы

Т.е. в обычных формах работать не будет?
18. andboss 201 24.07.15 10:38 Сейчас в теме
(14) script, Если 1С разродится и сделает АктивноеОкно() в обычном приложении то заработает.
16. BorovikSV 1038 24.07.15 10:03 Сейчас в теме
(0) А не пробовали перехватывать то что фактически выводят, т.е. в момент отрисовки документа для устройства? и сохранять например в JPG, PNG или PDF?
17. andboss 201 24.07.15 10:36 Сейчас в теме
(16) BorovikSV, Пробовал. Если знакомы с WinAPI то вывод идет на PDC(Printer Device Context), просто так скопировать этот контекст невозможно, он write-only. Только разве перехватом собственно функций вывода(DrawText и проч.). Вообщем проблем там масса.
19. efin1 28.07.15 17:44 Сейчас в теме
andboss, имеет смысл перекачать компоненту, или она просто подешевела, поэтому дата публикации 27 июля?

Кстати, на почту упало сообщение, что Вы мне что-то отвечали в комментариях, но этого нет и не видно всего сообщения: "efin, перехват сохранения уже есть. Точнее была. Её поче..."

Модеры чудят.
20. andboss 201 28.07.15 20:24 Сейчас в теме
(19) efin, просто сделал дешевле. компонента та же. сейчас экспериментирую с перехватом записи в файлы (например сделать запрет сохранения через файл/сохранить как)
22. script 128 31.07.15 01:19 Сейчас в теме
(20)

а еще бы перехватить событие "Сохранить как" и "Сохранить копию". Дождемся?
23. andboss 201 31.07.15 08:06 Сейчас в теме
(22) script, сейчас экспериментирую с этим... и еще с буфером обмена
21. script 128 31.07.15 00:55 Сейчас в теме
Ну хоть так....

Для УТ 10 90% печ. форм выводится через общую форму ПечатьДокумента.
Вставил процедуру обработки внешнего события в нее, и получил подобие активного окна.... очень не нравиться, но не знаю что еще можно здесь поделать.

Правда теперь можно получить ссылку на печатаемый документ.
27. anig99 2855 18.08.15 10:54 Сейчас в теме
(21) может какая другая внешняя компонента для перебора активных окон в 1с?
24. izofen 13 31.07.15 10:56 Сейчас в теме
Как подключить компоненту. Судя по коду должна подключится сама, но она не подключается?


Процедура ПриНачалеРаботыСистемы()
	//в общем макете(двоичные данные) компонента в виде zip-архива (hooklib.dll и MANIFEST.xml)
	Если ПодключитьВнешнююКомпоненту("ОбщийМакет.HookLib", "Hooklib", AddInType.Native) Тогда
		Hooklib = Новый("AddIn.Hooklib.PrintHook");
		//Hooklib.ЗапретПечати = Истина;
		Hooklib.Перехват(); 
	Иначе
		Сообщить("Компонента не подключена");
	КонецЕсли; 
			                          
КонецПроцедуры
Показать
25. andboss 201 31.07.15 13:14 Сейчас в теме
(24) izofen, в примере конфигурации подключается из макета. можете попробовать из файла
 ПодключитьВнешнююКомпоненту("d:\...\hooklib.dll", "Hooklib", AddInType.Native) 
26. script 128 04.08.15 00:18 Сейчас в теме
У меня нормально подключилась из макета и работает в обычном приложении.
28. slauter77 20 18.09.15 17:38 Сейчас в теме
Подключить из макета не удалось. Подключилась только с диска. Рушит 1с при отправке на печать. Обычное приложение.
Прикрепленные файлы:
29. andboss 201 18.09.15 20:25 Сейчас в теме
(28) slauter77, !обязательно после создания хранить контекст компоненты в глобальной переменной
30. Andreeei 50 28.11.18 20:17 Сейчас в теме
Можете ее пересобрать для 64-bit платформы?
anvolkov1cbit; serg1c; wau8824ru; Chai Nic; +4 Ответить
31. ilnur75 16.12.20 07:30 Сейчас в теме
Объясните что за метод компоненты используется Перехват() ?
Этот метод надо прописать в коде компоненты? Можно увидеть код метода? А на с++ как этот метод будет выглядеть?

Процедура ПриНачалеРаботыСистемы()
    //в общем макете(двоичные данные) компонента в виде zip-архива (hooklib.dll и MANIFEST.xml)
    Если ПодключитьВнешнююКомпоненту("ОбщийМакет.HookLib", "Hooklib", AddInType.Native) Тогда
        Hooklib = Новый("AddIn.Hooklib.PrintHook");
        //Hooklib.ЗапретПечати = Истина;
        Hooklib.Перехват(); 
    Иначе
        Сообщить("Компонента не подключена");
    КонецЕсли; 
                                      
КонецПроцедуры
Показать
32. andboss 201 16.12.20 08:29 Сейчас в теме
(31)Перехват StartDocW. Исходники доступны для скачивания
33. ilnur75 16.12.20 08:48 Сейчас в теме
а что нужно сделать в Visual Studio 2019 чтобы посмотреть код использования метода StartDocW из ваших исходников?
или как мне использовать исходники для применения на 1С 8.3 на виндовс х64?
34. andboss 201 16.12.20 13:20 Сейчас в теме
В архиве компонента с исходниками в среде Delphi7. Можете переписать их на C++
35. mesk2016 15.04.22 09:03 Сейчас в теме
Добрый день. Кто-нибудь в итоге собрал на х64?
Оставьте свое сообщение