Как исправить смену ориентации страницы со второго листа при печати в 1С 7.7

Программист 1С v7.7 Бухгалтерский учет
← На главную

Многие технические специалисты, работающие с платформой 1С:Предприятие 7.7, сталкивались с неприятной особенностью: при выводе на печать многостраничного документа или нескольких копий одного документа (например, счета-фактуры) первый экземпляр выходит корректно в альбомной ориентации, а все последующие — в книжной. Эта проблема носит системный характер и связана с тем, как движок печати 1С взаимодействует с реестром Windows и драйверами принтера. Разберем подробно, почему это происходит и как решить задачу несколькими способами.

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

Основной виновник такого поведения — механизм Moxel. Это внутренний компонент 1С 7.7, отвечающий за формирование и отображение табличных документов. Для оптимизации работы пользователя 1С сохраняет настройки печати для каждой конкретной формы и каждого принтера в реестре Windows. Со временем в этих ветках накапливаются некорректные параметры или возникают конфликты между программно заданными настройками в коде (ПараметрыСтраницы) и теми, что хранятся в «памяти» системы. В результате после печати первого листа движок может «сбросить» настройки к значениям по умолчанию, которые он берет из своей закэшированной ветки или из настроек принтера в Windows.

Способ 1. Очистка настроек печати в реестре (Moxel)

Это самый эффективный и часто используемый метод. Нам необходимо удалить ветку реестра, в которой 1С хранит индивидуальные настройки таблиц для пользователя. Проанализируем, как это сделать правильно.

Алгоритм действий через редактор реестра:

  1. Закройте программу 1С.
  2. Запустите редактор реестра regedit (желательно от имени того пользователя, у которого наблюдается проблема).
  3. Перейдите в ветку: HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\<Имя_Вашей_Базы>\V7\<Имя_Пользователя_1С>\Moxel.
  4. Удалите полностью раздел Moxel или подразделы внутри него, относящиеся к конкретному принтеру.

Важный нюанс: если у пользователя нет прав на запуск regedit, мы можем воспользоваться автоматизированным способом. Создадим простой batch-файл (с расширением .bat) и выполним его на рабочем месте пользователя:


reg delete "HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\<ИмяБазы>\V7\<ИмяПользователя>\Moxel" /f

После перезапуска 1С программа заново создаст чистые настройки в реестре, и ориентация страниц должна прийти в норму.

Способ 2. Программное управление настройками в коде (Опции)

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

В коде формирования печатной формы найдем место, где определяется объект Таблица, и добавим следующие строки:


// Устанавливаем альбомную ориентацию (2) и масштаб по ширине листа (1)
Таб.ПараметрыСтраницы(2, 1, , 0, 0, 0, 0, 0, 0, 1, , );

// Используем метод Опции для задания уникального ключа сохранения настроек
// Пятый параметр - "ИмяНастройки" - должен быть уникальным для этого отчета
Таб.Опции(0, 0, 0, 0, "ПечатьСчетФактуры_Альбом");

Использование уникального имени в методе Опции заставляет 1С сохранять настройки в отдельную подветку реестра. Это предотвращает ситуацию, когда настройки от одного документа (например, книжного «Приходного кассового ордера») влияют на «Счет-фактуру».

Способ 3. Перерегистрация базы в списке 1С

Выясним простой пользовательский способ, который не требует прав администратора или навыков программирования. Иногда помогает простое удаление пути к информационной базе из окна запуска 1С.

  1. Откройте окно запуска 1С.
  2. Выделите нужную базу и нажмите кнопку «Удалить» (это не удалит данные, только запись о базе в списке).
  3. Закройте окно запуска.
  4. Снова откройте окно запуска и добавьте базу заново, указав путь к каталогу данных.

При таком действии 1С создает в реестре новую ветку для этой базы (с новым GUID или порядковым номером), и старые «битые» настройки печати перестают подтягиваться.

Способ 4. Настройка драйверов и системных параметров принтера

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

  1. Тип драйвера: 1С 7.7 лучше всего работает с драйверами PCL5 или PCL6. Современные драйверы PostScript (PS) или универсальные драйверы печати (Universal Print Driver) могут некорректно обрабатывать команды смены ориентации, поступающие от старых приложений.
  2. Системные настройки: Зайдите в «Панель управления» — «Устройства и принтеры». Найдите нужный принтер, перейдите в «Настройки печати» и установите там по умолчанию «Альбомную» ориентацию. Если 1С «сбрасывает» параметры, она вернется к системным настройкам, которые теперь совпадают с требуемыми.
  3. Имя принтера: Убедитесь, что имя принтера не слишком длинное. В практике 1С 7.7 встречались случаи, когда при длине имени принтера более 31 символа параметры страницы передавались с ошибками.

Способ 5. Особенности работы в терминальном режиме (RDP)

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

Таким образом, мы рассмотрели комплексный подход к решению проблемы. Начинать всегда стоит с самого простого — очистки ветки Moxel в реестре, так как в 90% случаев это полностью устраняет дефект печати второго листа.

← На главную