Довольно часто при работе со старыми базами возникает неприятная ситуация: сама программа работает исправно, но при попытке распечатать любой документ система выдает сообщение «Ошибка печати». При этом из всех остальных приложений (текстовых редакторов, таблиц, браузера) принтер печатает абсолютно бесперебойно. Давайте проанализируем ситуацию и выясним причину такого специфического поведения системы.
Обычно корень проблемы кроется в «зоопарке» операционных систем и протоколов. Исторически сложилось, что клиентская часть 1С 7.7 может работать на устаревшей ОС (например, Windows XP), а принтер физически подключен к более современному компьютеру под управлением Windows 10 или Windows 11. После установки последних обновлений безопасности (особенно патчей, закрывающих уязвимость PrintNightmare) сетевые протоколы взаимодействия жестко ограничиваются, и старая платформа 1С теряет права доступа к сетевой очереди печати. Рассмотрим подробнее способы решения этой задачи, двигаясь от самых простых внутренних настроек к более сложным системным правкам.
Прежде чем менять сетевые настройки и политики безопасности, разберем по шагам самое простое и частое решение, которое выполняется в рамках самой платформы. 1С сохраняет индивидуальные настройки печати табличных документов для каждого пользователя в системном реестре. Со временем или после сбоев эти данные могут повредиться, блокируя вывод на принтер.
Win+R, введите regedit и нажмите Enter).HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\НазваниеВашейБазы\V7\ИмяПользователя\Moxel.Moxel и полностью удалите его.Не беспокойтесь о потере данных: при следующем запуске программа заново создаст эту ветку реестра с чистыми настройками по умолчанию. Дополнительно посмотрим на файлы в каталоге пользователя: зайдите в папку вашей базы данных, найдите папку конкретного пользователя и удалите временные файлы с расширением .mxl. Они также хранят локальные настройки печатных форм и могут вызывать конфликты.
Если стандартное сетевое подключение вида \\ИмяКомпьютера\ИмяПринтера не работает и выдает ошибку прав доступа, мы применим классический обходной путь, который исторически отлично работает для 1С 7.7. Мы заставим систему думать, что сетевой принтер подключен локально.
Рассмотрим подробнее этот алгоритм настройки:
Local Port.\\Server1\HP_LaserJet. Важно: избегайте пробелов и кириллицы в сетевом имени принтера!В результате этих действий 1С будет обращаться к сетевому устройству так, словно оно подключено напрямую через LPT или USB порт компьютера, что позволяет обойти многие ограничения сетевых очередей печати.
Давайте проанализируем ситуацию на стороне компьютера (сервера), к которому физически подключен принтер. В современных версиях Windows анонимное подключение (гостевой доступ без указания конкретного пользователя) к общим ресурсам и принтерам заблокировано по умолчанию. Если вы просто расшарили принтер, старая ОС может попытаться обратиться к нему анонимно и получить отказ.
Все (Everyone), и у нее установлены галочки на разрешение печати. Как верно отмечают специалисты, если у пользователя нет базовых прав на чтение, он даже не увидит этот принтер в списке доступных устройств.В рамках борьбы с уязвимостями диспетчера печати Microsoft внедрила принудительное шифрование RPC-запросов. Старые операционные системы не умеют работать с этим уровнем шифрования. Посмотрим на пример того, как ослабить эти требования через реестр на компьютере с Windows 10, который раздает принтер по сети:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print]
"RpcAuthnLevelPrivacyEnabled"=dword:00000000
"RestrictDriverInstallationToAdministrators"=dword:00000000
Параметр RpcAuthnLevelPrivacyEnabled, установленный в значение ноль, отключает строгое требование шифрования и разрешает старым клиентам корректно общаться с диспетчером печати. Параметр RestrictDriverInstallationToAdministrators не позволяет системе блокировать запросы на использование драйверов от пользователей без прав администратора. После внесения этих правок обязательно перезапустите службу «Диспетчер печати» (Spooler) или полностью перезагрузите компьютер.
Разберем по шагам еще один критически важный аспект сетевого взаимодействия. Для связи с машинами на базе Windows XP современная Windows 10/11 должна поддерживать устаревший протокол SMB 1.0, который по умолчанию отключен.
Win+R и введите gpedit.msc).Иногда сама платформа 1С 7.7 запускается непосредственно на современных 64-битных ОС. В этом случае для обеспечения печати из 32-битного приложения на 64-битные драйверы операционная система использует специальную прослойку — процесс splwow64.exe. Бывают ситуации, когда этот процесс отрабатывает с ошибками или закрывается по таймауту быстрее, чем 1С успевает передать тяжелую печатную форму.
Чтобы увеличить время ожидания, в редакторе реестра в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control можно создать или изменить параметр DWORD с именем Splwow64TimeOutSeconds, задав ему значение, например, 120 (в десятичной системе), что даст процессу больше времени на обработку.
Напоследок обратите внимание на важнейшее правило работы седьмой версии 1С: программа крайне чувствительна к принтеру, установленному в системе по умолчанию. Прежде чем запускать информационную базу, всегда проверяйте, чтобы принтер по умолчанию был включен и доступен. Если в момент старта 1С принтер окажется не в сети, программа зафиксирует это состояние и будет постоянно выдавать ошибку печати, даже если связь с принтером восстановится через минуту. В таких случаях для возобновления печати требуется полный перезапуск программы 1С.