Каталог звітів і обробок для 1с
У чому проблема з двостороннім друком?
Як відомо, в настройках "Параметрів сторінки" друкованої форми є настройка "Двосторонній друк" з варіантами: "Ні", "Переворот вгору", "Переворот вліво", "Використовувати налаштування принтера".

Однак, цього параметра досить тільки коли ми виводимо на друк одну друковану форму одного документа. У разі ж, коли їх кілька (друкуємо відразу два і більше документів) другий документ починає друкуватися на зворотному боці аркуша, на якому закінчився перший документ (якщо перший документ містив непарне кількість сторінок). Знову ж правильним, звичайно ж, є друк кожного нового документа на новому аркуші.
Розберемо ситуацію на прикладі. Є завдання, за завданням Замовника потрібно розробити нову друковану форму документа "Реалізація товарів і послуг" (РТУ) з можливістю друку з двох сторін. Причому користувач повинен мати можливість виділити кілька документів реалізації і роздрукувати їх комплектом.
Як відомо, в такому випадку перше що потрібно зробити, це створити нову обробку, яка буде "Зовнішньої друкованої формою" (ВПФ) документа РТУ.
1. для створення ВПФ документа;
2. для коректної роботи двосторонньої друку.
1. Створення простої Зовнішньої друкованої форми (її можна завантажити внизу статті):
Як буде виглядати друкована форма:

Створюємо нову обробку в Конфігураторі. Меню Файл - Новий - Зовнішня обробка. У неї створюємо "Макет", наприклад, такого виду:

Далі в "Модулі об'єкта" маємо процедуру і дві функції:
- процедура Друк () обов'язково повинна бути у ВПФ. Вона викликається при формуванні друкованої форм документа (документів). Параметр МассівОб'ектов - це Масив посилань на документи, за якими ми формуємо ВПФ. Параметр Об'ектиПечаті - це СпісокЗначеній, також містить посилання на документи.
- Функція СформіроватьПечатнуюФорму () може називатися і іншим ім'ям. Викликається з процедури Друк (). Її суть в тому, щоб створити об'єкт ТаблічнийДокумент і в циклі (по документам містяться в параметрі "МассівОб'ектов") вивести в нього заповнені області "Тема" і "Рядок". В кінці функції вона повертає готовий ТаблічнийДокумент назад в Процедуру Друк ().
- Функція СведеніяОВнешнейОбработке () - остання функція нашого МодуляОб'екта. Вона є обов'язковою і стандартна для ВПФ. Містить параметри, що дозволяють додати її в "Додаткові звіти і обробки" (меню Адміністрування - Друковані форми, звіти, обробки).
Тепер запускаємо 1С: Підприємство. Додаємо ВПФ в "Додаткові звіти і обробки". Відкриваємо список документів "Реалізація товарів", виділяємо наприклад два будь-яких документа і натискаємо "Друк" - "Приклад двостороннього друку". Відкривається заповнена друкована форма по двох документах. Натискаємо велику жовту кнопку "Друк". Якщо все зроблено правильно, то на нашому принтері, що підтримує двосторонній друк, роздрукується два листа з двох сторін. Перша реалізація на перший лист не влізе (тому що рядків в таблиці 40) і закінчиться на одному боці другого аркуша. Друга реалізація на друкується на зворотному боці другого аркуша. Таким чином, ми створили ВПФ і побачили проблему двостороннього друку. Розглянемо її рішення нижче.
2. Що необхідно додати для коректної двостороннього друку.
У функцію СформіроватьПечатнуюФорму () додаємо наступний ключовий фрагмент коду:
- вставити його потрібно перед кінцем циклу по "Масиву об'єктів":
- цей фрагмент виконує виклик Процедури ЗадатьОбластьПечатіДокумента () із загального модуля УправленіеПечатью. Суть процедури в тому, щоб в переданому ТаблічномДокументе виділити іменованої областю кожен документ окремо (на скріншотах підкреслені червоним):


Розберемо параметри Процедури УправленіеПечатью.ЗадатьОбластьПечатіДокумента ():
Сама процедура проста і невелика, можете подивитися її самостійно в загальному модулі УправленіеПечатью, щоб не перевантажувати статтю зайвим.
Отримані іменовані області успішно обробляє метод Надрукувати () об'єкта ПакетОтображаемихДокументов, який в кінцевому підсумку виконується при формуванні будь-якої "Зовнішньої друкованої форми". (Розгляд, в який момент метод викликається, порахував зайвим для цієї статті.) Іменовані області служать для того, щоб відправляти друковану форму на друк покомплектно (за кожним документом окремо).