Мій бізнес – Франшизи. Рейтинги. Історія успіху. Ідеї. Робота та освіта
Пошук по сайту

Конструктор друкарських форм 1С 8.3. Конструктор зовнішніх друкованих форм NEW beta (звичайні та керовані додатки!)

Розглянемо написання найпростішої друкованої форми у 1с 8.1 - 8.2на прикладі конфігурації Бухгалтерія підприємства 2.0. Допустимо потрібно написати зовнішню друковану форму до документа: вивести основні дані документа, а також з табличної частини Товари: номенклатуру, ціну, кількість та суму.

Завантажити приклад можна по .

У конфігураторі 1C Підприємства 8створюємо зовнішню обробку ( Файл->Новий->Зовнішня обробка), задаємо ім'я, створюємо обов'язковий для зовнішньої друкованої форми реквізит ПосиланняНаОб'єктз типом ДокументПосилання.РеалізаціяТоварівПослуг.

Створення макету друкованої форми

Додаємо новий макет, тип макета залишаємо Табличний документ. На макеті створюємо три області: Шапка, Даніі Підвал. Зробити це можна виділивши потрібну кількість рядків та натиснувши меню Таблиця->Імена->Призначити ім'я (Ctrl+Shift+N).

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

В області Даністворимо параметри для виведення рядків табличної частини ( Номенклатура, цінаі т.д.), а в області Підвалдля підсумків за кількістю та сумою.

Програмування

Зайдемо в модуль об'єкта друкарської форми Дії->Відкрити модуль об'єкта.

Створимо там обов'язкову для друкованих форм експортну функцію Друк().

Функція Друк () ЕкспортКінецьФункції

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

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

Заповнимо параметри шапкиі виведемо її в табличний документ .

ОбластьШапки.Параметри.ТекстЗаголовка = +ПосиланняНаОб'єкт.Номер; ОбластьШапки.Параметри.Організація = ПосиланняНаОб'єкт.Організація; ТабДок.Вивести(ОбластьШапки);

Для того щоб отримати рядки табличної частини Товаривикористовуємо запит.

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

У параметр запиту передаємо реквізит ПосиланняНаОб'єкт, щоб вказати в умові ДЕ, що нам потрібні дані тільки того документа, з якого виводимо друковану форму. Щоб отримати вибірку запиту, спочатку виконуємо його, а потім вибираємо рядки.

Вибірка = Запит.Виконати().Вибрати();

Далі у циклі заповнюємо параметри області Данідля кожного рядка вибірки документа та виводимо їх у табличний документ. Також у циклі вважаємо підсумкові значення кількостіі суми. Заповнювати кожен параметр окремо ми не будемо, а використовуємо процедуру ЗаповнитиЗначенняВластивостей((<Приемник>, <Источник>) з глобального контексту, вона копіює значення властивостей <Источника> у властивості <Приемника> . Зіставлення здійснюється за іменами властивостей. Докладніше про це можна прочитати в синтаксис-помічнику 1С Підприємства 8.

ИтогоСума = 0; РазомКількість = 0; Поки Вибірка.Наступний() Цикл ЗаповнитиЗначенняВластивостей(ОбластьДані.Параметри,Вибірка); ИтогоСума = ИтогоСума + Выборка.Сума; РазомКількість = РазомКількість + Вибірка.Кількість; ТабДок.Вивести(ОбластьДані); Кінець циклу;

Заповнимо і виведемо область Підвал.

ОбластьПідвал.Параметри.РазомКількість =РазомКількість; ОбластьПідвал.Параметри.РезультатСумма =РезультатСумма; ТабДок.Вивести(ОбластьПодвал);

Повертаємо заповнений табличний документ із функції Друк().

повернення ТабДок;

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

5. Підключення друкованої форми до документа

У типових конфігураціях 1С 8для реєстрації зовнішніх друкованих форм існує довідник ЗовнішніОбробки. Для підключення слід у режимі підприємства зайти до меню Сервіс->Додаткові звіти та обробки->Додаткові зовнішні друковані форми.

Додаємо новий елементдовідника, завантажуємо друковану форму з диска та вибираємо тип документа.

Тепер у документі Реалізація товарів та послугз'явиться нова друкована форма.

Автореєстрація друкарської форми

Для того, щоб при підключенні друкованої форми не потрібно було вибирати тип документа вручну, можна налаштувати автореєстрацію. Для цього додаємо новий макет і називаємо його Параметри_Автореєстрації(тільки так) і в першому його осередку пишемо документи.<Наименование документа> (або Довідники.<Наименование справочника> ).

Тепер при підключенні друкованої форми нам буде запропоновано скористатися параметрами автореєстрації.

Колеги!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Процес друкування електронного документа 1С називається друкована форма 1С.

Кожен документ може мати кілька друкованих форм 1С. Наприклад, документ Реалізація товарів та послуг (тобто продаж) друкується у друковані форми 1С: ТОРГ-12, Накладна, Товарно-транспортна накладна, Акт наданих послуг тощо.

Суть друкованої форми 1С – це шаблон (типу документа Excel), де задані змінні. Під час друку замість змінних підставляється текст із електронного документа. Шаблон зазвичай зберігається у конфігурації.

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

Зовнішня друкована форма 1С – це шаблон друку, який зберігається окремо від самої конфігурації.

Однак це все теорія. А як створити друкарську форму? А ще краще – як внести зміни до існуючої?

Як друкується документ 1С

Щоб роздрукувати будь-який документ 1С (який може бути надрукований) – потрібно в документі натиснути кнопку Друк. 1С запропонує вибрати друковану форму 1С для цього документа зі списку.

Зліва від кнопки Друк зазвичай знаходиться кнопка швидкого доступу до останньої обраної друкованої форми 1С.

Результат друку виглядає так. Щоб надрукувати його на принтер, потрібно поставити курсор у друковану форму 1С, натиснути Ctrl+P або кнопку з принтером на панелі кнопок або в меню Файл/Друк.

Параметри друку (поля, орієнтація аркуша тощо) розташовані в меню Файл/Параметри сторінки. Також у налаштуваннях користувача можна зробити, щоб друк проводився відразу на принтер.

Звідки береться ця друкована форма?

Де знаходиться друкована форма 1С

Зайдемо до конфігуратора. Знайдемо у вікні конфігурації потрібний документ. Розкриємо його гілку Макети. Саме вони і перетворюються на друковану форму 1С під час друку.

Однак замало буде – нам пропонували вибрати набагато більше варіантів друку. Справа в тому, що безліч макетів друкованих форм 1С заховано в іншому місці.

Повернімося до вікна конфігурації 1С. Відкриємо гілку Загальні, а потім гілку Загальні макети. Саме тут і є більшість макетів. Особливо це стосується регламентованих державою друкованих форм 1С – ТОРГ 12, Рахунок фактури тощо.

До речі не складно помітити, що макетів ТОРГ12 або Рахунок Фактури Ви побачите кілька. Чому? Це легко пояснити. Закони та вимоги періодично змінюються. Але ми не можемо просто змінити той самий макет – а якщо доведеться роздрукувати документ від дати, яка знаходиться раніше дати зміни. Тому робиться кілька макетів і, залежно від дати документа, використовується правильний.

Але це не все! Є ще зовнішні макети. Де вони зберігаються?

Повернімося до режиму 1С Підприємство. Через меню користувача з адміністративними правамиОперації/Довідники, виберемо довідник Зовнішні обробки.

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

Для того, щоб це запрацювало – Ви повинні зробити зовнішню обробку, яка має у своєму модулі об'єкта процедуру Друк() із позначкою Експорт, яка організує процес друку.
Але ми забігаємо наперед. Давайте спочатку подивимося, як організований макет друкованої форми 1С.

Макет друкованої форми 1С

Макет друкованої форми 1С виглядає в такий спосіб.

Як Ви бачите, він поділений на блоки. Блоки можуть бути горизонтальні (ім'я зліва) та вертикальні (ім'я вгорі).

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

Щоб призначити область – виділіть кілька рядків (або кілька колонок) та виберіть у меню Таблиця/Імена/Призначити ім'я. Щоб прибрати – там є команда Прибрати ім'я.

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

Однак за промовчанням назви довільних осередків не відображаються. Щоб побачити їх, виберіть пункт меню Таблиця/Імена/Відображати іменовані осередки.

Отже, сьогодні ми дізналися, що друкована форма 1С формується за допомогою макету. Макет складається з блоків - по розумному - іменованих областей.

Типові (зазвичай використовувані) блоки для друкарської форми:

  • Шапка – виводиться заголовок документа
  • Рядок – виводиться один рядок таблиці, цей блок повторюють стільки разів, скільки потрібно надрукувати рядків
  • Підвал - виводиться закінчення документа.

Тепер нам потрібно розібратися з тим,

Нікому не секрет, що, хоч у наш час дедалі більше компаній переходять на електронний документнавпаки, стара приказка «Без папірця ти…» не втрачає своєї актуальності. Так склалося, що перевіряючі органи чомусь цікавлять насамперед паперові документи. Тому, якщо ви активно користуєтесь для фінансового контролю програмою 1С:Бухгалтерія або Підприємство, важливо знати, як роздрукувати електронний документ, створений за допомогою програми.

Друковані форми в 1С дозволяють трансформувати електронний документ на друкований варіант.

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

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

Для початку варто розібратися, що, взагалі, є друкарською формою в 1С 8. Це шаблон електронної таблиці 1С (на зразок Excel), в якому зазначені деякі змінні рядки, що заповнюються даними з програми при оформленні документа.

Друковані форми бувають двох видів:

  • Внутрішні (вбудовані). Вони зберігаються у конфігурації програми, тому краще їх не змінювати, оскільки потім можуть виникнути проблеми при оновленні.
  • Зовнішні – що зберігаються окремо від налаштувань програми. І їхньою допомогою можна створювати та готувати для друку документ практично будь-якої складності, не впливаючи на конфігурацію програми 1С 8.

Як вибрати підготовлені макети? Після того як ви проводите операцію приходу або витрати, наприклад, виписуєте акт виконаних робіт, для друку документи ви натискаєте кнопку «Друк». У списку відображається список форм для друку, які вже заповнені введеними даними про виконану операцію та вашу компанію. Натиснувши потрібний вид документа, ви відкриваєте вікно попереднього перегляду, щоб можна було переконатися в правильності заповнених даних. Кнопка друку виводить документ на принтер.

Розібравшись із основами, давайте з'ясуємо, де зберігаються всі ваші друкарські форми. Перейдемо до наступного питання.

Де зберігаються друкарські форми

Переглянути вбудовані друковані форми можна як у режимі конфігуратора, так і у звичайному режимі підприємства. У першому випадку потрібно при запуску програми натиснути кнопку в стартовому вікні. Ви побачите меню програми, знайти гілку «Реалізація ТоварівПослуг», в якій міститься пункт «Макети». У ньому найчастіше містяться лише два пункти – «Накладна» та «Акт». Де ж тоді всі інші, адже список набагато більший? Вони просто ховаються в іншому місці. Потрібно відкрити гілки «Загальні» - «Загальні макети», в ній і зберігаються практично всі макети.

У другому випадку потрібно перейти до розділу меню «Адміністрування» - «Друкарські форми, звіти та обробки» - «Макети друкованих форм». У ньому відображатимуться всі макети документів. Примітно, що в цьому меню їх можна і відредагувати.

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

Створення простої форми через вбудований конструктор друку

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

  1. Насамперед запустіться в режим Конфігуратора, знайдіть потрібний вам документ, наприклад, Реалізація Товарів Послуг, у властивостях документа перейдіть в Дії - Конструктори - Конструктор друку.
  2. За запитом роботи виберіть «Звичайні форми».
  3. Дайте назву новому макету, наприклад, «Друк рахунку».
  4. Виберіть ті реквізити, які ви хотіли б бачити в шапці документа. Причому їх потрібно вибирати в порядку, в якому вони відображатимуться. Для вибору потрібно виділити курсором пункт в лівій колонці і натиснути стрілочку посеред екрана, щоб реквізит відобразився в правій колонці.
  5. Позначте реквізити для відображення у табличній частині. Вибір реквізитів відбувається за тим самим принципом, що й у попередньому пункті.
  6. Так само виберіть реквізити нижньої частини документа.
  7. на заключному етапістворення виберіть, чи ви хочете друкувати відразу ж без попереднього перегляду, чи потрібний захист таблиці, після чого підтвердіть створення форми кнопкою ОК.

Створення зовнішньої друкованої форми

Форми, створювані через Конструктор друку, можна порівняти з візуальним програмним редактором, коли ви не вводите весь код вручну, а лише складаєте його із запропонованих елементів. Зовнішня форма є файл із записаним вручну програмним кодом, в якому описана процедура виведення даних на екран. Саме це дозволяє редагувати друковану форму, як завгодно, задаючи абсолютно будь-які дані в будь-якій послідовності.

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

Тепер докладніше про процедуру. Розглянемо з прикладу створення макета «Рахунок» для документа «Реалізація (акти, накладні)».

  1. Відкрийте програму 1С 8 у режимі конфігуратора.
  2. Натисніть Файл – Новий – Зовнішня обробка, придумайте його назву (вона не повинна включати прогалини), потім натисніть кнопку Дії – Відкрити модуль об'єкта.
  3. У полі для введення введіть наступний код (жовтим кольором виділено значення, які можна змінити на свої):

Функція ВідомостіЗовнішнійОбробці() Експорт
ПараметриРеєстрації = Новий Структура;
МасивПризначень = Новий Масив;
МасивПризначень.Додати («Документ.Реалізація ТоварівПослуг»); //Вказуємо документ, якого робимо зовнішню печь. форму
ПараметриРеєстрації.Вставити(«Вигляд», «Друкована Форма»); // може бути - Друкована Форма, Заповнення Об'єкта, Додатковий Звіт, Створення Пов'язаних Об'єктів ...
ПараметриРеєстрації.Вставити(«Призначення», МасивПризначень);
ПараметриРеєстрації.Вставити(«Найменування», «Замовлення для реалізації товарів»); //ім'я під яким обробка буде зареєстрована у довіднику зовнішніх обробок
ПараметриРеєстрації.Вставити(«БезпечнийРежим», брехня);
ПараметриРеєстрації.Вставити(«Версія», «1.0»);
ПараметриРеєстрації.Вставити(«Інформація», «Ця форма для друку була створена як зразок»);
ТаблицяКоманд = ОтриматиТаблицюКоманд();
Додати Команду (Таблиця Команд, «Зовнішнє замовлення», «Зовнішнє Замовлення», «Виклик Серверного Методу», Істина, «Друк MXL»);
ПараметриРеєстрації.Вставити(«Команда», ТаблицяКоманд);
Повернення ПараметриРеєстрації;
КінецьФункції // Відомості про зовнішню обробку ()
Функція ОтриматиТаблицюКоманд()
Команди = Новий ТаблицяЗначень;
Команди.Колонки.Додати(«Подання», Новий ОписТипів(«Рядок»));//як виглядатиме опис печ.форми для користувача
Команди.Колонки.Додати(«Ідентифікатор», Новий ОписТипів(«Рядок»)); //ім'я макета печ.форми
Команди.Колонки.Додати(«Використання», Новий ОписТипів(«Рядок»)); / / Виклик Серверного Методу
Команди.Колонки.Додати(«ПоказуватиОповіщення», Новий ОписТипів(«Булево»));
Команди.Колонки.Додати(«Модифікатор», Новий ОписТипів(«Рядок»));
Повернення Команди;
КінецьФункції
Процедура ДодатиКоманду(ТаблицяКоманд, Подання, Ідентифікатор, Використання, ПоказуватиОповідання = Брехня, Модифікатор = «»)
НоваКоманда = ТаблицяКоманд.Додати();
Нова Команда. Подання = Подання;
Нова Команда. Ідентифікатор = Ідентифікатор;
Нова Команда. Використання = Використання;
НоваКоманда.ПоказуватиОповідання = ПоказуватиОповідання;
Нова Команда. Модифікатор = Модифікатор;
КінецьПроцедури

  1. Збережіть макет для друку як файл у будь-яку папку на жорсткому диску, назвіть його відповідним чином.

Вставте в цей же документ процедуру запуску друку з меню програми (виділені жовтим кольором команди повинні збігатися з рядком):

ДодатиКоманду(ТаблицяКоманд, «Зовнішнє замовлення», «ЗовнішнєЗамовлення»):
Процедура Друк (Масив Об'єктів, Колекція Друкованих Форм, Об'єкти Друку, Параметри Виводу) Експорт
УправлінняДруком.ВивестиТабличнийДокументВКолекцію(
КолекціяДрукарськихФорм,
«Зовнішнє замовлення»,
«Зовнішнє замовлення»,
СформуватиДруковуФорму(МасивОб'єктів, Об'єктиДруку);
КінецьПроцедури // Друк()

  1. Вставте макет заповнення друкованої форми, клацнувши за назвою зовнішньої форми в лівому нижньому кутку та вибравши «Макети» - «Додати» - «Таблічний документ», дайте йому назву. Після цього заповніть електронну таблицю потрібними даними. Наприклад:
    • Замовлення товару № [НомерРеалізації] від [ДатаРеалізації] - клік правою кнопкою миші - Властивості - Макет - Заповнення - Шаблон.
    • Створіть стовпці, які мають відображатися у документі.
    • Виділіть введені осередки, натисніть Таблиця – Імена – Призначити ім'я – введіть назву «Шапка».
    • Скопіюйте рядок із заголовками таблиці, виділіть їх, клацніть правою кнопкою миші - Властивості - Макет - Заповнення - Параметр.
    • Виділіть рядок, назвіть його, наприклад, «РядокТЧ».
    • Створіть підвал: пропишіть Разом, комірку, в якій повинна відображатися підсумкова сума, назвіть СумаІтого, у властивостях виберіть «Параметри».
    • Вкажіть відповідального, у властивостях комірки для виведення прізвища вкажіть «Параметри».
    • Виділіть нижні рядки та дайте діапазону найменування «Подвал».
  2. Тепер у вікні введення пропишіть функцію формування друкарської форми:

Функція СформуватиДруковуФорму(ПосиланняНаДокумент, Об'єктиДруку)
Табличний Документ = Новий Табличний Документ;
ТабличнийДокумент.Ім'яПараметрівДруку = «ПАРАМЕТРИ_ДРУКУ_РахунокНаОплатуВРТУ»;
МакетОбробки = ОтриматиМакет(«РахунокНаОплатуЗовнішній»);
//Заповнюємо шапку
ОбластьШапка = МакетОбробки. ОтриматиОбласть(«Шапка»);
ОбластьШапка.Параметри.НомерДокумента = ПосиланняНаДокумент.Номер;
ОбластьШапка.Параметри.ДатаДокумента = ПосиланняНаДокумент.Дата;
ОбластьШапка.Параметри.НазваОрганизации = ПосиланняНаДокумент.Організація.Найменування;
//виводимо шапку в табличний документ
ТабличнийДокумент.Вивести(ОбластьШапка);
//заповнюємо рядки ТЧ
ОбластьРядки = МакетОбробки. ОтриматиОбласть(«РядокТЧ»);
Для кожного ПоточнийРядок З ПосиланняНаДокумент.Товари Цикл
ЗаповнитиЗначенняВластивостей(ОбластьРядки.Параметри, ПоточнаРядок);
ТабличнийДокумент.Вивести(ОбластьРядки);
КінецьЦикл;
//Заповнюємо підвал
ОбластьПідвал = МакетОбробки.ОтриматиОбласть(«Підвал»);
ОбластьПідвал.Параметри.КількістьПідсумок = ПосиланняНаДокумент.Товари.Підсумок(«Кількість»);
ОбластьПідвал.Параметри.СумаПідсумок = ПосиланняНаДокумент.Товари.Підсумок(«Сума»);
ОбластьПідвал.Параметри.Ім'яВідповідального = ПосиланняНаДокумент.Менеджер.Найменування;
//виводимо підвал у табличний документ
ТабличнийДокумент.Вивести(ОбластьПодвал);
Табличний Документ. АвтоМасштаб = Істина;
Повернення ТабличнийДокумент;
КінецьФункції

  1. Збережіть зміни у документі.
  2. Тепер потрібно активувати створену форму. Для цього:
    • Перейдіть до «Адміністрування» - «Друкарські форми, звіти та обробки» - «Додаткові звіти та обробки».
    • Натисніть кнопку "Створити", виберіть у провіднику файл зовнішньої форми, підтвердіть введення кнопкою "Записати та закрити".
  3. Для перевірки перейдіть в Продаж - Реалізація (акти, накладні), натисніть кнопку «Друк», виберіть свою форму та перевірте правильність заповнення.
  4. Роздрукуйте документ за потреби.

Висновок

Ми розглянули з вами зразок створення друкарської форми через Конструктор друку та інструмент створення зовнішніх форм. Сподіваємось, що у вас все вийде. У коментарях залишайте свої запитання.

Життя йде, змінюється законодавство, розробник випускає оновлення конфігурацій і перед нами знову вибір: встановити оновлення самому або знову телефонувати програмісту, щоб «поставив новий реліз».

Давайте познайомимося з механізмом зміни друкованих форм без зміни конфігурації.


У практиці кожного бухгалтера, що використовує 1С, колись виникала необхідність доопрацювання конфігурації під себе: хто коригував точність ціни або суми у прибутковій накладній, хто вставляв логотип та коригував зовнішній виглядвидаткової накладної. Все б добре, але таких змін з часом набирається безліч і коли настає момент оновлення релізу, виникає дилема: або втрачати всі внесені зміни, або звати програміста, щоб той переніс всі зміни в новий реліз (природно за додаткову плату). Як же бути? Щоб спростити оновлення конфігурацій, розробники створили новий механізм: «Зовнішні обробки, друковані форми, обробки по заповненню табличних частин». Сьогодні ми розглянемо лише частину цього механізму – друкарські форми.


Будь-який предмет краще вивчається з прикладу. Поставимо собі таке завдання: додати в конфігурацію можливість друкувати витратну накладну (документ) «Реалізація товарів та послуг») з логотипом нашої компанії. Крім цього потрібно, щоб у шапці документа написи «постачальник»і «покупець»були виділені жирним і насамкінець потрібно, щоб унизу документа було місце для підпису служби безпеки, що дозволила відвантаження.


Введемо два додаткові умови:

  • Нова друкована форма має замінити собою колишню форму «Накладна»
  • Не можна змінювати конфігурацію, тому що ми хочемо надалі користуватися автооновленням конфігурації

Ну що, яке завдання? Здається надто складною? Ну що ж, чим вона складніша, тим цікавіша, і тим більше її хочеться вирішити. Тоді за роботу.


Запускаємо нашу базу у режимі Конфігуратора. Відкриваємо конфігурацію, вибравши у головному меню команду «Конфігурація > Відкрити конфігурацію». Саму конфігурацію ми змінювати в жодному разі не будемо. Ми її використовуватимемо як прототип. Основну роботу ми проводитимемо тут, але редагуватимемо зовнішні обробки. Створюємо зовнішню обробку командою у головному меню «Файл > Новий». Вибираємо вигляд документа «Зовнішня обробка». Для першої обробки задаємо ім'я «Фірмова накладна»


Важливо! Ім'я обробки не повинно містити прогалин, так само, як і імена змінних.


Тепер трошки займемося «плагіатом». Скопіюємо макет «Накладна»із документа «Реалізація ТоварівПослуг». Для цього знайдемо його у гілці "Документи"конфігурації дерева. Розкриємо цю гілку клацанням миші на значку «+» і знайдемо потрібний нам макет «Накладна»(він знаходиться у гілці «Макети»). Щоб скопіювати цей об'єкт, потрібно, вибравши цей макет у дереві, виконати команду «Редагування > Копіювати»(та сама дія відбувається по комбінації CTRL+C). Тепер перейдемо у створену нами обробку, виберемо у дереві мітку «Макети»і в головному меню виберемо пункт – «Правка > Вставити» (CTRL+V). Результат має виглядати на малюнку 1.


Тепер подвійним клацанням миші відкриємо макет.

Що таке «макет»

Скажемо кілька слів про призначення макету.

Макет– місце зберігання «будівельних блоків», областей, з яких, як із цеглинок, будується табличний документ, який ми звикли називати друкованою формою. Області задаються за допомогою горизонтальних та вертикальних секцій або їх перетинів. У нашому макеті є лише горизонтальні секції: "Заголовок", "Постачальник", "Покупець", "Шапка Таблиці", "Рядок" (див. рис. 2). Область – набір осередків. Як і в MS Excel, осередки можна об'єднати, змінити колір тексту та фону, шрифт тощо. Усі параметри комірки можна переглянути та змінити у вікні властивостей комірки. Викликати вікно налаштування можна, клацнувши правою кнопкою миші на комірці і вибравши пункт контекстного меню «Властивості»(Той самий результат досягається поєднанням клавіш Alt+Enter).


Осередок може містити значення одного з трьох видів:

  1. текст– значення такого виду буде виведено на друк у тому самому вигляді;
  2. параметр- осередок такого виду містить ім'я змінної, значення якої буде виведено на друк.
  3. шаблон– осередки такого виду є комбінацією першого та другого варіанта. Осередок може містити текст і змінні. Щоб програма могла відрізнити текст від змінної, змінні потрібно укладати у квадратні дужки: «Сьогодні [Дата]».

Важливо!Значення осередків другого та третього вигляду табличний редактор відображає у трикутних дужках. На малюнку 2 комірка з текстом «Покупець»- має вигляд текст, а правіше осередку «Подання Покупця»- Параметр.

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

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

Що є в макеті для друку

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

На цьому шапку документа завершено. За шапкою слід зазвичай таблична частина. Цікаво, що в макеті описані два варіанти відображення табличної частини: «Шапка Таблиці», «Рядок» та «ШапкаТаблиціМісць»і «РядокМісць». Залежно від того, заповнена чи ні у вас колонка «Місць»у документі буде використовуватися перший або другий варіант виведення табличної частини документа. Цікавий читач напевно вже запитав: чому в секції виведення шапки «Ціна»і «Сума»взяті в трикутні дужки, наче це змінні? Так і є – це змінні, в яких залежно від налаштувань документа буде виведено напис «Ціна», «Ціна з ПДВ»або «Ціна без ПДВ»та аналогічно для суми.

Ну а нижче у макеті знаходяться секції, за допомогою яких виводяться підсумки документа та підписи.

Редагуємо макет

Логотип було б непогано розмістити над інформацією про постачальника та покупця. Пропоную відредагувати область макету «Заголовок». Потрібно зменшити розміри комірки із вмістом «ТекстЗаголовка». Це осередок складається з кількох об'єднаних осередків. Розмір змінюємо в такий спосіб:

  1. Передбачливо скопіюємо вміст об'єднаного осередку «ТекстЗаголовка»(для цього осередок потрібно виділити та скористатися командою «Правка > Копіювати» або клавіші CTRL+C)
  2. Виділивши цей осередок, вибираємо в головному меню пункт «Таблиця – Об'єднати», що призведе до зворотної дії – об'єднаний осередок буде розбитий на безліч вихідних осередків
  3. Тепер виберемо меншу кількість осередків, - замість осередку 2 стовпці почнемо об'єднання з 6 стовпця, завершивши його на стовпці 32, - і знову натиснемо на кнопку «Об'єднати»
  4. Командою «Правка > Вставити» (CTRL+V)вставимо в новий об'єднаний осередок вміст колишнього об'єднаного осередку
  5. Комірки, що звільнилися, в колонках 2 - 5 просто очистимо (виділимо і натиснемо клавішу Delete)

Тепер на місце, що звільнилося, можна вставити картинку з логотипом. Для цього в меню виберіть пункт «Таблиця > Малюнки > Картинка…». Знайдемо на диску файл із нашим логотипом та натиснемо « ОК». Тепер перемістимо картинку на місце, що звільнилося. В результаті має вийти як на малюнку 3.


Тепер виділимо напівжирним шрифтом значення в комірках «Постачальник»і «Покупець»(Рис. 4). Для цього у властивостях комірки знайдемо параметр "Шрифт"і задаємо напівжирне зображення.



І насамкінець залишилося додати підпис служби безпеки. Цю інформацію розміщуватимемо у секції «Підписи». Щоб отримати місце для підписів, потрібно розсунути секцію. Виділимо рядок 37, натиснемо на ній правою кнопкою миші та оберемо «Розсунути», і так двічі. В одному з доданих рядків розмістимо місце для підпису служби безпеки. В результаті все має вийти як на малюнку 5.



Важливо!У типовій конфігурації використовуються дві мови: російська та українська. Макет зберігає подання тексту обома мовами (оформлення осередку - загальне). Для того, щоб внести український варіант доданого нами напису, необхідно зайти у властивості осередку та в полі "Текст"натиснути на кнопку «пошук». Відкриється вікно для внесення подання тексту різними мовами (рис. 6).

Як забезпечити висновок на друк

Отже, макет готовий. Тепер саме зайнятися алгоритмом його виведення на друк.

Для того щоб ми змогли цей макет безболісно вбудувати в конфігурацію та використовувати, обробка, яку ми створили, має задовольняти такі умови:

  1. Потрібно створити реквізит у обробці «ПосиланняНаОб'єкт»з типом «Будь-якеПосилання»
  2. Потрібно створити в модулі обробки процедуру «Друк() Експорт»без параметрів та обов'язково вказати ключове слово "Експорт"

Перший пункт потрібен для того, щоб алгоритм друку знав, звідки брати дані для друку, а другий – власне сам алгоритм друку. Давайте виконаємо ці умови.

На панелі вікон вибираємо вікно редагування нашої обробки (на малюнку 7). Відкриється вікно з деревом об'єктів нашої обробки. Вибираємо гілку «Реквізити»та натискаємо кнопку «Додати»,. Відкриється вікно властивостей реквізиту. Внесемо ім'я «ПосиланняНаОб'єкт»та вкажемо тип «Будь-якеПосилання». Тепер ми можемо перейти до тексту модуля друку. Писати ми її з нуля не будемо, натомість скопіюємо її з документа «Реалізація ТоварівПослуг».



Для цього знаходимо у дереві конфігурації серед документів «Реалізація ТоварівПослуг», клацаємо на ньому правою кнопкою миші та вибираємо "Відкрити модуль об'єкта"(Див. малюнок 8).



Після цього з'явиться модуль документа. Нам потрібна перша функція «ДрукДокумента». Її текст необхідно виділити та скопіювати. Дуже зручно виділяти текст функції, коли він згорнутий, але потрібно обов'язково виділяти рядок під нею, інакше ризикуємо скопіювати тільки заголовок.

Див. малюнку 9, ми виділили заголовок і рядок під нею. Після цього копіюємо у буфер. Головне меню "Правка > копіювати" (або CTRL+C).



Запам'ятали текст у буфері обміну, тепер знову переходимо до нашої обробки «Фірмова накладна». Натискаємо на кнопку «Дії > Відкрити модуль об'єкта»(Рис. 10).



Вставляємо скопійований текст: «Правка > Вставити» (або CTRL+V).

Тепер необхідно трохи підрихтувати скопійований текст, оскільки він писався для друку документа із самого документа, а ми збираємося із зовнішньої обробки. Для цього потрібно:

  1. Перейменувати функцію на «Друк»
  2. Замінити «Цей Об'єкт»на «ПосиланняНаОб'єкт»
  3. Замінити «Цей Об'єкт»на «ПосиланняНаОб'єкт»
  4. Замінити «БанківськийРахунокОрганізації»на «ПосиланняНаОб'єкт.БанківськийРахунокОрганізації»
  5. Замінити «Товари.Підсумок»на «ПосиланняНаОб'єкт.Товари.Підсумок»

Для цих дій можна скористатися пунктом головного меню «Редагування > Заміна».

Після цього необхідно обов'язково перевірити на синтаксис. І тому є магічна комбінація CTRL+F7. В результаті має з'явитися повідомлення: "Синтаксичних помилок не виявлено!"

Що ж, на цьому ми завершили всю чорну роботу. Тепер можемо зберігати результати своєї праці у файлі, наприклад «ФірмоваНакладна.epf». Для цього потрібно зробити активним вікно цієї обробки та зберегти її, скориставшись головним меню програми «Файл > Зберегти як…». Ім'я файлу з обробкою «ФірмоваНакладна.epf»(воно буде запропоновано за замовчуванням). Зберегти його можна тимчасово на робочий стіл, щоб потім швидше знайти.

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

Підключаємо зовнішню обробку до конфігурації

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



При цьому відкриється довідник "Зовнішні обробки", з відбором на вигляд "друковані форми". Він зберігатиме перелік усіх зовнішніх друкованих форм з наданням для яких документів і в яких випадках їх потрібно показувати.



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

Нам потрібно створити новий елемент у довіднику. Натискаємо Insert. Тепер розглянемо вміст елемента. У найменуванні вносимо осмислене короткий описсуті цієї форми, наприклад, «Фірмова накладна». Як у будь-якого іншого довідника, також є код. Залишимо за замовчуванням. Реквізит вигляд заповнений за умовчанням та редагування не підлягає – «Друкована форма». І останній реквізит шапки елемент – коментар. Тут зазвичай більш детально про призначення друкованої форми. Крім шапки, у елементів цього довідника є дві закладки. На другій розміщена інформація про обмеження прав доступу до цієї обробки. Ця тема виходить за рамки цієї статті (про цю та інші налаштування прав доступу без конфігурації ми розкажемо в одному з найближчих номерів).

А на першій закладці зупинимося докладніше.

Закладка містить чотири колонки. Подання об'єкту– тип документа, для якого ми хотіли б використати нашу друковану форму,

Відбір- Умова, при виконанні якої має бути доступна ця друкована форма. Наприклад, ми переробили друковану форму видаткової накладної та переклали її англійською мовою. І хочемо, щоб для клієнтів з папки «Європейські»замість стандартної друкарської форми «Витратна накладна»друкувалася нова форма, на англійською мовою. Для цього можна скористатися колонкою «Відбір». Приклад такого відбору малюнку 13.



Але в нашому завданні жодних відборів не потрібне.

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

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

У нашому випадку нам потрібно щоб «Фірмова накладна»друкувалася замість звичайної видаткової накладної. Для цього потрібно вибрати у цьому полі «Витратна накладна».

Усі тепер зберігаємо цей елемент. І відкриваємо будь-яку витратну накладну.

Повинно вийти так, як показано на малюнку 14.



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

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