Как сделать, чтобы 1С сразу печатала на нужный принтер

· 9 мин

Содержание

Отдельной настройки «принтер по умолчанию» в 1С 8.3 нет: программа берёт принтер по умолчанию из Windows того пользователя, под которым запущена. Чтобы сделать нужный принтер основным, назначьте его в Windows (Параметры → Принтеры и сканеры → Использовать по умолчанию) и отключите галочку «Разрешить Windows управлять принтером, используемым по умолчанию». После этого перезапустите 1С.

Это правило одинаково для Бухгалтерии, ЗУП, УТ и любой другой конфигурации на платформе 8.3: печать идёт через платформу, а не через конфигурацию. Сложнее с терминальным сервером, сетевыми принтерами и общим компьютером на несколько сотрудников: там основной принтер то и дело сбивается, и его приходится закреплять.

Откуда 1С узнаёт, на какой принтер печатать

Когда вы нажимаете «Печать» в печатной форме, платформа передаёт табличный документ в Windows. Дальше возможны два пути:

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

Отсюда три практических вывода:

  1. Принтер по умолчанию в Windows хранится для каждого пользователя отдельно. У бухгалтера и кладовщика на одном компьютере он может быть разным.
  2. Если 1С запущена на терминальном сервере, важен принтер по умолчанию в сеансе на сервере, а не на вашем ноутбуке.
  3. Платформа читает список принтеров при открытии окна печати. Если принтер подключили, пока 1С работала, иногда проще перезапустить программу.

Быстрая проверка: откройте Блокнот и нажмите Ctrl+P. Какой принтер выбран там, тот же самый будет выбран и в 1С. Если в Блокноте всё верно, а 1С печатает не туда, проблема в настройках самой печатной формы или в коде.

Назначаем основной принтер в Windows 10 и 11

Windows 11

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

Windows 10

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

Через классическую панель управления

Нажмите Win+R, введите control printers и нажмите Enter. Щёлкните нужный принтер правой кнопкой и выберите «Использовать по умолчанию». У основного принтера появится зелёная галочка. Этот способ одинаково работает в Windows 10, 11 и Windows Server.

Если не снять галочку автоматического управления, Windows будет делать основным тот принтер, на который вы печатали последним. Распечатали один документ на цветном принтере в соседнем кабинете — и вся печать из 1С поехала туда.

Выбор принтера прямо в 1С

Сменить принтер для одной печати можно, не трогая Windows:

  1. Откройте печатную форму, например счёт или накладную.
  2. Нажмите Ctrl+P или вызовите Главное меню (☰) → Файл → Печать.
  3. В открывшемся окне выберите принтер из списка, укажите число копий и диапазон страниц.

Поля, ориентацию листа и масштаб задают в Главное меню → Файл → Параметры страницы. Окно предварительного просмотра там же: Файл → Предварительный просмотр.

В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) у формы печати документов есть своя кнопка «Печать» и поле количества копий. Эта кнопка печатает без выбора принтера, то есть на текущий принтер по умолчанию. Если нужен другой принтер, пользуйтесь Ctrl+P из открытого табличного документа: там окно выбора принтера появляется всегда.

Где меняемЧто меняетсяДля кого действует
Windows: «Использовать по умолчанию»Принтер для всей печати, включая 1СТекущий пользователь Windows
Окно Ctrl+P в 1СПринтер для одной печатиТолько этот раз
Параметры страницы в 1СПоля, ориентация, масштабПользователь 1С и эта печатная форма
Код или внешняя обработкаКонкретный принтер для формыВсе, кто запускает этот код

Один принтер по умолчанию для всех сотрудников

Раз принтер по умолчанию хранится в профиле пользователя Windows, «поставить всем сразу» на одном компьютере через параметры нельзя. Есть три рабочих варианта.

Вариант 1. Групповая политика в домене

Администратор домена открывает редактор групповой политики и создаёт объект для нужного подразделения:

  1. Конфигурация пользователя → Настройка → Параметры панели управления → Принтеры.
  2. Создаёт элемент «Общий принтер», указывает путь вида \\PRINTSRV\HP-Buh.
  3. Ставит отметку «Использовать этот принтер по умолчанию».

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

Вариант 2. Сценарий входа

Если домена нет, положите в автозагрузку пользователя небольшой bat-файл (пример в разделе про скрипты). Он отработает при каждом входе.

Вариант 3. Терминальный сервер

На терминальном сервере обычно работает перенаправление принтеров по RDP. В сеансе появляются принтеры клиента с пометкой «перенаправлено», и основным становится основной принтер с компьютера сотрудника.

Чтобы это работало:

  • ✅ в клиенте RDP на вкладке «Локальные ресурсы» включены «Принтеры»;
  • ✅ на сервере не запрещено перенаправление принтеров политикой;
  • ✅ на сервере не включена политика, которая запрещает делать принтер клиента основным в сеансе. Ищите её в разделе перенаправления принтеров служб удалённых рабочих столов.

Если в сеансе вам нужен серверный принтер, а не перенаправленный, назначьте его основным уже внутри сеанса тем же способом, что и в Windows, и включите ту самую политику — иначе при следующем входе RDP снова подставит принтер клиента.

Сетевой принтер: подключение влияет на результат

Сетевой принтер подключают двумя способами, и для 1С разница заметна.

СпособКак выглядитОсобенность
Через сервер печати\\PRINTSRV\HP-BuhПодключение есть только у того пользователя, кто его сделал
Напрямую по IP (порт TCP/IP)HP LaserJet M428Принтер виден всем пользователям компьютера

Выводы для практики:

  1. Если на компьютере работают несколько человек, принтер по IP удобнее: его не нужно подключать каждому, остаётся только назначить основным.
  2. Принтер через сервер печати пропадает из списка, если сервер выключен или недоступен. Windows тогда тихо делает основным другой принтер.
  3. Имя принтера в 1С совпадает с именем в Windows. Для кода и обработок это важно: \\PRINTSRV\HP-Buh и HP-Buh — разные строки.

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

Почему принтер сбивается и как это остановить

Жалоба «вчера печатало нормально, сегодня ушло в соседний кабинет» почти всегда сводится к одной из причин:

  • 🔄 Включено автоматическое управление принтером по умолчанию в Windows 10 и 11.
  • 🌐 Сетевой принтер был недоступен при входе, и Windows назначила основным другой.
  • 🖥️ На терминальном сервере RDP при каждом входе ставит основным принтер клиента.
  • 👥 Сотрудник работает под разными учётными записями Windows, а настраивал только одну.
  • 📄 После установки нового принтера или обновления драйвера основным стал «Microsoft Print to PDF» или «Отправить в OneNote».

Как закрепить настройку надёжно:

  1. Отключите автоматическое управление. Если в параметрах переключатель недоступен, задайте параметр реестра (ниже).
  2. Для сетевых принтеров переходите на подключение по IP или на групповую политику.
  3. Удалите виртуальные принтеры, которыми никто не пользуется: так Windows не на что будет переключиться.

Отключение автоматического управления через реестр для текущего пользователя:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows]
"LegacyDefaultPrinterMode"=dword:00000001

Правка реестра действует только на того пользователя, под которым её выполнили. Для остальных сотрудников запускайте файл в их сеансе или раздайте параметр групповой политикой.

Проверка перед жалобой «1С печатает не туда»
Выполнено: 0 / 5

Скрипты и печать из кода

Командная строка Windows

Назначить принтер основным одной командой:

rundll32 printui.dll,PrintUIEntry /y /n "HP LaserJet Бухгалтерия"

Для сетевого принтера через сервер печати сначала подключите его, потом назначьте:

rundll32 printui.dll,PrintUIEntry /in /n "\\PRINTSRV\HP-Buh"
rundll32 printui.dll,PrintUIEntry /y /n "\\PRINTSRV\HP-Buh"

Такой bat-файл удобно положить в автозагрузку пользователя: Win+R → shell:startup.

PowerShell

$p = Get-CimInstance Win32_Printer -Filter "Name='HP LaserJet Бухгалтерия'"
Invoke-CimMethod -InputObject $p -MethodName SetDefaultPrinter

Список точных имён принтеров покажет команда Get-Printer | Select-Object Name.

Как узнать, какой принтер сейчас основной

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

Get-CimInstance Win32_Printer -Filter "Default=True" | Select-Object Name

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

Встроенный язык 1С

Если конкретная форма всегда должна уходить на конкретный принтер, например этикетки на термопринтер, принтер задают в коде, а не в Windows. Пример для клиентской процедуры внешней обработки или расширения:

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

Если свойство ИмяПринтера оставить пустым, документ уйдёт на принтер по умолчанию. Режим НеИспользовать печатает без окна выбора принтера. Имя должно совпадать с именем в Windows посимвольно.

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

1С не видит принтер или печатает не туда

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

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

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

Можно ли задать отдельный принтер по умолчанию только для 1С, не трогая Word и Excel?
Штатной настройки нет: платформа берёт основной принтер Windows. Отдельный принтер для 1С задают кодом через свойство ИмяПринтера в обработке или расширении.
Почему в веб-клиенте 1С выбирается другой принтер?
В веб-клиенте печатает браузер. Принтер выбирается в окне печати браузера, и браузер может запоминать последний выбор независимо от Windows.
Сохраняет ли 1С выбор принтера после закрытия программы?
Надёжно сохраняется только принтер по умолчанию Windows. Выбор в окне Ctrl+P относится к одной печати, поэтому постоянный принтер настраивают в Windows или в коде.
Нужны ли права администратора, чтобы сменить принтер по умолчанию?
Нет. Основной принтер — личная настройка пользователя. Права администратора нужны для установки драйвера и подключения нового принтера по IP.
Можно ли печатать из 1С на принтер, подключённый к серверу 1С?
Печать выполняет клиентское приложение на компьютере пользователя. Сервер 1С на печать не влияет, поэтому принтер должен быть доступен там, где запущен клиент: на рабочем месте или в терминальном сеансе.
Как печатать накладные на одном принтере, а этикетки на другом?
Сделайте основным принтер для документов. Для этикеток выбирайте принтер в окне Ctrl+P или закрепите его в коде печатной формы этикеток.