Печать из 1С уходит не на тот принтер: где он задаётся и как это исправить

· 9 мин

Содержание

В 1С 8.3 нет отдельной настройки «принтер по умолчанию»: программа печатает на тот принтер, который назначен основным в Windows на компьютере пользователя. Чтобы поменять его, откройте в Windows Параметры → Bluetooth и устройства → Принтеры и сканеры (в Windows 10 — Параметры → Устройства → Принтеры и сканеры), выберите нужный принтер и нажмите «Использовать по умолчанию».

Если менять системный принтер нельзя или нужен другой только для одного документа, есть три пути. Разовый выбор — через Ctrl+P в открытой печатной форме. Постоянный принтер для конкретной формы — через «Параметры страницы». Автоматический выбор — кодом во внешней обработке. Всё это работает одинаково в Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других конфигурациях: печать — механизм платформы, а не конкретной программы.

Принтер по умолчанию в Windows: основной способ

1С не хранит общий список принтеров. При нажатии кнопки «Печать» платформа берёт принтер, который Windows считает основным. Поэтому первым делом меняют именно его.

Windows 11

  1. Откройте Пуск → Параметры → Bluetooth и устройства → Принтеры и сканеры.
  2. Пролистайте вниз и выключите переключатель «Разрешить Windows управлять принтером, используемым по умолчанию».
  3. Вернитесь к списку, щёлкните нужный принтер.
  4. Нажмите «Использовать по умолчанию».

Windows 10

  1. Откройте Пуск → Параметры → Устройства → Принтеры и сканеры.
  2. Снимите флажок «Разрешить Windows управлять принтером, используемым по умолчанию».
  3. Выберите принтер → «Управление» → «Использовать по умолчанию».

Если галочку «Разрешить Windows управлять…» оставить, система сама переключает основной принтер на тот, куда вы печатали последним. Отсюда частая жалоба: «вчера 1С печатала на HP, сегодня шлёт на PDF».

Новое значение подхватывается не всегда сразу. Если 1С продолжает слать документы на старый принтер, закройте программу и откройте её заново.

Как посмотреть точное имя принтера

Имя пригодится для кода и для разбора проблем на терминальном сервере. Откройте PowerShell и выполните:

Get-Printer | Select-Object Name, DriverName, PortName

Имя нужно копировать дословно, с пробелами и скобками. Одна лишняя буква — и программа его не найдёт.

Как выбрать другой принтер прямо при печати из 1С

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

  1. Откройте документ и нажмите в его командной панели «Печать», выберите нужную форму (например, «Счёт на оплату» или «Акт»).
  2. Откроется окно печатной формы. Щёлкните мышью по самому табличному документу.
  3. Нажмите Ctrl+P или откройте главное меню (кнопка с тремя полосками в левом верхнем углу) → Файл → Печать….
  4. В системном окне «Печать» выберите принтер, число копий и диапазон страниц.
  5. Нажмите «Печать».

Есть тонкость, о которой многие не знают. Кнопка «Печать» на панели формы отправляет документ сразу, без всяких вопросов, на принтер по умолчанию. Окно выбора принтера открывает только Ctrl+P или пункт меню Файл → Печать….

Как печатаетеКуда уйдёт документКогда удобно
Кнопка «Печать» на формеНа принтер по умолчанию или заданный для формыЕжедневная печать «в одно нажатие»
Ctrl+P / Файл → Печать…На выбранный в диалогеРазово нужен другой принтер
Пакетная печать из списка документовНа принтер по умолчаниюМассовая печать накладных, актов
Код с ИмяПринтераНа принтер, указанный в кодеПечать этикеток, автоматизация

Отдельный принтер для конкретной печатной формы

Типичная ситуация: счета и акты печатаются на офисный лазерный принтер, а ценники или этикетки — на узкий термопринтер. Переключать основной принтер каждый раз неудобно.

Как задать принтер для формы

  1. Сформируйте нужную печатную форму.
  2. Откройте главное меню → Файл → Параметры страницы….
  3. В окне параметров нажмите кнопку выбора принтера и укажите нужное устройство.
  4. Проверьте размер бумаги и ориентацию: у термопринтера они совсем другие.
  5. Нажмите «ОК» и напечатайте.

Табличный документ платформы умеет запоминать параметры печати по специальному ключу (свойство КлючПараметровПечати). В типовых конфигурациях на БСП этот ключ задаётся для каждой печатной формы, поэтому настройки страницы сохраняются для пользователя и макета.

Проверить, запомнился ли принтер, просто. Закройте форму, сформируйте её заново и нажмите кнопку «Печать». Если документ ушёл на нужное устройство — настройка сохранилась. Если нет — для этой формы и вашей конфигурации остаётся разовый выбор через Ctrl+P или обработка (см. раздел про автоматизацию).

Настройки параметров страницы хранятся для каждого пользователя 1С отдельно. Если бухгалтер настроил принтер под собой, у кладовщика под его учётной записью всё останется по-старому.

Чеки и этикетки — не через Windows

Фискальные регистраторы (ККТ) и часть принтеров этикеток подключаются в 1С не как обычный принтер Windows, а как подключаемое оборудование: раздел Администрирование → Подключаемое оборудование. Там у каждого устройства свой драйвер и свои настройки. Смена принтера по умолчанию в Windows на печать чеков не влияет.

Файловая база, сервер 1С, удалённый рабочий стол и браузер

Частый вопрос: «Принтер нужно настраивать на сервере?» Нет. Печать всегда выполняется на стороне клиента — там, где запущено окно 1С. Сервер 1С формирует данные, но к принтерам доступа не имеет.

Как запущена 1СЧей принтер по умолчанию используетсяГде менять
Тонкий клиент, файловая база в сетевой папкеКомпьютера пользователяВ Windows на этом компьютере
Тонкий клиент, клиент-серверная базаКомпьютера пользователяТам же, сервер 1С ни при чём
Через удалённый рабочий стол (RDP, RemoteApp)Сеанса пользователя на терминальном сервереВ сеансе на сервере или в настройках перенаправления
Веб-клиент в браузереВыбирается в диалоге печати браузераВ самом браузере

Особенности терминального сервера

На RDP принтеры пользователя пробрасываются в сеанс и получают имена вида «HP LaserJet (перенаправлено 3)». Номер в скобках может меняться от сеанса к сеансу. Если имя такого принтера сохранили в 1С или в коде, при следующем входе оно уже не совпадёт.

Что помогает:

  • 🖨️ в клиенте удалённого рабочего стола на вкладке «Локальные ресурсы» должна стоять галочка «Принтеры»;
  • 🖨️ основной принтер на домашнем ПК пользователя обычно становится основным и в сеансе — сначала поменяйте его там;
  • 🖨️ если нужен общий принтер офиса, установите его на терминальный сервер как сетевой: его имя не меняется;
  • 🖨️ основной принтер для всех можно назначать скриптом при входе (пример ниже).

Веб-клиент

В браузере 1С не управляет принтером. Печатная форма уходит в стандартное окно печати браузера, и принтер выбирают там. Браузеры на основе Chromium обычно запоминают последний выбранный принтер.

Замена драйвера и переименование принтера

После замены драйвера, переустановки принтера или переименования в Windows 1С ведёт себя по-разному. Сохранённое в параметрах формы или в коде имя больше не совпадает с реальным устройством.

Что делать по шагам:

  1. Узнайте новое точное имя через Get-Printer (команда выше).
  2. Если принтер был основным — снова назначьте его основным в Windows: при переустановке эта отметка часто слетает.
  3. Откройте печатные формы, где принтер выбирали вручную, и заново выберите устройство в Файл → Параметры страницы….
  4. Проверьте поля и масштаб. Новый драйвер может иметь другие непечатаемые поля, и форма, которая раньше влезала на лист, «съезжает» на вторую страницу.
  5. Если имя прописано во внешней обработке или в коде расширения — исправьте его там.

Не переименовывайте принтер на компьютерах, где печать настроена кодом. Проще сразу дать устройству понятное постоянное имя («Склад-этикетки») при установке и больше его не трогать.

Если после смены драйвера 1С печатает пустые листы или иероглифы, а из Блокнота всё печатается нормально, попробуйте другой драйвер того же принтера (например, универсальный PCL или PostScript от производителя). Платформа отдаёт на печать графическое представление листа, и проблема почти всегда в драйвере.

Зависла очередь печати: 1С не печатает или подвисает

Типичные признаки: нажали «Печать» — ничего не вышло, следующий документ тоже не вышел, а в очереди Windows висит задание со статусом «Ошибка». Иногда окно 1С на несколько секунд «замирает» при открытии печатной формы.

Диагностика: выберите симптом

Как очистить очередь печати вручную

Если задание не удаляется из очереди кнопкой «Отмена», очистите очередь через службу.

Перезапуск «Диспетчера печати» на терминальном сервере обрывает печать у всех пользователей сервера. Делайте это, когда никто не печатает, и предупредите коллег.

Откройте командную строку от имени администратора и выполните:

net stop spooler
del /Q /F %systemroot%\System32\spool\PRINTERS\*.*
net start spooler

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

Автоматизация: принтер в коде и скрипт для Windows

Когда руками выбирать долго, принтер задают программно. Тут два подхода: менять принтер прямо в 1С для конкретного табличного документа или менять основной принтер Windows скриптом.

Внешняя обработка: печать на заданный принтер

У табличного документа в 1С 8.3 есть свойство ИмяПринтера. Если его заполнить и вызвать печать без диалога, документ уйдёт на указанное устройство, а основной принтер Windows не изменится.

Пример клиентской процедуры для формы внешней обработки или расширения:

&НаКлиенте
Процедура НапечататьНаПринтер(ТабДок, ИмяПринтера, Копий = 1)
	
	ТабДок.ИмяПринтера = ИмяПринтера;
	ТабДок.КоличествоЭкземпляров = Копий;
	ТабДок.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);
	
КонецПроцедуры

Пример вызова: НапечататьНаПринтер(Результат, "Склад-этикетки", 2), где Результат — реквизит формы типа «Табличный документ» с уже сформированной формой.

Что учесть:

  • 🔧 печать вызывается только на клиенте, на сервере метод недоступен;
  • 🔧 имя принтера должно совпадать с именем в Windows посимвольно;
  • 🔧 в веб-клиенте выбор принтера всё равно сделает браузер;
  • 🔧 имя не стоит прописывать прямо в коде — лучше хранить его в настройке, которую пользователь может поменять сам.

Если обработку подключают к типовой конфигурации как дополнительную печатную форму, используйте раздел Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки. Так обработку не придётся переделывать после обновления.

Скрипт Windows: основной принтер при входе

На терминальном сервере удобно назначать основной принтер каждому пользователю при входе. Для этого в Windows есть штатная команда:

rundll32 printui.dll,PrintUIEntry /y /n "Бухгалтерия-лазерный"

Ключ /y делает принтер основным, /n задаёт его имя. Команду кладут в сценарий входа групповой политики или в автозагрузку пользователя. Тот же результат из PowerShell:

(New-Object -ComObject WScript.Network).SetDefaultPrinter("Бухгалтерия-лазерный")

После выполнения 1С при следующей печати возьмёт уже новый принтер — без всякой настройки в самой программе.

Частые вопросы

Можно ли задать принтер по умолчанию для всех пользователей 1С сразу?
Внутри 1С единой общей настройки нет: параметры печати хранятся у каждого пользователя. Для всех сразу принтер назначают средствами Windows — групповой политикой или скриптом при входе.
Почему из Word печатает на нужный принтер, а 1С — на другой?
Word запоминает принтер последней печати в своём окне, а кнопка «Печать» в 1С берёт основной принтер Windows или принтер, сохранённый для этой формы. Проверьте основной принтер в настройках Windows и параметры страницы формы.
Как печатать из 1С сразу в PDF вместо принтера?
Выберите в диалоге Ctrl+P принтер «Microsoft Print to PDF» или сохраните форму кнопкой сохранения в окне печатной формы в формате PDF. Второй способ не зависит от принтеров вовсе.
Нужно ли перезапускать 1С после смены принтера по умолчанию?
Обычно нет. Но если программа продолжает печатать на старое устройство, закройте и снова откройте 1С — этого достаточно.
Почему кнопка «Печать» не спрашивает, на какой принтер печатать?
Так задумано: кнопка печатает сразу, без диалога. Окно выбора принтера открывает Ctrl+P или Файл → Печать… в главном меню.