Почему в PDF-файлах из 1С выводятся кракозябры и как это исправить?

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

При формировании и отправке печатных форм из 1С в формате PDF пользователи часто сталкиваются с неприятной проблемой: вместо привычного кириллического текста в документе отображаются непонятные символы, квадраты, знаки вопроса или «кракозябры». Особенно остро эта проблема проявляется при обновлении операционной системы до Windows 10 или Windows 11, а также при массовой рассылке документов контрагентам, которые открывают файлы через обычные веб-браузеры.

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

Почему в PDF появляются кракозябры? Выясняем причину

Главная техническая причина искажения текста заключается в отсутствии внедрения шрифтов (Font Embedding) при сохранении табличного документа средствами платформы 1С по умолчанию.

Когда мы сохраняем печатную форму в стандартный PDF, платформа 1С записывает в файл только ссылки на используемые шрифты (например, Arial, Calibri или Times New Roman), но не упаковывает сами файлы шрифтов внутрь документа. Дальнейшее отображение текста полностью зависит от программы, в которой открывается файл:

  1. Специализированные просмотрщики (такие как Adobe Acrobat Reader или Foxit Reader) имеют мощные встроенные библиотеки. Если они не находят нужный шрифт в самом файле, они автоматически подставляют локальный аналог из операционной системы и корректно сопоставляют кодовые таблицы. Поэтому в них документ отображается правильно.
  2. Встроенные просмотрщики современных браузеров (Google Chrome, Microsoft Edge, Яндекс.Браузер) используют упрощенные PDF-движки. При отсутствии внедренных шрифтов и таблицы соответствия символов (ToUnicode) они не могут сопоставить символы кодировки, из-за чего пользователь видит нечитаемые иероглифы.

Переход на Windows 10 усугубляет ситуацию из-за обновленных механизмов работы с системными шрифтами GDI+ и измененных системных кодировок по умолчанию.

---

Способ 1. Принудительное внедрение шрифтов через формат PDF/A (Решение для разработчиков 1С)

Если мы хотим, чтобы отправленные из 1С файлы PDF гарантированно и корректно открывались на любых устройствах, в любых браузерах и почтовых клиентах, необходимо заставить платформу внедрять шрифты прямо в тело файла. Для этого вместо стандартного формата PDF следует использовать международные архивные стандарты семейства PDF/A.

Спецификация стандартов PDF/A на уровне правил требует обязательного внедрения абсолютно всех используемых в документе шрифтов. Файл при этом станет весить немного больше, но проблема с отображением кириллицы исчезнет навсегда.

Рассмотрим пример кода, который необходимо использовать при программном сохранении табличного документа:


// Создаем объект табличного документа
ТабДок = Новый ТабличныйДокумент;
// ... (здесь происходит заполнение и формирование печатной формы) ...

// Путь для сохранения файла
ПутьКФайлу = "C:\Temp\Invoice.pdf";

// Вместо стандартного ТипФайлаТабличногоДокумента.PDF
// используем формат PDF/A-1, который принудительно внедрит шрифты
ТабДок.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.PDF_A_1);

Платформа 1С поддерживает несколько вариантов этого стандарта:

Для решения проблемы с кракозябрами достаточно использовать ТипФайлаТабличногоДокумента.PDF_A_1. Для дальнейшей модификации готовых файлов можно использовать инструмент для программного нанесения штампов и текста на PDF-страницы штатными средствами платформы.

---

Способ 2. Отключение бета-версии UTF-8 в Windows 10/11 (Решение для администраторов)

Очень часто искажение кодировки при экспорте документов из 1С происходит из-за одной скрытой настройки региональных стандартов Windows. В новых версиях Windows 10 и 11 по умолчанию может быть активирована экспериментальная поддержка UTF-8, которая нарушает работу механизмов генерации файлов в 1С.

Проанализируем, как ее отключить по шагам:

  1. Откройте классическую Панель управления на компьютере, где выполняется сохранение документов (или на сервере, если база клиент-серверная).
  2. Перейдите в раздел «Региональные стандарты» (или «Регион»).
  3. В открывшемся окне перейдите на вкладку «Дополнительно».
  4. Найдите блок «Язык программ, не поддерживающих Юникод» и нажмите кнопку «Изменить язык системы...».
  5. В появившемся окне найдите опцию «Бета-версия: Использовать Unicode UTF-8 для поддержки языка во всем мире».
  6. Если напротив этой опции стоит галочка — обязательно снимите её.
  7. Нажмите «ОК» и перезагрузите компьютер для применения изменений.

---

Способ 3. Исправление кодовых страниц в реестре Windows (Registry Fix)

Если предыдущие шаги не помогли, можно прибегнуть к проверенному системному трюку. Он заставляет операционную систему принудительно обрабатывать западноевропейскую кодировку (ANSI 1252), которую часто ошибочно используют генераторы PDF, как кириллическую (ANSI 1251).

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

  1. Нажмите комбинацию клавиш Win + R, введите команду regedit и нажмите Enter для запуска Редактора реестра.
  2. Перейдите по следующему системному пути:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
  3. В правом списке найдите строковый параметр с именем «1252».
  4. Дважды кликните по нему и измените его значение с оригинального c_1252.nls на c_1251.nls.
  5. Нажмите «ОК» и закройте редактор реестра.
  6. Перезагрузите операционную систему. После перезапуска Windows начнет транслировать все шрифты западноевропейской разметки в понятную для браузеров кириллицу.

---

Способ 4. Проверка прав доступа и установка шрифтов на сервере 1С

Если база данных работает в клиент-серверном режиме, а отправка почты и генерация PDF происходят в фоновом задании на сервере, кодировка может «слетать» из-за банального отсутствия прав доступа к системным шрифтам у службы сервера 1С.

Выясним, как настроить серверную часть:

---

Способ 5. Использование специализированного ПО и виртуальных принтеров

Если вам нужно срочно отправить или открыть документ, а времени на изменение кода или настроек реестра нет, воспользуйтесь обходными путями, которые гарантируют корректный результат:

  1. Смена программы просмотра по умолчанию: Порекомендуйте клиентам или сотрудникам открывать полученные PDF-файлы не через браузер Microsoft Edge или Chrome, а через бесплатные программы Adobe Acrobat Reader или Foxit PDF Reader. В них текст отобразится корректно.
  2. Печать через виртуальный принтер: Вместо использования штатной функции 1С «Сохранить как...» отправьте документ на обычную печать, выбрав в списке доступных принтеров виртуальный принтер Microsoft Print to PDF или сторонний PDFCreator. Созданный таким образом файл гарантированно «запечатает» все шрифты в тело документа, и он без проблем откроется в любом веб-браузере.

Применяя данные методы в комплексе, мы сможем полностью избавить пользователей от проблемы с отображением кракозябр при формировании PDF-документов в 1С.

← На главную