Почему не отображаются отчеты в веб-клиенте 1С и как это исправить?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Многие системные администраторы и разработчики при переходе на новые версии платформы (начиная с 8.3.15 и выше, включая 8.3.17 и 8.3.20) сталкиваются с крайне неприятным поведением 1С. Суть проблемы заключается в следующем: пользователь открывает отчет в веб-клиенте, нажимает кнопку «Сформировать», но вместо данных видит абсолютно пустое белое поле. При этом, если нажать «Предварительный просмотр» или отправить документ на печать, все данные отображаются корректно. В тонком клиенте проблема также не воспроизводится.

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

Разберем причину возникновения проблемы

Проанализируем ситуацию: почему форма отчета отрисовывается, а сами данные (табличный документ) — нет? Веб-клиент 1С представляет собой сложное JavaScript-приложение. Когда мы формируем отчет, платформа генерирует набор HTML-тегов, стилей и скриптов. Часто для отображения сложных таблиц 1С использует дополнительные запросы к серверу для подгрузки чанков (частей) данных.

Основная причина «невидимости» кроется в том, что 1С может генерировать абсолютные ссылки для внутренних ресурсов отчета. Если ваша информационная база опубликована за реверс-прокси (например, Nginx) или доступна через проброс портов на роутере с изменением номера порта (например, внешний порт 7777 транслируется во внутренний 80), браузер блокирует такие запросы. Хром и другие современные браузеры воспринимают попытку загрузить данные по ссылке, отличной от текущего адреса в строке браузера, как нарушение политики безопасности (CORS или Mixed Content).

Решение 1: Настройка заголовков на Reverse Proxy (Nginx)

Если вы используете Nginx для публикации базы в интернет или для балансировки нагрузки, решение часто заключается в правильной передаче заголовков. Выясним, какие именно параметры критичны для корректной работы веб-клиента.

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

Рассмотрим пример настройки заголовков:


proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

Особое внимание уделим строке proxy_set_header X-Forwarded-Proto $scheme;. Если пользователь обращается к 1С по HTTPS, а Nginx передает запрос на веб-сервер (IIS или Apache) по HTTP, платформа может сформировать ссылки на элементы отчета с протоколом http://. Браузер заблокирует их как «смешанный контент» (Mixed Content), и отчет останется пустым. Добавление этого заголовка помогает 1С правильно определить контекст выполнения.

Решение 2: Синхронизация портов при пробросе (Port Mapping)

Посмотрим на ситуацию со стороны сетевого оборудования. Распространенная ошибка — использование разных портов снаружи и внутри сети. Например, на роутере настроено: внешний IP, порт 1234 -> внутренний IP сервера 1С, порт 80.

Выяснилось, что 1С крайне чувствительна к такому «маппингу». Если внешний и внутренний порты не совпадают, некоторые скрипты отрисовки табличных документов в веб-клиенте пытаются обращаться к внутреннему порту 80, который недоступен пользователю из внешней сети. Рассмотрим два варианта решения этой задачи:

  1. Правило «Порт в порт»: Измените настройки проброса на роутере так, чтобы внешний порт совпадал с внутренним. Если сервер 1С слушает 80-й порт, пробрасывайте 80 -> 80. Если 80-й порт занят другими сервисами, измените порт в настройках вашего веб-сервера (IIS или Apache).
  2. Настройка IIS: Если вы решили сменить порт, например, на 7777, выполните следующие шаги:
    • Зайдите в диспетчер IIS.
    • Выберите Default Web Site (или вашу конкретную публикацию).
    • Нажмите «Изменить привязки...» и установите порт 7777.
    • Перезапустите сайт.
    • Настройте проброс на роутере: 7777 -> 7777.

Важное замечание: При использовании нестандартных портов в браузерах типа Chrome или Yandex иногда требуется пробросить не только TCP, но и UDP трафик для того же порта, так как современные протоколы (например, QUIC) могут влиять на доставку контента.

Решение 3: Проверка настроек прокси в браузере и локальной сети

Проанализируем ситуацию, когда проблема возникает внутри локальной сети. Если в организации используется корпоративный прокси-сервер, браузер может пытаться обращаться к элементам отчета через него, что вызывает задержки или блокировки.

Попробуем добавить адрес сервера 1С в исключения прокси-сервера:

  1. Откройте «Свойства браузера» (или настройки сети в Windows).
  2. Перейдите на вкладку «Подключения» -> «Настройка сети».
  3. Установите флажок «Не использовать прокси-сервер для локальных адресов».
  4. В разделе «Дополнительно» добавьте IP-адрес или DNS-имя вашего сервера публикации в список исключений.

Также рекомендуется проверить состояние Firewall на сервере 1С. В некоторых случаях блокировка специфических портов или динамических ответов от службы W3SVC (IIS) приводит к тому, что каркас страницы загружается, а бинарные данные отчета отсекаются сетевым экраном.

Решение 4: Очистка кэша и перепубликация базы

Если вышеперечисленные методы не помогли, проанализируем состояние самой публикации. При обновлении платформы 1С файлы модулей расширения веб-сервера обновляются, но в папке публикации могут остаться старые версии скриптов или закэшированные стили, которые несовместимы с новым ядром платформы.

Выполним полную очистку по шагам:

  1. Зайдите в конфигуратор и снимите базу с публикации.
  2. Физически удалите содержимое папки, в которую осуществлялась публикация (например, C:\inetpub\wwwroot\MyBase).
  3. Очистите кэш браузера у пользователя (Ctrl+F5 или через настройки).
  4. Выполните публикацию базы заново из конфигуратора текущей версии платформы.
  5. Перезапустите службу веб-сервера (команда iisreset для IIS).

Разберем еще один нюанс: аппаратное ускорение. В редких случаях рендеринг сложных таблиц 1С конфликтует с видеодрайвером через браузер. Если отчет виден в Firefox, но не виден в Chrome, попробуйте временно отключить «Аппаратное ускорение» в настройках Chrome (раздел «Система»).

Резюме

Подведем итог: «невидимость» отчетов в веб-клиенте 1С — это почти всегда проблема несоответствия сетевых адресов и протоколов между тем, что видит браузер, и тем, что генерирует сервер 1С. Использование идентичных внешних/внутренних портов и правильная передача заголовка X-Forwarded-Proto в 90% случаев полностью решают данную проблему.

← На главную