При работе с 1С:Предприятие 8.3 разработчики и пользователи часто сталкиваются с ситуацией, когда внешние печатные формы или отчеты, идеально выглядящие в тонком клиенте или конфигураторе, начинают вести себя непредсказуемо в браузере. Типичные симптомы: текст, для которого задано выравнивание По ширине, прижимается к левому краю, а настройка масштаба По ширине страницы игнорируется, сбрасываясь на 100%. Проанализируем, почему это происходит и как добиться корректного отображения табличных документов в веб-клиенте.
Когда мы открываем табличный документ в веб-клиенте, платформа 1С выполняет динамическую конвертацию объекта ТабличныйДокумент в формат HTML. Каждая ячейка превращается в тег <td>, а свойства форматирования транслируются в CSS-стили. Рассмотрим подробнее, почему свойство «По ширине» может не работать:
Перенос текста.justify может сбрасываться.Интересно заметить, что в режиме предпросмотра печатной формы выравнивание может отображаться корректно. Это связано с тем, что для предпросмотра платформа может использовать альтернативные механизмы рендеринга, отличные от основного окна веб-клиента.
Ситуация, когда в настройках ТабличногоДокумента указано Масштаб - По ширине страницы, но при печати из браузера документ выходит на 100% или обрезается, является классической для веб-клиента. Выясним причину этого поведения.
Браузер не имеет прямого доступа к принтеру так, как это делает нативное приложение. Он использует собственный диалог печати. Когда 1С отправляет документ на печать, она передает параметры страницы, но браузер может их проигнорировать, приоритетно используя свои внутренние настройки (размер бумаги, поля, масштаб «по умолчанию»).
Рассмотрим по шагам, как решить эту проблему:
Параметры страницы непосредственно в пользовательском сеансе веб-клиента и пересохранить их. Это принудительно обновляет настройки отображения для текущей сессии браузера.Пользователи часто замечают, что при сохранении табличного документа из веб-клиента в формат .doc или .docx, текст в ячейках может обрезаться после нескольких строк. Посмотрим на причину этой ситуации:
При конвертации из 1С в Word для строк таблицы часто устанавливается свойство «Точная высота». 1С рассчитывает высоту строки на основе экранного разрешения и шрифтов, используемых на сервере. Однако шрифтовые движки Word и 1С отличаются. В результате текст в Word может занимать на пару пикселей больше места, чем рассчитала 1С, и из-за настройки «Точная высота» все, что не поместилось, просто скрывается за границей ячейки.
Чтобы этого избежать, проанализируем настройки ячейки в 1С. Рекомендуется устанавливать свойство Автовысота строки в значение Истина, однако даже это не всегда гарантирует успех при экспорте. В самом документе Word проблему можно решить, выделив таблицу и установив в свойствах строк Высота: Авто.
Если вы разрабатываете внешнюю печатную форму, мы рекомендуем явно задавать настройки выравнивания и масштаба в коде, чтобы минимизировать влияние настроек по умолчанию, которые могут быть проигнорированы веб-клиентом.
Посмотрим на пример установки свойств табличного документа:
// Устанавливаем параметры для корректного вывода в веб-клиенте
ТабДок.АвтоМасштаб = Истина;
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДок.Вывод = ИспользованиеВывода.Разрешить;
// Для ячеек с длинным текстом обязательно включаем перенос
Область = ТабДок.Область("R1C1");
Область.РазмещениеТекста = ТипРазмещенияТекстаТабличногоДокумента.Переносить;
Область.ГоризонтальноеПоложение = ГоризонтальноеПоложение.ПоШирине;
Важный нюанс: В версии платформы 8.3.19 наблюдались специфические баги рендеринга, которые были частично исправлены в более поздних релизах (8.3.20 и выше). Если вы используете версию 8.3.19.1264, как в рассматриваемом случае, и сталкиваетесь с тем, что параметры страницы игнорируются, проверьте настройки в самом браузере. Иногда очистка кэша браузера или смена движка (например, с Chrome на Firefox) помогает выявить, является ли проблема ошибкой платформы или спецификой конкретного браузерного окружения.
Для корректного отображения ТабличногоДокумента в веб-клиенте необходимо придерживаться следующих правил:
РазмещениеТекста.Переносить для ячеек с выравниванием По ширине.По ширине страницы игнорируется, следует зайти в Файл - Параметры страницы в веб-интерфейсе и убедиться, что настройки применены.PDF.Соблюдение этих рекомендаций позволит добиться идентичного отображения печатных форм во всех типах клиентов 1С.