Як друкувати правильні накладні
Необхідно вивести на друк останню сторінку накладної так, щоб туди потрапила хоча б один рядок табличної частини документа.
Для початку трохи термінології. Для тих, хто працює з V7 давно, це будуть очевидні речі, а от новачкам це допоможе краще зрозуміти, про що йде мова. Особисто для мене спочатку був повним одкровенням, скажімо, термін "підвал". Та й взагалі, на початку будь-якої технічної статті покладено визначатися з термінологією.
Отже:- ШАПКА # 150; частина друкованої форми документа, розташована перед рядками табличній частині, в яких виводиться інформація про склад накладної, цінах, кількості та ін. Шапка включає в себе шапку документа, де виводяться загальні реквізити документа (клієнт, склад, дата і номер документа, підстава та ін .), і заголовок табличній частині, в якому виводяться назви стовпців табличній частині.
Є як мінімум два варіанти дотримання цієї умови, назвемо їх програмний і технологічний.
Приклад використання першого варіанта # 150; стандартна методика формування друкованої форми ТОРГ-12 в типових конфігураціях фірми 1С. Основна ідея # 150; використання рядків і сторінки фіксованої висоти. При цьому на сторінку поміщається фіксовану кількість рядків.
Методика розрахунку такої накладної дуже проста.- За основну одиницю висоти приймається 1 рядок табличної частини.
- Визначаються основні параметри: висота шапки (10 рядків), висота підвалу (8 рядків), висота сторінки (22 рядки)
- Далі для кожної сторінки визначається кількість рядків, які на ній помістяться. Для першої сторінки враховується висота шапки.
- Якщо на чергову сторінку поміщаються всі залишилися рядки, то перевіряється, а чи поміститься на цю сторінку підвал. Якщо немає, то останній рядок переноситься на останню сторінку разом з підвалом.
- накладна виводиться тільки на фіксований формат аркуша: тогр-12 розрахував тільки на формат А4 альбомного формату. Якщо ми захочемо вивести накладну ТОРГ-12 в портретному вигляді і виствім опцію стиснення таблиці по ширині листа, то накладна буде виводитися тільки у верхній половині станиці; якщо ж ми захочемо виконати цю операцію при виведенні друкованої форми рахунки-фактури, то сторінка буде заповнена повністю.
Суть даного варіанту полягає в використанні властивостей рядків таблиці, що впливають на їх взаємне розташування. Дані властивості встановлюються при роботі в конфігураторі. Для цього необхідно відкрити таблицю з формою накладної, виділити рядок і вибрати в меню "Таблиця - Положення на сторінці" потрібні опції.
Для кожного рядка можна встановити або зняти два властивості:- З нової сторінки. Установка даного властивості вказує на те, що перед виведенням цього рядка в результуючу таблицю буде вставлений роздільник сторінок.
- Разом з наступним. Вказує на необхідність прикріплення цього рядка до наступної. Прикріплені рядки можуть виводитися тільки на одній сторінці.
Візьмемо, наприклад, друковану форму рахунки-фактури. Відкриємо її в конфігураторі. Ми бачимо, що вона має три секції: "шапка", "рядок" і "підвал".
Дня початку зробимо так, щоб підвал виводився на одній сторінці. Для цього виділимо всі рядки підвалу, виберемо "Таблиця - Положення на сторінці" і встановимо властивість "Разом з наступним".
Тепер скопіюємо секцію "рядок" на нове місце. До речі, якщо секція "рядок" складається з декількох рядків (sorry за тавтологію), то їх теж рекомендується скріпити. Для цього необхідно для всіх рядків секції, крім останньої, встановити властивість "Разом з наступним". Для останнього рядка це властивість необхідно зняти, щоб виключити її прикріплення до наступного рядка.
Отже, ми скопіювали секцію "рядок" на нове місце, скопійоване рядок об'єднаємо в нову секцію "останній рядок" і встановимо цьому рядку властивість "Разом з наступним". Якщо в секції кілька рядків, то об'єднуємо в нову секцію і встановлюємо властивість у всіх рядків. Це дозволить прикріпити останній рядок до першому рядку підвалу.
І, нарешті, останній крок. Трохи міняємо процедуру друку накладної. У циклі виведення рядків документа необхідно внести наступні зміни:
// Замість:
Таб.ВивестіСекцію ( "Рядок");
// Необхідно:
якщо НомСтрокі <ВсегоСтрок Тогда
Таб.ВивестіСекцію ( "Рядок");
інакше
Таб.ВивестіСекцію ( "ПоследняяСтрока");
КонецЕсли;
Як бачите, для реалізації даного варіанту необхідні незначні програмні доопрацювання, в основному завдання вирішується правильною підготовкою табличній форми документа. Тому даний варіант і названий технологічним.
Основна перевага такого варіанту # 150; простота. При цьому документ зберігає всі старі властивості, наприклад можливість друку на аркушах різного формату без яких би то ні було доробок.- Як друкувати правильні звіти?