Каталог звітів і обробок для 1с

У чому проблема з двостороннім друком?

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

Каталог звітів і обробок для 1с

Однак, цього параметра досить тільки коли ми виводимо на друк одну друковану форму одного документа. У разі ж, коли їх кілька (друкуємо відразу два і більше документів) другий документ починає друкуватися на зворотному боці аркуша, на якому закінчився перший документ (якщо перший документ містив непарне кількість сторінок). Знову ж правильним, звичайно ж, є друк кожного нового документа на новому аркуші.

Розберемо ситуацію на прикладі. Є завдання, за завданням Замовника потрібно розробити нову друковану форму документа "Реалізація товарів і послуг" (РТУ) з можливістю друку з двох сторін. Причому користувач повинен мати можливість виділити кілька документів реалізації і роздрукувати їх комплектом.

Як відомо, в такому випадку перше що потрібно зробити, це створити нову обробку, яка буде "Зовнішньої друкованої формою" (ВПФ) документа РТУ.

1. для створення ВПФ документа;

2. для коректної роботи двосторонньої друку.

1. Створення простої Зовнішньої друкованої форми (її можна завантажити внизу статті):

Як буде виглядати друкована форма:

Каталог звітів і обробок для 1с

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

Каталог звітів і обробок для 1с

Далі в "Модулі об'єкта" маємо процедуру і дві функції:

- процедура Друк () обов'язково повинна бути у ВПФ. Вона викликається при формуванні друкованої форм документа (документів). Параметр МассівОб'ектов - це Масив посилань на документи, за якими ми формуємо ВПФ. Параметр Об'ектиПечаті - це СпісокЗначеній, також містить посилання на документи.

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

- Функція СведеніяОВнешнейОбработке () - остання функція нашого МодуляОб'екта. Вона є обов'язковою і стандартна для ВПФ. Містить параметри, що дозволяють додати її в "Додаткові звіти і обробки" (меню Адміністрування - Друковані форми, звіти, обробки).

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

2. Що необхідно додати для коректної двостороннього друку.

У функцію СформіроватьПечатнуюФорму () додаємо наступний ключовий фрагмент коду:

- вставити його потрібно перед кінцем циклу по "Масиву об'єктів":

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

Каталог звітів і обробок для 1с
Початок другого документа:

Каталог звітів і обробок для 1с

Розберемо параметри Процедури УправленіеПечатью.ЗадатьОбластьПечатіДокумента ():

Сама процедура проста і невелика, можете подивитися її самостійно в загальному модулі УправленіеПечатью, щоб не перевантажувати статтю зайвим.

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