Почему 1С печатает не туда и как закрепить нужный принтер
Содержание
У 1С:Предприятия 8.3 нет отдельного пункта «принтер по умолчанию» в настройках программы. Платформа берёт принтер, который выбран по умолчанию в операционной системе у текущего пользователя Windows. Чтобы указать принтер по умолчанию для 1С, назначьте его основным в Параметры Windows → Bluetooth и устройства → Принтеры и сканеры и отключите автоматическое управление принтером.
Типичная ситуация: бухгалтер вчера распечатал этикетки на термопринтере, а сегодня счёт на оплату уходит туда же — узкой лентой. 1С тут ни при чём: Windows сама переключила принтер по умолчанию на последний использованный. Исправляется это на трёх уровнях: в системе, в терминальном сеансе и в конкретной печатной форме.
Откуда 1С берёт принтер: роль платформы и системы
Платформа 8.3 не хранит собственный список принтеров. При печати она обращается к принтерам того компьютера, где запущен клиент.
Отсюда три важных следствия:
- 🖥️ Клиент-серверный вариант. Печать идёт на стороне клиента. Принтеры на сервере 1С для печати документов пользователями не нужны.
- 👤 Принтер по умолчанию — свой у каждого пользователя Windows. Это настройка профиля, а не компьютера. На одном терминальном сервере у Ивановой и Петровой могут быть разные основные принтеры.
- 🌐 Веб-клиент. Печать идёт через браузер. Принтер выбирается в диалоге печати браузера, и 1С на этот выбор не влияет.
Тонкий и толстый клиент ведут себя одинаково: при открытии системного диалога печати сразу выделен принтер по умолчанию Windows.
| Где работает пользователь | Откуда берётся принтер | Где менять |
|---|---|---|
| Тонкий клиент на своём ПК | Принтер по умолчанию Windows этого пользователя | Параметры Windows |
| Терминальный сервер (RDP) | Принтер по умолчанию в сеансе на сервере | Параметры Windows в сеансе + настройки RDP |
| Веб-клиент в браузере | Диалог печати браузера | Настройки браузера и ОС |
| Linux, macOS | Принтер по умолчанию в CUPS | Системные настройки печати |
Как назначить принтер по умолчанию в Windows для печати из 1С
Это основной способ. Он работает для всех конфигураций: БП 3.0, ЗУП 3.1, УТ 11, УНФ, ERP.
Windows 10 и 11
- Закройте 1С или хотя бы окно печати.
- Откройте
Пуск → Параметры. - Перейдите в
Bluetooth и устройства → Принтеры и сканеры(в Windows 10 —Устройства → Принтеры и сканеры). - Найдите переключатель «Разрешить Windows управлять принтером, используемым по умолчанию» и выключите его.
- Щёлкните нужный принтер и нажмите «Использовать по умолчанию».
- Запустите 1С заново и проверьте печать любого документа.
Пункт 4 — главный. Пока автоуправление включено, Windows назначает основным принтер, на котором печатали последним. Отсюда «прыгающий» принтер в 1С.
Через панель управления
Если привыкли к классическому окну:
- Нажмите
Win + R, введитеcontrol printersи нажмите Enter. - Правой кнопкой мыши щёлкните нужный принтер.
- Выберите «Использовать по умолчанию». У принтера появится зелёная галочка.
Командой для администратора
Когда принтер нужно назначить сразу многим пользователям, удобнее скрипт входа или PowerShell в сеансе пользователя:
# посмотреть установленные принтеры
Get-Printer | Select-Object Name, Type, PortName
# назначить принтер по умолчанию текущему пользователю
(New-Object -ComObject WScript.Network).SetDefaultPrinter("HP LaserJet Бухгалтерия")
Имя принтера в кавычках должно совпадать с тем, что показывает Get-Printer, символ в символ. Сетевой принтер с сервера печати указывается полным путём вида \\print-srv\HP-Buh.
Свой принтер для каждого пользователя 1С
Внутри 1С нет настройки «у этого пользователя базы печатать сюда». Персональные настройки пользователя в БП 3.0 и ЗУП 3.1 касаются организации, склада, подписей — но не принтера.
Поэтому задача «разные принтеры для разных сотрудников» решается на уровне Windows:
- 🧑💼 Каждый работает на своём ПК — назначьте принтер по умолчанию на каждом компьютере.
- 🖧 Все работают на одном терминальном сервере — назначьте принтер по умолчанию в профиле каждого пользователя Windows. Удобно делать через групповые политики:
Конфигурация пользователя → Настройка → Параметры панели управления → Принтеры, с отметкой «Использовать этот принтер по умолчанию». - 👥 Несколько человек входят под одной учётной записью Windows — развести принтеры не получится. Это повод завести отдельные учётные записи.
Если в 1С и в Windows используется один логин на всех, любое переключение принтера одним сотрудником тут же меняет его у всех остальных.
Выбор принтера в момент печати документа
Иногда менять основной принтер не нужно: обычно печатаете на лазерный, а раз в день — на другой. Тогда выбирайте принтер прямо при печати.
Из формы документа
- Откройте документ, например «Реализация (акт, накладная, УПД)».
- Нажмите кнопку «Печать» на командной панели и выберите печатную форму.
- В открывшемся окне печатной формы нажмите «Печать».
- Появится диалог печати. В поле выбора принтера укажите нужное устройство, задайте число копий и диапазон страниц.
- Нажмите «Печать».
Выбор в этом диалоге действует только на текущую печать. Принтер по умолчанию Windows от этого не меняется.
Из любого табличного документа
Для отчётов (ОСВ, анализ счёта, кадровые отчёты) работает общее правило платформы:
Ctrl + P— открыть диалог печати с выбором принтера;- главное меню (кнопка с тремя полосками в заголовке окна)
→ Файл → Печать…— то же самое; Файл → Параметры страницы— ориентация, поля, масштаб.
Если документ на А4 печатается на двух листах, откройте «Параметры страницы» и выставьте масштаб «По ширине страницы». Это не связано с принтером, но в жалобах «принтер печатает криво» причина чаще всего здесь.
Отдельный принтер для одной печатной формы
Частая задача на складе: накладные — на лазерный принтер, этикетки и ценники — всегда на термопринтер, без диалога. Штатно в типовых конфигурациях такой привязки нет. Её делает программист через расширение конфигурации , чтобы не снимать типовую с поддержки.
У табличного документа платформы есть свойство ИмяПринтера. Если заполнить его до вывода на печать, документ уйдёт на указанный принтер:
// фрагмент кода в расширении, на клиенте
ТабДок.ИмяПринтера = "Zebra ZD220 Склад";
ТабДок.КоличествоЭкземпляров = 1;
ТабДок.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);
Имя принтера должно совпадать с именем в Windows на компьютере пользователя. На другом ПК принтер может называться иначе — тогда имя лучше хранить в настройке, а не в коде.
Сетевые, терминальные и виртуальные принтеры
Здесь возникает большая часть проблем с принтером по умолчанию в 1С.
Перенаправленные принтеры в RDP
При подключении к серверу через «Удалённый рабочий стол» локальные принтеры пробрасываются в сеанс. В списке они выглядят как HP LaserJet (перенаправлено 3). Число в скобках — номер сеанса, и он меняется при каждом входе.
Что из этого следует:
- 🔁 Принтер по умолчанию в сеансе может каждый раз становиться другим.
- 📌 Скрипт с жёстким именем «…(перенаправлено 3)» завтра перестанет работать.
- ⚙️ В свойствах RDP-подключения на сервере есть параметр, который делает основным принтер по умолчанию клиента. Если он выключен, в сеансе по умолчанию оказывается первый попавшийся принтер.
Проверьте на стороне клиента: в программе «Подключение к удалённому рабочему столу» на вкладке «Локальные ресурсы» должен быть отмечен пункт «Принтеры». На сервере в групповых политиках, в разделе перенаправления принтеров служб удалённых рабочих столов, найдите политику про принтер клиента по умолчанию и не включайте запрет на его использование в сеансе.
Сетевой принтер через сервер печати
Принтер, подключённый как \\print-srv\HP-Buh, — самый надёжный вариант для офиса. Его имя не зависит от сеанса, его можно раздать политикой. Если в 1С он «пропадает», первым делом проверьте доступность сервера печати с рабочего места.
Виртуальные принтеры: PDF, факс, OneNote
В списке Windows часто есть «Microsoft Print to PDF», «Fax», «OneNote», а иногда и драйверы сервисов отправки документов. Если один из них стал основным, 1С при печати вместо бумаги предлагает сохранить файл .
- 📄 Для PDF удобнее штатное сохранение из окна печатной формы: там есть кнопка сохранения в файл с выбором формата, включая PDF.
- 🗑️ Ненужные виртуальные принтеры можно удалить в
Принтеры и сканеры, чтобы они не перехватывали роль основного. - ✉️ Чтобы отправить документ контрагенту, в типовых конфигурациях есть отправка по почте прямо из окна печати — виртуальный принтер для этого не нужен.
Клиент 1С на Linux
На Linux печать идёт через CUPS. Принтер по умолчанию для текущего пользователя смотрят и меняют в терминале:
# показать принтер по умолчанию
lpstat -d
# список доступных принтеров
lpstat -p
# назначить принтер по умолчанию текущему пользователю
lpoptions -d HP_LaserJet_Buh
После смены перезапустите клиент 1С: список принтеров он получает при старте печати от системы, а открытые окна могут держать старое значение.
Диагностика: почему 1С не печатает на нужный принтер
Если ничего не помогло
- Проверьте печать вне 1С. Распечатайте пробную страницу из свойств принтера или текст из Блокнота. Не печатает и там — проблема в драйвере или очереди, а не в 1С.
- Очистите очередь печати. Зависшее задание блокирует все следующие. Откройте очередь принтера и отмените задания.
- Перезапустите службу диспетчера печати. В
services.mscнайдите «Диспетчер печати» и перезапустите её.
На терминальном сервере перезапуск диспетчера печати сбрасывает очереди у всех пользователей сеансов. Предупредите коллег и делайте это, когда никто не печатает. Сами сеансы 1С при этом не обрываются, но незавершённые задания печати пропадут.
- Переустановите драйвер. Старые универсальные драйверы иногда некорректно сообщают параметры бумаги, и 1С выводит документ с неверными полями.
- Перезапустите 1С. Список принтеров клиент запрашивает у системы. После установки нового принтера при открытом сеансе 1С перезапуск снимает лишние вопросы.
Если проблема только у одного пользователя базы, а у остальных всё хорошо, сбросьте его сохранённые настройки форм. В БП 3.0 и ЗУП 3.1 это делается в Администрирование → Настройки пользователей и прав → Настройки пользователей: выберите пользователя и очистите настройки внешнего вида. Пользователь при этом должен выйти из программы.
Частые вопросы
Можно ли задать принтер по умолчанию только для 1С, не трогая Windows?
ИмяПринтера.