Почему в 1С при печати не работает «разобрать по копиям» и как это исправить?

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

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

Шаг 1. Перезагрузка профиля пользователя или очистка настроек 1С

Зачастую «глюк» с печатью сохраняется внутри профиля пользователя в базе данных или настройках Windows. Если проблема наблюдается только у одного сотрудника, первым делом попробуем исключить влияние «битых» настроек.

  1. Если работа ведется в терминале, попробуйте временно переименовать или удалить профиль пользователя в системе, чтобы Windows создал новый чистый профиль при входе.
  2. Если проблема локализована внутри конкретной базы 1С, попробуйте сбросить настройки печати. В 1С 8.2/8.3 настройки формы зачастую хранятся в кэше или метаданных пользователя.
  3. В 1С 7.7 это решается кардинально: попробуйте удалить ветку реестра, отвечающую за настройки печати. Перейдите в редактор реестра regedit и найдите путь, содержащий Moxel (обычно это HKCU\Software\1C\1Cv7\7.7\...). Удаление этой ветки заставит систему пересоздать настройки печати при следующем запуске.

Шаг 2. Использование настроек предварительного просмотра

Иногда настройки печати «застревают» в неверном состоянии. Мы можем попробовать принудительно перезаписать их:

  1. Откройте нужный документ и перейдите в Предварительный просмотр.
  2. Зайдите в настройки параметров страницы или настройки печати.
  3. Измените любые параметры, например, слегка увеличьте или уменьшите отступы от краев листа.
  4. Выполните печать документа. Этот процесс заставит 1С обновить текущие настройки пользователя для данного принтера.
  5. После успешной печати вы можете вернуть прежние значения отступов.

Шаг 3. Программный обход диалогового окна печати для 1С 7.7

Для пользователей платформы 1С 7.7 ситуация сложнее, так как стандартное окно параметров печати часто сбрасывает флаг Collate (разбор по копиям) в значение 0. В современных 64-битных ОС это стандартное поведение системы. Чтобы решить проблему, нам нужно отправлять документ на печать программно, минуя стандартный интерфейс.

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


// Пример программной отправки на печать для 1С 7.7
Процедура ПриОткрытии()
    // Загружаем компоненту для работы с табличным документом
    Если ЗагрузитьВнешнююКомпоненту("SpreadSheet.dll") = 0 Тогда
        Сообщить("Не удалось загрузить компоненту");
        Возврат;
    КонецЕсли;

    ТабДок = СоздатьОбъект("ТабличныйДокумент");
    ТабДок.ЗагрузитьИзТаблицы(Таб); // где Таб - ваша печатная форма
    
    ПараметрыПечати = ТабДок.ПараметрыПечати;
    ПараметрыПечати.АвтоМасштаб = 1;
    ПараметрыПечати.КоличествоКопий = 2; // Указываем нужное количество
    ПараметрыПечати.РежимПечатиКопий = 1; // 1 - это принудительный разбор по копиям
    ПараметрыПечати.Дуплекс = 1;
    
    ТабДок.Напечатать("ИмяВашегоПринтера"); 
КонецПроцедуры

Дополнительные рекомендации по системной настройке

Если программные методы не помогают, стоит обратить внимание на работу драйверов принтера в терминале:

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

← На главную