При работе в 1С:Предприятие через веб-клиент пользователи часто сталкиваются с неприятной ситуацией: при попытке распечатать документ или открыть предварительный просмотр ничего не происходит. Браузер Google Chrome просто «молчит», не выводя стандартное диалоговое окно выбора принтера. Примечательно, что обычная печать веб-страниц из самого браузера при этом продолжает работать корректно.
В этой статье мы подробно разберем, почему возникает данная проблема, проанализируем техническую сторону вопроса, выясним причины блокировки со стороны современных интернет-обозревателей и рассмотрим по шагам все возможные пути решения — от оперативных временных «костылей» до полноценного исправления на уровне платформы 1С.
Осенью 2019 года, начиная с версии Google Chrome 77.0.3865.75, разработчики ядра Chromium внедрили важное обновление безопасности. Этот патч заблокировал автоматический программный вызов диалогового окна печати для PDF-документов, которые загружаются на веб-страницу скрыто.
Рассмотрим, как изначально был устроен механизм печати в веб-клиенте 1С:
<iframe> на веб-странице.После обновления Chromium цепочка безопасности разорвалась. Браузер стал расценивать автоматический вызов печати из невидимого фрейма как потенциальную уязвимость (защита от несанкционированной печати рекламных или вредоносных материалов). В результате Chrome блокирует этот процесс.
Проанализируем ситуацию через встроенные инструменты разработчика. Если в момент нажатия кнопки «Печать» нажать клавишу F12 и открыть вкладку Console (Консоль), мы увидим характерную ошибку блокировки данных:
Resource interpreted as Document but transferred with MIME type application/pdf
Поскольку популярные браузеры, такие как Яндекс.Браузер, Opera и Microsoft Edge, работают на том же самом движке Chromium, проблема со временем затронула и их — как только разработчики этих программ обновили свои продукты до актуальных версий ядра.
Разработчики фирмы 1С признали поведение браузеров изменением стандартов веб-безопасности и зарегистрировали ошибку платформы с кодом 10214435 (код обращения HL-55052). Логика работы веб-клиента была полностью переработана: теперь вместо скрытой отправки PDF во фрейм платформа использует новые безопасные API браузера либо предлагает открыть документ в отдельной вкладке.
Для полного устранения проблемы без изменения настроек компьютеров пользователей необходимо обновить платформу «1С:Предприятие» до одной из следующих версий (или более новых):
Если на вашем предприятии развернута более современная версия платформы (например, 8.3.21, 8.3.22 и выше), данная ошибка в них уже исправлена по умолчанию.
Если оперативно обновить серверную платформу 1С не представляется возможным (например, из-за жесткого регламента обслуживания или требований совместимости конфигурации), лучшим техническим решением станет отказ от использования веб-браузера в пользу Тонкого клиента 1С.
Разберем по шагам, как настроить такую схему работы:
http://имя_сервера/имя_базы).При таком сценарии Тонкий клиент будет использовать для передачи данных веб-протоколы (HTTP/HTTPS), но сам вывод на печать пойдет через внутренние системные библиотеки платформы и стандартные диалоги операционной системы Windows или Linux, минуя любые песочницы и ограничения безопасности интернет-браузеров.
Если пользователям критически важно работать именно через браузер, временно переведите их на использование Mozilla Firefox. Данный веб-обозреватель построен на собственном независимом движке Gecko. На момент возникновения проблемы он не блокировал автоматический вызов диалога печати из фреймов для PDF-файлов так жестко, как Chromium, что позволяло без проблем распечатывать документы из веб-клиента 1С старых версий.
Мы можем обойти блокировку PDF-файлов, перенастроив платформу 1С на генерацию печатных форм в формате HTML вместо PDF. Браузеры беспрепятственно печатают HTML-код.
Выполним эту настройку в интерфейсе веб-клиента:
Важное предупреждение: печать в режиме HTML имеет существенные недостатки. Поскольку разметка веб-страниц сильно зависит от интерпретации конкретным браузером, сложные печатные формы (например, товарные накладные ТОРГ-12 или счета-фактуры с обилием мелких таблиц и рамок) могут отображаться искаженно. Текст может вылезать за границы ячеек, а разбиение на страницы часто работает некорректно. Разработчикам может потребоваться программно корректировать параметры вывода табличного документа:
ТабДок = Новый ТабличныйДокумент;
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДок.АвтоМасштаб = Истина;
// Дополнительный код формирования печатной формы...
Если необходимо сохранить идеальное качество печати документов в формате PDF, но обновить платформу или установить тонкий клиент нельзя, настройте Chrome так, чтобы он не пытался открыть файл во встроенном плагине просмотра, а принудительно скачивал его на жесткий диск.
Для этого выполните следующие настройки в браузере Google Chrome:
После активации этой опции при нажатии на кнопку «Печать» в веб-клиенте 1С файл будет автоматически скачиваться в папку «Загрузки». Пользователю останется кликнуть по загруженному файлу, и он мгновенно откроется в локальном просмотрщике (например, Adobe Acrobat Reader или Foxit Reader), откуда его можно будет отправить на печать без каких-либо ограничений со стороны браузера.