При разработке интерфейсов на платформе 1С программисты часто сталкиваются с необходимостью вывода PDF-документов непосредственно в форму. Традиционным инструментом для этого служит ПолеHTMLДокумента. Однако использование конкретной версии программного обеспечения, такой как Adobe Acrobat XI Pro, может вызвать проблемы: файл просто не отображается, в то время как более современная версия Adobe Acrobat DC работает без нареканий. Разберем детально, почему это происходит и как настроить систему для корректной работы именно с версией XI Pro.
Для начала проанализируем ситуацию: ПолеHTMLДокумента в операционных системах Windows долгое время базировалось на движке Internet Explorer (Trident). Это означает, что для корректного отображения любого контента внутри 1С должны быть правильно настроены соответствующие надстройки и компоненты ActiveX самого браузера. Разберем пошагово методы исправления этой проблемы.
Одной из наиболее частых причин блокировки отображения PDF внутри сторонних контейнеров (которым является 1С) является встроенная политика безопасности Adobe. В версии XI Pro «Защищенный режим» реализован достаточно жестко. Выясним, как его отключить:
Ctrl+K.Этот режим создает «песочницу», которая может препятствовать взаимодействию ActiveX-объекта AcroPDF.dll с процессом 1cv8.exe. После его отключения компоненты Acrobat становятся более «открытыми» для встраивания.
Рассмотрим важную особенность платформы 1С: по умолчанию встроенное ПолеHTMLДокумента запускается в режиме совместимости с Internet Explorer 7. Это происходит даже в том случае, если в системе установлен IE 11 или Edge. Adobe Acrobat XI часто конфликтует с устаревшим режимом рендеринга IE7. Чтобы заставить 1С использовать современный движок, необходимо внести изменения в реестр Windows.
Разберем процесс внесения правок:
regedit.exe).HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION.1cv8.exe (для толстого клиента) или 1cv8c.exe (для тонкого клиента).11001 в десятичной системе (что соответствует IE11) или 2AF9 в шестнадцатеричной.Проделав эту операцию, мы сообщим системе, что встроенный в 1С браузер должен использовать все возможности последней установленной версии движка Internet Explorer, что критически важно для корректной загрузки плагина PDF.
В отличие от версии DC, которая автоматически настраивает ассоциации, в Adobe Acrobat XI настройка отображения в браузере иногда может «слетать» или не активироваться при установке. Проверим эти настройки:
Перейдем в настройки Acrobat (Ctrl+K), раздел Интернет. Убедимся, что установлена галочка Отображать PDF в браузере. Если она установлена, попробуем выполнить «перерегистрацию» функции: снимем галочку, нажмем «ОК», затем снова зайдем и установим ее. Это инициирует обновление ключей реестра, отвечающих за COM-взаимодействие с браузером.
Иногда проблема кроется в том, что библиотека, отвечающая за отрисовку PDF, не зарегистрирована в системе как доступный COM-объект. Проанализируем ситуацию, когда нам требуется ручная регистрация файла AcroPDF.dll.
Выполним следующие шаги в командной строке (CMD), запущенной от имени администратора:
C:\Program Files (x86)\Common Files\Adobe\Acrobat\ActiveX\AcroPDF.dll.
regsvr32 "C:\Program Files (x86)\Common Files\Adobe\Acrobat\ActiveX\AcroPDF.dll"
Важное замечание: Обратите внимание на разрядность. Adobe Acrobat XI — это 32-битное приложение. Если вы используете 64-битную платформу 1С, она может испытывать трудности с вызовом 32-битного ActiveX-компонента. В идеале разрядность клиента 1С должна совпадать с разрядностью установленного Acrobat для максимально стабильной работы через ActiveX.
Поскольку ПолеHTMLДокумента фактически является окном браузера, настройки самого Internet Explorer напрямую влияют на результат. Разберем, как проверить активность надстроек:
iexplore.exe).Рассмотрим ситуацию в долгосрочной перспективе. Платформа 1С активно уходит от использования технологий Internet Explorer. В современных версиях (начиная с 8.3.14 в определенных режимах и массово в более поздних релизах) осуществлен переход на движок WebKit.
Для программиста это означает следующее:
pdf.js, которые отрисовывают документ средствами самого HTML5, не полагаясь на установленный в системе Adobe Acrobat.Подводя итог, можно сказать: если использование Adobe Acrobat XI Pro принципиально, основным решением будет отключение защищенного режима в настройках Adobe и настройка эмуляции FEATURE_BROWSER_EMULATION в реестре Windows. Эти два действия в 90% случаев исправляют проблему отображения PDF в 1С.