В процессе работы с платформой 1С:Предприятие 8.3 (особенно версий 8.3.24, 8.3.25 и 8.3.27) пользователи часто сталкиваются с необъяснимым поведением табличных документов. Суть проблемы заключается в следующем: пользователь открывает печатную форму, вносит в нее ручные правки (например, меняет номер документа, удаляет подписи или корректирует суммы), нажимает на кнопку печати или сохранения в PDF, но на выходе получает документ в его первоначальном виде, без учета внесенных изменений. Обычная очистка кэша конфигурации помогает лишь временно, после чего проблема возвращается.
В данной статье мы подробно разберем, почему возникает этот программный сбой, проанализируем механизмы работы платформы с графикой и предложим пошаговую инструкцию по окончательному решению проблемы.
Прежде чем переходить к сложным системным настройкам, проанализируем самый простой сценарий. Платформа 1С воспринимает данные в ячейке как измененные только после того, как фокус ввода покинул эту ячейку. Если пользователь внес правку и, оставив курсор мигающим в поле, сразу нажал кнопку Печать на панели инструментов, платформа может не успеть зафиксировать состояние ТабличныйДокумент.
Рассмотрим порядок действий для исключения этой причины:
Enter или выделите любую другую ячейку мышью.Если даже при строгом соблюдении этого правила изменения пропадают, значит, причина кроется глубже — в механизмах рендеринга и кэширования платформы.
Начиная с последних релизов ветки 8.3.24, компания 1С внедрила обновленный движок отрисовки форм и табличных документов. В некоторых случаях, особенно при работе через удаленный рабочий стол (RDP) или на компьютерах со специфическими драйверами видеокарт, аппаратное ускорение графики начинает конфликтовать с процессом формирования печатного потока. В результате визуальное отображение на экране «отрывается» от реального содержимого объекта в памяти.
Выясним, как отключить этот механизм для проверки. Нам необходимо запустить информационную базу с дополнительным параметром:
/NoDirectRendering
Этот параметр заставляет 1С использовать программный рендеринг вместо аппаратного. После запуска с этим ключом проанализируйте поведение печати. Если правки начали сохраняться, значит, проблема была в несовместимости видеодрайвера и нового графического движка платформы.
Платформа 1С хранит индивидуальные настройки принтеров, полей и масштабирования для каждого пользователя в реестре Windows. Иногда эти данные повреждаются, что приводит к тому, что 1С «подтягивает» устаревшие параметры или некорректно связывает экранную форму со спулером печати. Особенно часто это проявляется в конфигурациях на базе БСП (например, БИТ.ФИНАНС или Бухгалтерия предприятия), где используется общая форма ПечатьДокументов.
Для исправления ситуации выполним очистку соответствующей ветки реестра:
regedit).HKEY_CURRENT_USER\Software\1C\1Cv8\3.0\Common\PrintSettings
PrintSettings_old).При следующем запуске 1С создаст чистые настройки печати, что может восстановить корректную передачу измененного макета на принтер.
Когда вы открываете печатную форму, 1С создает временные файлы во вложенных папках профиля пользователя. В частности, для табличных документов используются файлы с расширением .mxl и временные объекты в каталоге V8Search. Если права доступа к папке %TEMP% ограничены или антивирус блокирует изменение файлов в момент отправки на печать, система может подставить старую версию временного файла.
Проанализируем шаги по глубокой очистке:
%TEMP% в сессии пользователя.%AppData%\1C\1cv8%LocalAppData%\1C\1cv8splwow64.exe. Это системная служба Windows, отвечающая за печать из 32-битных приложений в 64-битной системе. Иногда она удерживает временные файлы 1С, не давая платформе обновить их содержимое перед печатью. В таком случае помогает завершение процесса splwow64.exe через диспетчер задач.Если проблема наблюдается только при использовании внешних печатных форм, реализованных через БСП, стоит проверить уникальность их идентификаторов. В практике программирования 1С бывают случаи, когда имя или синоним внешней обработки совпадает с именем типовой формы внутри конфигурации.
Разберем, как это проверить:
_Новая).Современные версии платформы очень чувствительны к настройкам масштабирования экрана в Windows (например, 125% или 150%). При формировании PDF-файла или отправке на печать 1С пересчитывает координаты каждой ячейки. Если в макете используются редкие шрифты или нестандартный масштаб, при пересчете координат правки в ячейках могут «пропасть» из-за ошибки округления или наложения слоев отрисовки.
Рекомендуется установить масштаб 100% в настройках экрана и проверить результат. Также попробуйте выделить все ячейки в печатной форме (Ctrl+A) и принудительно установить стандартный шрифт (например, Arial или Tahoma) перед печатью. Если это помогло, необходимо внести изменения в макет печатной формы в конфигураторе или через пользовательский макет.
Проблема «исчезающих правок» чаще всего является следствием некорректной работы нового графического движка платформы 8.3.27 в сочетании с перегруженным кэшем настроек печати. Наиболее эффективным решением в большинстве случаев является использование ключа /NoDirectRendering и очистка ветки реестра PrintSettings. Помните, что печатная форма — это динамический объект, и любые задержки в синхронизации между памятью приложения и временными файлами на диске приводят к потере внесенных данных.