Как изменить порядок печатных форм при печати комплекта документов с настройкой в 1С

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

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

Однако при работе с крупными торговыми сетями и распределительными центрами часто предъявляются жесткие требования к физической раскладке бумажного пакета. Например, первой обязательно должна идти счет-фактура или УПД, затем товарная накладная ТОРГ-12, далее транспортная накладная, справка к ТТН и сертификаты. По умолчанию строки в форме настройки комплекта отсортированы по наименованию либо по порядку регистрации команд, и стандартный интерфейс не позволяет пользователю свободно менять их местами. Разберем, как устроен этот механизм и как настроить произвольную последовательность вывода печатных форм.

Архитектура механизма пакетной печати в БСП

Проанализируем внутреннее устройство подсистемы печати:

  1. Формирование перечня: В модуле менеджера объекта в процедуре ДобавитьКомандыПечати регистрируются доступные команды. При открытии формы настройки комплекта БСП собирает все доступные для данного документа макеты в таблицу КомплектПечатныхФорм.
  2. Хранение настроек: Выбранный состав, количество копий и установленный порядок строк сохраняются в регистре сведений НастройкиПечатиОбъектов в разрезе текущего пользователя и типа документа.
  3. Формирование выходного потока: При нажатии кнопки печати программа последовательно обходит строки сохраненного комплекта сверху вниз. В таком же порядке сформированные табличные документы помещаются в коллекцию и выводятся на печать или в окно предварительного просмотра.

Таким образом, физическая последовательность вывода листов на принтер напрямую зависит от положения строк в таблице формы настройки.

Решение 1. Включение интерактивного изменения порядка строк через расширение

Рассмотрим самый быстрый и безопасный способ, не требующий снятия конфигурации с поддержки. Так как итоговый порядок печати полностью зависит от порядка строк в табличной части формы, достаточно разрешить пользователю перемещать строки перетаскиванием (Drag-and-Drop) или кнопками.

Разберем по шагам, как это реализовать с помощью расширения конфигурации:

  1. Создадим или откроем существующее расширение конфигурации с режимом совместимости, соответствующим основной конфигурации.
  2. Найдем в основной конфигурации форму настройки комплекта печати. В зависимости от версии БСП она расположена в регистре сведений НастройкиПечатиОбъектов (форма НастройкаПечатиКомплекта) либо в общих формах подсистемы печати.
  3. Добавим указанную форму в расширение.
  4. В дереве элементов формы расширения выделим таблицу формы, отображающую реквизит КомплектПечатныхФорм.
  5. В палитре свойств таблицы найдем свойство ИзменятьПорядокСтрок (ChangeRowOrder) и установим для него значение Истина.
  6. При необходимости включим отображение стандартных кнопок перемещения строк (команды «Переместить вверх» и «Переместить вниз») в командной панели таблицы.
  7. Применим расширение к информационной базе.

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

Решение 2. Программное управление порядком через процедуру регистрации команд

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

В процедуре ДобавитьКомандыПечати модуля менеджера для каждой команды можно управлять очередностью при помощи свойства Порядок структуры параметров команды:


// В процедуре ДобавитьКомандыПечати модуля менеджера документа
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "СчетФактура";
КомандаПечати.Представление = НСтр("ru = 'Счет-фактура'");
КомандаПечати.Порядок = 10;

КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "ТОРГ12";
КомандаПечати.Представление = НСтр("ru = 'ТОРГ-12 (Товарная накладная)'");
КомандаПечати.Порядок = 20;

При первичной инициализации комплекта БСП разместит команды в таблице в соответствии с их числовым весом в реквизите Порядок.

Решение 3. Создание внешнего рабочего места или пакетной обработки

Если для разных контрагентов (например, различных торговых сетей) требуются принципиально разные составы и последовательности пакетов документов, ручной перенастройки перед каждой печатью может быть недостаточно. В таких ситуациях рассмотрим создание отдельного рабочего места (АРМ логиста или оператора отгрузки) либо внешней печатной формы, объединяющей несколько макетов.

В кодовой части обработчика пакетной печати программно формируется массив нужных печатных форм в строго определенном порядке:


// Пример программного формирования пакета в требуемом порядке
КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("СчетФактура,ТОРГ12,СправкаТТН");

// Формирование каждой печатной формы в нужной очередности
ПечатьСчетовФактур(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
ПечатьТОРГ12(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
ПечатьСопроводительныхДокументов(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);

// Вывод сформированной коллекции в итоговый пакет
УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм, ОбъектыПечати);

Такой подход позволяет дополнительно привязать состав и порядок печатаемых форм к договору или дополнительному реквизиту контрагента, полностью исключив влияние человеческого фактора при комплектации документов для отгрузки.

Важные нюансы при работе с комплектами печати

Выясним особенности и возможные подводные камни при эксплуатации пакетной печати:

  1. Печать покомплектно: При одновременной печати для нескольких документов из списка убедитесь, что включен режим ПечатьПоКомплектно. В этом случае принтер выдаст сначала полный сформированный набор для первой накладной (в установленном порядке), а затем перейдет ко второй. При отключенном режиме сначала распечатаются первые формы всех накладных, затем вторые, что нарушит целостность комплектов.
  2. Сброс персональных настроек: Если после обновления конфигурации или состава макетов порядок строк вернулся к исходному, проверьте записи регистра сведений НастройкиПечатиОбъектов для конкретного пользователя. При изменении идентификаторов команд настройки комплекта могут сбрасываться до значений по умолчанию.
  3. Интерактивные параметры: Печатные формы, требующие обязательного ручного ввода параметров во всплывающих диалогах, не подходят для автоматической пакетной печати и должны быть предварительно адаптированы для работы с параметрами по умолчанию.
← На главную