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

24.07.17

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

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

Файлы

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

Наименование Скачано Купить файл
Версия 2. Управление принтерами внутри 1С:
.epf 8,77Kb
74 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Нашим операторам необходимо печатать большие объемы и при этом изменять свойства принтера. Когда программа 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 ИмяПринтера пакетная печать документов

См. также

Периферийные устройства Распознавание документов и образов Системный администратор Программист 1С 8.3 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Россия Абонемент ($m)

Расширение конфигурации, реализующее сканирование посредством scanimage на клиенте Linux без использования компоненты ImageScan. Если Ваш сканер виден и работает в SANE, но категорически не хочет видеться в 1С, то это расширение решает данную проблему. Проверено на БП 3.0.194.23 и ЗУП 3.1.37.49. В ДО, вроде, нет обработки «сканирование», так что переделать немного надо будет.

5 стартмани

27.04.2026    228    0    Горыня    0    

2

Периферийные устройства Пользователь Отраслевые Автомобили, автосервисы Абонемент ($m)

В результате простой интеграции на экране отображаются записи клиентов, статусы работ и ответственные мастера — вся информация обновляется автоматически прямо из 1С. Тестировалось на релизе 6.1.23.17

1 стартмани

30.03.2026    479    0    krumenko    0    

2

Периферийные устройства Управленческий учет Абонемент ($m)

Материал отражает личное мнение по оценке рисков использованию торгового оборудования, приобретенного на маркетплейсах.

2 стартмани

20.03.2026    1807    2    aximo    21    

12

Периферийные устройства Программист Пользователь 1С 8.5 1С:Розница 3.0 Россия Абонемент ($m)

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

6 стартмани

10.03.2026    694    1    kras_71    1    

6

Мобильная разработка Периферийные устройства Программист 1С:Предприятие 8 Россия Бесплатно (free)

Подключение Bluetooth сканера в режиме SPP с помощью внешней компоненты "1С:Устройства ввод (NativeApi)" на Android.

25.08.2025    2921    45    maikl007    2    

4

Периферийные устройства ККМ 1С:Предприятие 8 1С:Управление торговлей 11 Россия Абонемент ($m)

С приходом онлайн-касс фирма 1С начала удалять в типовых конфигурациях возможность печатать нефискальные чеки на принтерах чеков. Однако многие пользователи до сих пор хотели бы иметь такую возможность (например, для тестирования или обучения персонала работе в РМК). Данное расширение возвращает этот функционал в конфигурацию 1С: УТ 11.

2 стартмани

26.05.2025    3110    21    Stæg    32    

1

Периферийные устройства Разработка внешних компонент Программист 1С:Предприятие 8 Абонемент ($m)

Представлена обработка и компонента интеграции планшетов подписи от компании Signotec.

7 стартмани

27.03.2025    2105    0    IgorKissil    3    

3

Периферийные устройства ККМ Пользователь 1С 8.3 1С:Розница 2 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Абонемент ($m)

С приходом онлайн-касс фирма 1С начала удалять в типовых конфигурациях возможность печатать нефискальные чеки на принтерах чеков. Однако многие пользователи до сих пор хотели бы иметь такую возможность (например, для тестирования или обучения персонала работе в РМК). Данное расширение возвращает этот функционал в конфигурации 1С: Розница 2.3 (3) и 1С: УНФ 3.

2 стартмани

24.03.2025    6695    141    Stæg    107    

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

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

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

Предлагаю в 1С не делать установку лотков принтера, а проверять перед печатью установленный лоток. Чтобы не брать на себя ответственность за "защищенные носители"
kraynev-navi; +1 Ответить
24. kraynev-navi 700 30.07.17 21:29 Сейчас в теме
(22) респект за желание помочь. +
Скачаю новую версию, посмотрю.
8. vasilev2015 2846 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 4916 27.07.17 16:41 Сейчас в теме
15. vasilev2015 2846 27.07.17 16:49 Сейчас в теме
(14) Приведите пример аналогичной публикации на infostart, доступной за sm ? )))

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

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

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

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

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

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

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

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

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

Проверьте, что датчик смены страниц на принтере не засорен.
Для отправки сообщения требуется регистрация/авторизация