Сходи.  Вхідна група.  Матеріали.  Двері.  Замки.  Дизайн

Сходи. Вхідна група. Матеріали. Двері. Замки. Дизайн

» Друк на формі 1с. Публікації. Виведення підвалу друкованої форми до табличного документа

Друк на формі 1с. Публікації. Виведення підвалу друкованої форми до табличного документа

Колеги!

Продовжуємо тему оформлення звітів у 1С. Нещодавно у нашого клієнта виникла проблема передачі документації з 1С 8.3.

Внесення додаткової інформації в друковану форму, нумерація аркушів друку, вказівку дати, часу та звіту користувача.

Аналогічний приклад конфігурації 8.2 ми розібрали в попередньому випуску. Зараз ми розглянемо параметри друку, що дозволяють все це зробити в конфігурації 8.3.

Тим більше, що багато з них у 8.3 автоматизовано.

Отже, як можна включити зазначену вище інформацію до друку? Що потрібно у цьому випадку зробити?

Пропонуємо наш огляд варіантів, можливо, він буде корисним і Вам.

Варіант 1. Прямо із самої друкованої форми сформованого звіту або документа:

Формуєте друковану форму рахунку на оплату і викликає через гол. меню – Таблиця – Налаштування друку – Колонтитули та налаштовуєте як потрібно.
Так робиться разово для будь-якої СФОРМОВАНОЇ друкарської форми.

Налаштовуємо поля колонтитулів

Зверніть увагу на значки у лівому верхньому кутку форми:

Це по порядку: номер сторінки, кількість сторінок, дата та час. Стайте мишкою на потрібному місці верхнього або нижнього колонтитула і клацніть мишею на потрібний значок. Після натискання на кн. ОК при виведенні на друк ці дані відобразяться у друкованій формі там, де Ви вказали.

Варіант 2. Налаштовується для будь-якого друку (звітів, документів, довідок) із програми

Якщо Ви не бажаєте щоразу налаштовувати вручну колонтитули, то можна через розділ Адміністрація – Налаштування колонтитулів налаштувати загальний вигляд колонтитулів для друку.

Виглядає це так:

Тут більше можливостей для виведення інформації до друкованих форм: додаються дані «Назви звіту» та «Користувач». Це якраз наш випадок.

Вибір даних у колонтитули здійснюється, як було описано у варіанті 1, тільки замість значків ми вибираємо текстові кнопки "Час", "Дата", "Назва звіту" і т.д. Але суть від цього не змінюється. Після вказівки потрібної інформації у потрібних місцях форми налаштування зберігається.

При виведенні друкованої форми на друк усі вказані дані будуть відображатися в ній.

Варіант 3. Редагування макета в режимі користувача

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

Тому що часто буває, що доводиться використовувати комбінацію цього способу та налаштування друку, щоб досягти потрібного результату. Редагування макетів друкованих форм дозволяє нам малювати якісь потрібні нам речі прямо у макеті цієї друкованої форми.

Зміна макетів проводиться у розділі Адміністрація – Друковані форми, звіти, обробки – Макети друкованих форм.

Ось приклад редагування макета Рахунок-замовлення (документ Рахунок на оплату покупцю):

Вибираємо макет, вказуючи при вході, що його редагуватимемо і додаємо в кінець якусь текстову інформацію.

Наприклад, так:

Зберігаємо зміни та формуємо друковану форму.

І друкуємо із змінами.
Але можливості такого редагування обмежені.

Так що варіант 3 зручно використовувати для внесення інформації постійною, незмінною, все інше вимагатиме доопрацювання друкованої форми вже програмістом.

Але часто й цього буває достатньо. 🙂

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

Для того, щоб наш документ можна було роздрукувати, необхідно до нього додати відповідну кнопку. Створювати кнопку друку ми за допомогою спеціального конструктора, не заглиблююсь у написання процедур та функцій.

І так починаємо, спочатку запускаємо нашу базу відкриваємо документ і переходимо у вкладку Макети. Далі знизу натискаємо Конструктор і вибираємо Конструктор друку.

У вікні, що відкрилося, нічого не чіпаємо і кликаємо Далі.

У наступному вікні потрібно вибрати те, що буде друкуватись у шапці документа. Ми вибираємо всі три пункти: Номер, Дата, Постачальник і клацаємо далі.

Тепер потрібно вибрати те, що буде друкуватися в середині документа. Також відзначаємо всі пункти та переносимо їх у праву частину і тиснемо далі.

Тепер потрібно вказати те, що буде друкуватися в підвалі, відзначимо наприклад дату.

Тут нічого не міняємо і клацаємо ОК.

Після цього відкривається макет друку.

Тепер запускаємо 1С та перевіряємо, що в нас вийшло. Ну, по-перше, у документі має з'явитися кнопка друку.

Після натискання на неї має відкритися попередній перегляд.

Кожен електронний документ 1С може бути надрукований на папір і робиться це за допомогою друкованих форм 1С. Друковані форми складаються з іменованих блоків, наприклад Шапка, Рядок та Підвал.

Як зробити друкарську форму – вже зрозуміло. Як розбити її на блоки – також. Але як відбувається друк у 1С всієї цієї справи? А надто – як вивести не просто текст макета, а вміст електронного документа?

Ось це ми й подивимося зараз.

Підготовка макета для друку в 1С

Для початку доведеться почати з найпростішого та заповнити макет для друку у 1С статичним текстом та лініями таблиць. Адже хтось має зробити цю нудну роботу?

Розміщуємо статичний текст для друку в 1С

Спочатку непогано було б розмістити назву нашої друкованої форми. Виділимо кілька осередків у рядку, і виберемо пункт меню Таблиця/Об'єднати. В результаті кілька осередків будуть об'єднані в одну.

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

Розміщуємо оформлення макета для друку в 1С

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

Для цього оберемо комірки рядка і на панелі оберемо кнопку Кордону. Ми вибрали варіант Кордон скрізь - вона малює межі осередків відразу з усіх боків. Якщо необхідно обмежитися лише однією стороною, потрібно вибрати відповідну кнопку.

Для того, щоб лінії, якими малюються межі були не такі, як стандартні, виділіть комірки та натисніть правою кнопкою миші. У меню виберіть пункт Властивості.

У звичному вікні властивостей можна вибрати вид та колір ліній для відтворення меж.

Розміщуємо картинки та іншу мішуру для друку в 1С

Багато хто питає – а як розмістити на друкованій формі 1С щось окрім тексту? Наприклад – картинку.

А дуже просто. Мало того, скажу відразу, що штрих-код (якщо Вам потрібно його роздрукувати) також є картинкою.

Поставимо курсор на будь-яку комірку. Виберемо меню Таблиця/Малюнки. Це ціле підменю, яке дозволяє вставити на макет для друку в 1С не тільки картинку або мальований об'єкт – а й об'єкти ззовні 1С, зареєстровані на комп'ютері за допомогою COM класу (наприклад, елемент керування список, що випадає).

Для тих, хто цікавиться створенням на макеті складних конструкцій для друку в 1С, загляньте також у меню Таблиця/Налаштування друку. Тут можна встановити повторення області на кожній сторінці, колонтитули та область друку.

Як розмістити вміст електронного документа під час друку в 1С

Для розміщення на макеті під час друку у 1С вмісту електронного документа – використовується метод підстановки. Складається він із двох частин.

Частина перша. Необхідно на макеті розмістити параметри, в які Ви підставлятимете значення під час друку в 1С.

Поставимо курсор у комірку. Впишемо назву параметра (одним словом, без пробілів та іншого сміття). Далі увійдемо у властивості цього осередку (як уже говорилося вище) і виберемо Заповнення = Параметр.

Частина друга. Підстановка значень проводиться не коли Ви програмуєте в конфігураторі, а в момент друку документа в 1С. Відповідно за допомогою програмування потрібно вказати 1С, що потрібно підставити в цей параметр.

Проводиться це так:

Макет = ОтриматиМакет("НазваМакета");
облКакаято = Макет.ОтриматиОбласть("НазваОбласти");
облКакаято.Параметры.НазваПараметра = " Те, що хочу підставити з бази " ;

Як Ви бачите, ми просто отримуємо на ім'я спочатку сам макет, потім одну з його областей, а потім просто звертаємося до параметра за його назвою.

Природно, значення може бути як рядком чи цифрою, і значенням зазначеним у документі.

Як робиться друк макета в 1С

Після того, як макет готовий, настав час задуматися про програмування процесу друку в 1С.

Друк в 1С зазвичай програмується кількома процедурами, які у модулі об'єкта документа. .

Процедура Друк() зазвичай має позначку Експорт і керує печаткою документа в 1С за допомогою параметра Ім'яМакета, в якому передається, що хотілося б роздрукувати.

Для кожного варіанта макета робиться процедура Друк Ім'яМакета(), в якій прописано друк конкретного макета. Ось її ми зараз і побачимо.

Програмування друку в 1С складається із трьох пунктів.

Перед тим, як друкувати електронний документ у 1С, нам потрібно запросити його дані з бази даних. Очевидно, щоб роздрукувати документ, користувач зазвичай «входить» до нього (відкриває його форму) та натискає кнопку Друк. Тому у процедурі друку можна було б просто звертатися до реквізитів документа (що це – обговорювали тут) на ім'я.

Однак це вважається негарно, не універсально тощо. Наприклад, раптом буде використано обробку масового друку документів (чи часто такий користуються?). Тому прийнято у процедурі друку робити запит до бази даних, який запитує дані документа. Наприклад, так:

Запит = Новий Запит;
Запит.Текст = "ВИБРАТИ
Дата,
Номер,
Організація
З
Документ.Ім'яДокумента
ДЕ
Посилання = &ДокументДляДруку";
Запит.ВстановитиПараметр("ДокументДляДруку", Посилання);
Вибірка = Запит.Виконати().Вибрати();
Вибірка.Наступний();

Пункт 2. Заповнення макета для друку в 1С

Друк у 1С проводиться у табличний документ. Це спеціальний об'єкт 1С, який дозволяє виводити таблиці, на зразок Excel, на екран і на друк. Друкується, звичайно макет, точніше його області по черзі.

Відповідно, нам потрібно спочатку отримати табличний документ, потім макет. По черзі виводимо області на друк, заповнюючи параметри макету.

ТабДок = Новий Табличний Документ;
Макет = ОтриматиМакет("Ім'яМакета"); //або ОтриматиЗагальнийМакет("")

облШапка = Макет.ОтриматиОбласть("Шапка");
ТабДок.Вивести(облШапка);

облРядок = Макет.ОтриматиОбласть("Рядок");
Поки ВибіркаСтрокДокумента.Наступний() Цикл
облСтрока.Параметры.Товар = ВибіркаСторокДокумента.Товар;
ТабДок.Вивести(облРядок);
КінецьЦикл;

облШапка = Макет.ОтриматиОбласть("Подвал");
ТабДок.Вивести(облПодвал);

Пункт 2. Виведення документа на друк у 1С

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

В інших випадках можна просто використовувати типові функції об'єкта Таблічний Документ: ТабДок.