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

07.11.23

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

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

Файлы

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

Наименование Скачано Купить файл
Очистка очереди печати конкретного принтера:
.epf 7,84Kb ver:1.0
3 2 500 руб. Купить

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

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

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

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

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

1С тесно связана с печатью и бывает так, что процесс печати подвисает и в очереди начинают накапливаться файлы. Есть разные штатные варианты, как это решить: 

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

Данная обработка позволяет в привычном интерфейсе 1С и с минимальными итерациями решить проблему подвисшей печати даже неподготовленным пользователям без вмешательства админа.

Обработка универсальная и может открываться и работать в конфигурации 1С 8.3, тестирование проводилось на платформе 8.3.22.1709

P.S. перезапуск службы печати в обработке тоже присутствует, но могут быть проблемы с правами доступа.

 

Также эта обработка может послужить наглядным примером для разработки своего функционала, приведу готовые функции:

1. Как получить список системных принтеров:

&НаКлиенте
Функция ПолучитьСписокПринтеров()
    ВыборПринтеров = Новый СписокЗначений;
    Принтеры = Новый COMОбъект ("WScript.Network"); 
    prn = Принтеры.EnumPrinterConnections(); 
    i = 0; 
    Пока i < prn.Count()-1 Цикл 
        текПринтер = СокрЛП(prn.Item(i+1));
        Если (СтрНайти(текПринтер, "OneNote") = 0) Тогда
            ВыборПринтеров.Добавить(prn.Item(i+1));
        КонецЕсли;    
        i = i + 2; 
    КонецЦикла; 
    Возврат ВыборПринтеров;
КонецФункции

2. Очистить очередь печати выбранного принтера:

&НаКлиенте
Процедура ОчиститьОчередьПечати(Команда)
    Если СокрЛП(Принтер) = "" Тогда
        Предупреждение("Не выбран принтер!");
    КонецЕсли;    

    ВременныйСкрипт = ПолучитьИмяВременногоФайла(".ps1");

    Текст = Новый ЗаписьТекста(
    ВременныйСкрипт,
    КодировкаТекста.ANSI, // кодировка
    Символы.ПС, // разделитель строк (необ.)
    Ложь // перезаписывать файл, а не дописывать в конец (необ.)
    );    

    Текст.ЗаписатьСтроку("Get-PrintJob -PrinterName """ + СокрЛП(Принтер) + """ | Remove-PrintJob");
    Текст.Закрыть();
    
    стрКоманда = "powershell -executionpolicy RemoteSigned -file """ + ВременныйСкрипт + """";
    WshShell = Новый COMОбъект("WScript.Shell"); 
    WshShell.Run(стрКоманда, 0, -1); 
    
    Пауза(1000*2);
    
    Предупреждение("Очередь печати очищена!");
    
КонецПроцедуры

3. Пауза

&НаКлиенте
Процедура Пауза(МиллиСекунды)

    ТаймерМС = ТекущаяУниверсальнаяДатаВМиллисекундах() + МиллиСекунды;
    Пока ТаймерМС > ТекущаяУниверсальнаяДатаВМиллисекундах() Цикл
        Состояние(ОКР((ТаймерМС-ТекущаяУниверсальнаяДатаВМиллисекундах())/1000),1);
    КонецЦикла;

КонецПроцедуры

4. Перезапустить службу печати:

&НаКлиенте
Процедура ПерезапуститьСлужбуПечати(Команда)
    РежимДиалога = РежимДиалогаВопрос.ДаНет; 
    ТекстВопроса = "Будет остановлена печать на всех принтерах." + Символы.ПС + "Продолжить?";
    Ответ = Вопрос(ТекстВопроса, РежимДиалога, 0); 
    Если Ответ = КодВозвратаДиалога.Да Тогда
        ВременныйBat = ПолучитьИмяВременногоФайла(".bat");
        
        Текст = Новый ЗаписьТекста(
        ВременныйBat,
        КодировкаТекста.ANSI, // кодировка
        Символы.ПС, // разделитель строк (необ.)
        Ложь // перезаписывать файл, а не дописывать в конец (необ.)
        );    
        
        Текст.ЗаписатьСтроку("net stop spooler");
        Текст.ЗаписатьСтроку("del %systemroot%\system32\spool\printers\*.shd /F /S /Q");
        Текст.ЗаписатьСтроку("del %systemroot%\system32\spool\printers\*.spl /F /S /Q");
        Текст.ЗаписатьСтроку("net start spooler");
        Текст.Закрыть();

        ЗапуститьПриложение(ВременныйBat); 
    КонецЕсли;    
КонецПроцедуры

6. Открыть параметры принтера:

&НаКлиенте
Процедура ПринтерОткрытие(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    Если СокрЛП(Принтер) <> "" Тогда
        стрКоманда = "rundll32 printui.dll,PrintUIEntry /p /n """ + Принтер + """";
        WshShell = Новый COMОбъект("WScript.Shell"); 
        WshShell.Run(стрКоманда, 0, -1); 
    КонецЕсли;    
КонецПроцедуры

 

Вступайте в нашу телеграмм-группу Инфостарт

обработка принтер печать

См. также

Периферийные устройства Распознавание документов и образов Системный администратор Программист 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    424    0    Горыня    0    

2

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

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

1 стартмани

30.03.2026    613    1    krumenko    0    

2

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

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

2 стартмани

20.03.2026    1986    2    aximo    22    

12

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

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

6 стартмани

10.03.2026    844    1    kras_71    1    

6

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

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

25.08.2025    3104    49    maikl007    2    

5

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

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

2 стартмани

26.05.2025    3284    21    Stæg    32    

1

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

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

7 стартмани

27.03.2025    2212    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    7170    145    Stæg    107    

6
Для отправки сообщения требуется регистрация/авторизация