Версия 2. Управление принтерами внутри 1С

24.07.17

Интеграция - Периферийные устройства

Управление принтерами внутри 1С, обычные формы, операционная система - Windows

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

Наименование Файл Версия Размер
Версия 2. Управление принтерами внутри 1С:
.epf 8,77Kb
66
.epf 8,77Kb 66 Скачать

Нашим операторам необходимо печатать большие объемы и при этом изменять свойства принтера. Когда программа 1С открывалась через RDP, они заходили непосредственно в раздел "Устройства и принтеры". Но при запуске 1С published application такой возможности нет. Пришлось сделать управление принтерами внутри 1С. Используются только стандартные библиотеки и объекты Windows, ничего устанавливать дополнительно и настраивать не нужно

Мне показалось это необычным - решил поделиться.

Выбор принтера можно использовать например в пакетной печати документов.

Комментарии к фото экрана:

  1. Внешний вид обработки.
  2. Выбор принтера происходит с помощью объекта WScript. Открывается список принтеров.
  3. Окно свойств принтера открываем с помощью printui.dll. Результат - стандартное окно свойств.
  4. Окно очереди печати открываем с помощью printui.dll. Результат окно очереди печати.
  5. Для печати на выбранный принтер пробной страницы нужно использовать свойство "ИмяПринтера" табличного документа.
  6. Список доступных свойств принтера из объекта winmgmts.

Если файл не удается скачать второй раз бесплатно - ниже добавил текст процедуры. Переменная ТабСвойств - это табличная часть с колонками Наименование, Значение.

Процедура ПолучитьСвойстваНажатие(Элемент)
	
	ТабСвойств.Очистить();
	
	objWMIService = ПолучитьCOMОбъект ("winmgmts:\\.\root\cimv2");
	colPrinters = objWMIService.ExecQuery("Select * From Win32_Printer Where Name = '"+мПринтер+"'");
	Для Каждого Product ИЗ colPrinters Цикл
		Для Каждого Prop ИЗ Product.Properties_ Цикл
			Стр = ТабСвойств.Добавить();
			Стр.Наименование = Prop.Name;
			Стр.Значение = Prop.Value;
		КонецЦикла;
	КонецЦикла;
	
КонецПроцедуры

управление принтерами внутри WScript printui.dll ИмяПринтера пакетная печать документов

См. также

Распознавание номеров автомашин с ip - камер, видео, фото

Распознавание документов и образов Периферийные устройства Автомобили, автосервисы Россия Платные (руб)

Программа считывает кадры с ip-камер (http - запрос к камере), видео, фото (источники кадров (нет ограничения на их количество) настраивается в конфигурационном файле), находит и распознает номера автомашин и сохраняет в базу db, с сохранением фото номера и автомашины, а также времени детекции.

20400 руб.

31.05.2023    3723    2    1    

3

Прямая печать на принтерах TSC из 1С

Периферийные устройства Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Прямая печать на принтерах TSC из 1С при вызове с сервера позволяет печатать из тонкого клиента, мобильного клиента и веб-клиента. Потребуется установка драйвера и библиотеки для отправки команд на этот драйвер.

1 стартмани

19.02.2024    472    3    realslavyan    0    

5

HotKeys на Python для 1С

Периферийные устройства Конфигурации 1cv8 Бесплатно (free)

Недавно прочитал статью на Инфостарте о KeyPad и вначале захотел себе такой, но через какое-то время я понял, что дополнительная даже маленькая клавиатура занимает место, и нужно все время держать ее под рукой. Это все создает дополнительные неудобства.

20.12.2023    4818    John_d    25    

70

Очистка очереди печати конкретного принтера

Периферийные устройства Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Очистка очереди печати выбранного принтера, перезапуск службы печати, вывод списка системных принтеров, открытие свойств принтера из 1С.

1 стартмани

07.11.2023    1234    1    vsnazarov    1    

26

Печать этикеток на DYMO LabelManager 280 через DYMO Connect Web Service

Периферийные устройства WEB-интеграция Этикетки, ценники Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

На сайте производителя принтера DYMO LabelManager 280 вместе с драйвером поставляется пакет DYMO Connect, который предлагает функционал вёрстки этикеток в фирменном формате и отправки их напрямую на принтер. Так же в этом пакете есть веб-сервис для взаимодействия с принтером через HTTP-запросы, о котором и пойдет речь в этой статье.

29.08.2023    1414    GeraltSnow    0    

3

Второй монитор в качестве дисплея покупателя

Розничная торговля Периферийные устройства Платформа 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Использование второго монитора в качестве дисплея покупателя. Выполнено в качестве расширения.

1 стартмани

02.02.2023    3135    25    windsurf    4    

5

Космическая Одиссея 2020 года

Мониторинг Периферийные устройства Языки и среды Бесплатно (free)

Организация потокового обмена системы 1С с большим количеством разнородных устройств – нетривиальная задача. О том, как организовать архитектуру такого решения с учетом возможного масштабирования хранимых данных и поддерживаемых интерфейсов, на конференции Infostart Event 2021 Post-Apocalypse рассказал TeamLead и специалист по внедрению компании ИнфоСофт Григорий Шатров.

11.11.2022    3403    G.Shatrov    2    

25
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. jaroslav.h 180 26.07.17 08:23 Сейчас в теме
На 10-ке список получен, все остальное не канает.
3. vasilev2015 2677 26.07.17 09:32 Сейчас в теме
(1) Объясните значение "не канает": "не работает" или "не интересует" ?
4. jaroslav.h 180 26.07.17 09:37 Сейчас в теме
(3) не работает, ошибка "Неприпустимі аргументи"
6. vasilev2015 2677 26.07.17 09:55 Сейчас в теме
(4) у меня работает на Windows Server 2008 R2 Enterprise, Windows Server 2012 R2 Datacenter. Много пользователей, ежедневно. Проверьте, что служба диспетчера печати запущена. Недопустимые аргументы - это ошибка Windows или ошибка 1С в какой-то строке ?
7. jaroslav.h 180 26.07.17 10:13 Сейчас в теме
(6) винда показывает ошибку. spooler запущен, но это не принципиально, я брал обработку из-за инфы как получить список принтеров, все остальное, было бы желание, нашлося б решение.
2. vasilev2015 2677 26.07.17 09:13 Сейчас в теме
Коллеги, напишите: что еще нужно добавить в эту обработку ? Идеи есть ?
5. jaroslav.h 180 26.07.17 09:40 Сейчас в теме
(2) на мой взгляд что самое ценное это получить список принтеров, т.е. имя принеторв, что бы это имя присвоить при программной печати из 1С. За способ получения списка спасибо, не знал о таком объекте в винде какой получает информацию о принтерах, находил только скриптами поллучения.
9. kraynev-navi 647 26.07.17 11:49 Сейчас в теме
(2) получить/выбрать лотки бумаги (входящие/исходящие) реализовано?
10. vasilev2015 2677 26.07.17 12:00 Сейчас в теме
(9) Если это свойство принтера, то в окне свойств можно.

Еще можно отдельно вывести кнопку очистку очереди, но можно чистить из окна очереди.
12. kraynev-navi 647 26.07.17 20:12 Сейчас в теме
(10) не скачивал, поэтому не понял сразу. Судя по скриншоту - просто вызов окна свойств без всякого программного взаимодействия на уровне считать/установить? Надеялся как раз на программное взаимодействие.
13. vasilev2015 2677 26.07.17 21:18 Сейчас в теме
можно разные темы поднять. Например, сделать табличную часть две колонки имя свойства-значение свойства заполнять ее свойствами принтера например Дуплекс-Истина и потом записывать обратно в принтер. Вам это интереснее будет ?

Только за запись поручиться не смогу: например у меня не всегда отрабатывает SetDefaultPrinter объекта WScript. Это все из-за винды )))
17. kraynev-navi 647 28.07.17 12:02 Сейчас в теме
(13) изначально поднимал тему: http://forum.infostart.ru/forum28/topic169460/ (первая фраза: без предпросмотра выбрать лоток печати). Интерес остался.
19. vasilev2015 2677 28.07.17 12:18 Сейчас в теме
(17) я не думаю, что у меня получится лучше, чем у Вас, но посмотрю. Вчера с удивлением узнал, что бумага в лотках наших принтеров поднимается типа как в лифте. Не пружинами, а именно электроприводами )))
20. vasilev2015 2677 28.07.17 14:03 Сейчас в теме
(17) Кстати, выбирать принтеры гораздо легче, чем лотки. Можно печатать четные страницы на одном принтере, нечетные - на другом. Или у Вас тоже огромный объем печати и лотки на электроприводе ?
21. kraynev-navi 647 28.07.17 14:05 Сейчас в теме
(20) Нет, у нас другая проблема: печать на защищенных носителях. Поэтому брак должен быть минимальным.
22. vasilev2015 2677 28.07.17 17:07 Сейчас в теме
(21) Специально для kraynev-navi добавил табличную часть со свойствами.

Предлагаю в 1С не делать установку лотков принтера, а проверять перед печатью установленный лоток. Чтобы не брать на себя ответственность за "защищенные носители"
kraynev-navi; +1 Ответить
24. kraynev-navi 647 30.07.17 21:29 Сейчас в теме
(22) респект за желание помочь. +
Скачаю новую версию, посмотрю.
8. vasilev2015 2677 26.07.17 10:51 Сейчас в теме
Посмотрите еще https://technet.microsoft.com/library/ee176792.aspx
может, не запущена служба, поддерживающая WScript или какие-то настройки безопасности ?

Способ получения принтеров таким образом для 1С встречается с 2005 года. (Больше 10 лет). Все новое - хорошо забытое старое.
11. buddha667 26.07.17 16:22 Сейчас в теме
Я решил подобную проблему (в 1с 7.7) таким образом:

//---------------------------------------
Процедура глОткрытьНастройкиПринтеров()
	ЗапуститьПриложение("explorer.exe shell:PrintersFolder");	
КонецПроцедуры


Не так красиво, но просто)
14. Yashazz 4707 27.07.17 16:41 Сейчас в теме
15. vasilev2015 2677 27.07.17 16:49 Сейчас в теме
(14) Приведите пример аналогичной публикации на infostart, доступной за sm ? )))

Лично мне из всех моих статей больше нравится http://infostart.ru/public/534444/ а остальные - гораздо меньше. Но коллеги оценивают противоположно.
16. Yashazz 4707 28.07.17 09:44 Сейчас в теме
(15) А я даже не об ИС говорю. Ещё на ИТлэнде в своё время было. Была книжка, автора не помню, про работу с WSH, AD и всяким таким системным, для 7.7/8.0 ещё. И вот когда она вышла, был прямо шквал разработок на эту тему.
18. vasilev2015 2677 28.07.17 12:16 Сейчас в теме
(16) В этом смысле соглашусь с Вами. Об этом же в пункте 8.

Вспомните Екклезиаста

9 Что было, то и будет; и что делалось, то и будет делаться, и нет ничего нового под солнцем.
10 Бывает нечто, о чем говорят: "смотри, вот это новое"; но это было уже в веках, бывших прежде нас.

)))
23. aspirator23 339 29.07.17 13:41 Сейчас в теме
25. kraynev-navi 647 31.07.17 16:41 Сейчас в теме
Посмотрел обработку - до этих свойств уже добирался ранее, увы, этого мало.
Установка в нашем случае должна быть по любому.
26. vasilev2015 2677 31.07.17 17:18 Сейчас в теме
Посмотрите код в отладчике. Там еще есть свойства у com-объекта, но мне они показались малозначимыми. Пожалуй, это все чем могу Вам помочь.
27. user1530126 24.01.21 20:13 Сейчас в теме
Здравствуйте. Заработает ли на ут 11.4 и как в коде осуществляется сохранение принтера, через ХранилищеСистемныхНастроек?
28. vasilev2015 2677 24.01.21 20:59 Сейчас в теме
(27) Здравствуйте !

для УФ толстый клиент будет работать,
для УФ тонкий клиент com объект будет на сервере
а использовать принтеры нужно на клиенте.

Обычно принтер печатной формы в УФ сохраняется
вместе с другими параметрами печати.

Расскажите, что у Вас получится.
29. user1530126 24.01.21 21:36 Сейчас в теме
... это понятно.
Так посмотрите, как осуществляется сохранение принтера при его выборе.
Стандартными средствами 1с (Парметры страницы) или вы сами код писали?
30. vasilev2015 2677 25.01.21 09:03 Сейчас в теме
(29) Здесь пример получения принтеров, доступных в windows.
Результат - строка, которую можно самостоятельно сохранять в любое место.
31. Angel_19 6 29.04.21 09:12 Сейчас в теме
Можно менять настройки принтера?
Как пример печатаем этикетки, часть идут с зазорами, часть с метками. Приходится менять руками, можно ли как-то получить параметр и установить его?
32. vasilev2015 2677 29.04.21 12:01 Сейчас в теме
.
(31) Здравствуйте !

Посмотрите, что-то есть в комментариях.

Как правило, настройки устанавливаются вручную в обычном диалоге принтера,
но конечно диалог имеет api.

Проверьте, что датчик смены страниц на принтере не засорен.
Оставьте свое сообщение