При переходе на новые версии платформы 1С:Предприятие 8.3 (начиная с 8.3.15.1508 и выше) системные администраторы часто сталкиваются с неприятным эффектом: при нажатии кнопки «Печать» или попытке открыть предварительный просмотр система «задумывается» на 15–30 секунд. Особенно остро эта проблема проявляется на современных операционных системах, таких как Windows Server 2019. При этом в диспетчере задач в момент зависания можно заметить кратковременное появление процесса 1cv8p64.bin или 1cv8p32.bin.
В данной статье мы разберем архитектурные причины такого поведения платформы, выясним, зачем нужны эти исполняемые файлы, и пошагово рассмотрим методы устранения задержек.
Начиная с версии 8.3.15, разработчики 1С изменили механизм взаимодействия с принтерами. Ранее функции печати выполнялись непосредственно внутри основного процесса 1cv8.exe. Это приводило к тому, что ошибки в нестабильных драйверах принтеров (особенно старых или сетевых) могли вызвать аварийное завершение всей программы 1С.
Для повышения отказоустойчивости работа с принтерами была вынесена в отдельные модули:
Несмотря на расширение .bin, эти файлы являются полноценными исполняемыми модулями (PE-файлами). Когда пользователь инициирует печать, 1С запускает соответствующий процесс, передает ему задачу, получает ответ от драйвера принтера и закрывает процесс. Именно на этапе запуска и инициализации этого внешнего модуля в ОС Windows Server 2019 возникают задержки.
Проанализируем ситуацию: Windows Server 2019 обладает гораздо более строгими механизмами проверки запускаемых процессов, чем Windows Server 2008 R2. Система защиты Windows Defender (или сторонний антивирус) при каждом запуске нового процесса проверяет его цифровую подпись и сканирует содержимое. Поскольку 1С запускает 1cv8p64.bin «с нуля» при каждом обращении к печати, задержки суммируются.
Выполним следующие шаги по настройке исключений:
.bin.C:\Program Files (x86)\1cv8\).1cv8p32.bin и 1cv8p64.bin, указав полные пути к ним в каталоге конкретной версии платформы (например, ...\8.3.16.1502\bin\1cv8p64.bin).Важно: Если на сервере используются политики AppLocker или Windows Defender Exploit Guard, убедимся, что запуск исполняемых файлов из программных папок 1С разрешен и не требует длительной проверки репутации в облаке Microsoft.
Рассмотрим, как компонент 1cv8p64.bin взаимодействует с системой печати. При старте он опрашивает службу Spooler (Диспетчер очереди печати) и собирает информацию обо всех установленных драйверах и портах. Если в системе числятся сетевые принтеры, которые в данный момент недоступны (например, принтеры уволившихся сотрудников или старые перенаправленные RDP-принтеры), процесс будет ожидать таймаута ответа от каждого такого устройства.
Проанализируем список принтеров и выполним очистку:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\DevicesВ 1С параметры печати (имя принтера, ориентация страницы, масштаб) сохраняются для каждой конкретной печатной формы в разрезе пользователей. Если форма была сохранена с принтером, которого больше нет в системе, 1cv8p64.bin может тратить значительное время на попытки инициализации несуществующего устройства.
Выясним причину задержки, сбросив настройки:
Пример кода для программной очистки настроек печати (использовать с осторожностью):
Выборка = ХранилищеСистемныхНастроек.Выбрать("Общее/НастройкиПечатиТабличныхДокументов");
Пока Выборка.Следующий() Цикл
ХранилищеСистемныхНастроек.Удалить("Общее/НастройкиПечатиТабличныхДокументов", Выборка.КлючОбъекта, Выборка.Пользователь);
КонецЦикла;
Если вышеперечисленные методы не принесли результата, воспользуемся инструментом Process Monitor от Марка Руссиновича. Это позволит нам увидеть, на каком именно системном вызове «зависает» процесс.
Разберем алгоритм диагностики:
ProcMon.exe от имени администратора.Process Name is 1cv8p64.bin.Чаще всего задержка обнаруживается на операциях обращения к реестру (RegOpenKey) при опросе веток драйверов или при обращении к WMI. Если мы видим массовые ошибки NAME NOT FOUND при обращении к сетевым путям или принтерам, значит, проблема в некорректно настроенных портах печати в ОС.
Windows Server 2019 позволяет настраивать режим изоляции для самих драйверов принтеров. Иногда конфликт возникает из-за того, что и 1С, и Windows пытаются изолировать драйвер одновременно.
Посмотрим на настройки в оснастке управления печатью:
printmanagement.msc.1cv8p64.bin.Задержка при печати в связке 1С и Windows Server 2019 — это комплексная проблема взаимодействия системы безопасности ОС и нового механизма изоляции печати 1С. В большинстве случаев решение заключается в добавлении исключений в антивирус и удалении неактуальных принтеров из профиля пользователя и системы. Использование 32-битной платформы на 64-битном сервере вынуждает систему чаще запускать прослойку 1cv8p64.bin для доступа к драйверам, поэтому чистота конфигурации печатных устройств является критически важным фактором.