Что делать, если в 1С не печатается только один вид документа (на примере ТОРГ-12)?

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

В практике работы с программами на платформе 1С:Предприятие 8.3 администраторы и программисты иногда сталкиваются с «мистической» проблемой: у конкретного пользователя перестает печататься ровно один вид документа (например, ТОРГ-12), в то время как счета-фактуры, накладные и другие формы из той же базы выводятся на принтер без проблем. Ситуация осложняется тем, что видимых ошибок программа не выдает — просто «пролетает» полоса загрузки отправки на печать, но принтер молчит, а сохранение в PDF не создает файл.

В этой статье мы подробно разберем, почему возникает такая ситуация, как 1С хранит настройки печати и какие шаги необходимо предпринять, чтобы восстановить работоспособность системы. Мы проанализируем как программные методы решения, так и способы исправления через стандартный интерфейс конфигураций на базе БСП (Библиотеки стандартных подсистем), таких как ERP, УТ 11 или КА.

Почему возникает избирательный отказ в печати?

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

  1. Имя принтера, который использовался в прошлый раз.
  2. Масштаб страницы (например, «по ширине страницы»).
  3. Размеры полей, ориентация (портрет/ландшафт).
  4. Количество копий.

Проблема возникает в тот момент, когда эти данные «бьются» или становятся некорректными. Например, если в прошлый раз документ был напечатан на принтере, подключенном через RDP-сессию (перенаправленный принтер), 1С запоминает его имя вида HP LaserJet (redirected 2). В новом сеансе номер перенаправления меняется, и при попытке распечатать именно ТОРГ-12 система обращается к несуществующему устройству. При этом другие документы, для которых настройки еще не зафиксированы или были сброшены, печатаются нормально.

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

Способ 1: Очистка параметров печати через интерфейс (для пользователей и админов)

Прежде чем приступать к написанию кода, рассмотрим наиболее гуманный способ решения проблемы, доступный в современных конфигурациях (ERP 2.4, УТ 11, БП 3.0). Разработчики предусмотрели инструменты для управления пользовательскими настройками.

Выполним следующие шаги:

  1. Перейдем в раздел Администрирование — Обслуживание (или «Поддержка и обслуживание»).
  2. Найдем подраздел Персональные настройки пользователей.
  3. Выберем пункт Настройки пользователей.
  4. В открывшемся списке выберем нужного сотрудника, у которого возникла проблема.
  5. Перейдем на вкладку Настройки печати.
  6. В списке настроек найдем строку, которая соответствует нашему документу (например, «ТОРГ-12» или «Товарная накладная»).
  7. Нажмем кнопку Очистить (или удалим конкретную строку клавишей Del).

Этот метод хорош тем, что он удаляет только проблемную привязку, не затрагивая настройки других документов и не требуя монопольного доступа к базе или перезагрузки сервера.

Способ 2: Программное удаление настроек из хранилища

Если интерфейсные методы не помогают или вы хотите автоматизировать процесс (например, создать обработку для быстрой «починки» печати), воспользуемся объектом ХранилищеСистемныхНастроек. Рассмотрим ситуацию на примере платформы 8.3.10, которая упоминалась в исходной проблеме.

Проанализируем программный код, который позволяет принудительно удалить записи о параметрах печати. Нам нужно знать ключ объекта, под которым сохраняются настройки. Обычно он имеет структуру Общее/НастройкиПечатиТабличногоДокумента/ПАРАМЕТРЫ_ПЕЧАТИ_ИмяФормы.

Пример кода для удаления настроек конкретной формы:


// Определяем ключ настройки. 
// Имя 'ПАРАМЕТРЫ_ПЕЧАТИ_ТОРГ12' может варьироваться в зависимости от конфигурации
КлючОбъекта = "Общее/НастройкиПечатиТабличногоДокумента/ПАРАМЕТРЫ_ПЕЧАТИ_ТОРГ12";

// Удаляем настройку для текущего пользователя
ХранилищеСистемныхНастроек.Удалить(КлючОбъекта, , ИмяПользователя());

Сообщить("Настройки печати ТОРГ-12 успешно сброшены. Попробуйте напечатать документ снова.");

Важный момент: Чтобы точно узнать имя параметра, можно заглянуть в модуль менеджера документа в процедуру печати. Там обычно инициализируется табличный документ и устанавливается свойство ТабДок.ИмяПараметровПечати. Именно это имя (строковое значение) подставляется в конец ключа для хранилища настроек.

Способ 3: Очистка локального кэша и временных файлов

Иногда проблема кроется глубже — на уровне файловой системы пользователя. Помимо настроек в базе данных, платформа 1С активно использует временные файлы для кэширования структур печатных форм. Если чистка ХранилищеСистемныхНастроек не помогла, следует обратить внимание на локальный кэш.

Проанализируем, где могут скрываться проблемные файлы:

  1. Стандартный кэш конфигурации: папки в %userprofile%\AppData\Local\1C\1cv8 и %userprofile%\AppData\Roaming\1C\1cv8. Их удаление — классический «совет номер один», но он помогает не всегда.
  2. Временная папка пользователя: %userprofile%\AppData\Local\Temp. 1С создает там файлы с расширением .mxl, которые могут содержать эскизы документов.

Рекомендуется закрыть сеанс 1С и полностью очистить содержимое папки Temp. Это часто помогает в случаях, когда платформа «зависает» на этапе отрисовки формы из-за невозможности перезаписать временный файл.

Дополнительные факторы: принтеры и масштаб

Выясним, какие еще внешние факторы могут блокировать печать. Обратите внимание на настройку принтера «по умолчанию» в операционной системе Windows. Если по умолчанию выбран виртуальный принтер (например, «Microsoft Print to PDF» или «OneNote») с нестандартным размером бумаги (Letter вместо A4), 1С может выдать ошибку при расчете областей печати ТОРГ-12, так как эта форма очень широкая и чувствительна к границам.

Также стоит проверить настройку масштабирования «По ширине страницы». На старых версиях платформы (8.3.10) был замечен баг: если в печатной форме слишком много колонок, алгоритм масштабирования уходил в бесконечный цикл. Попробуйте выполнить следующие действия:

Резюме и рекомендации

Подводя итог, можно составить пошаговый чек-лист для решения проблемы «не печатается только один документ»:

  1. Проверить на другом ПК: если там печатается под тем же пользователем — проблема в локальном кэше или принтерах Windows.
  2. Очистить настройки печати: через интерфейс «Персональные настройки» или программно через ХранилищеСистемныхНастроек. Это самый эффективный метод.
  3. Проверить параметры страницы: убедиться, что не установлен нулевой масштаб или некорректный принтер.
  4. Очистить временные файлы: удалить *.mxl из папки Temp.

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

← На главную