1з8 створення зовнішньої друкованої форми. Публікації

Інструкція

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

Запустіть програму "1С:Підприємство" в режимі конфігуратора, потім створіть зовнішню обробку, для цього виконайте команду "Файл" - "Новий". У вікні виберіть «Зовнішня обробка». На екрані з'явиться нова форма зовнішньої обробки. Надайте їй назву «Зовнішня». Потім додайте новий реквізит, який називається «Посилання на об'єкт», вкажіть тип для нього – «Документ. Посилання. Реалізація товарів та послуг». Щоб створити друковану форму для іншого виду документа, використовуйте відповідний тип посилання.

Додати новий макет клацанням по відповідній кнопці у вікні нової форми. Надайте йому ім'я «Макет», створіть область з ім'ям «Заголовок», надайте їй параметр «Текст заголовка». Потім натисніть кнопку «Дії», виберіть команду «Відкрити модуль об'єкта». Потім вставте текст модуля, ви можете скористатися прикладом на сайті http://www.uasoft.com.ua/content/articles/315/.

Запустіть програму "1С:Підприємство", перейдіть в меню "Сервіс", виберіть "Зовнішні друковані форми". Внесіть новий запис до списку форм. Для цього оберіть створений файл обробки, а в табличній частині вкажіть належність форми документа «Реалізація товарів». Перевірте правильність роботи нової друкованої форми. Для цього відкрийте створений документ, проведіть його, потім у нижній частині екрана клацніть на кнопку «Друк», виберіть опцію «Зовнішня друкована форма».

Джерела:

  • як у 1с змінити друковану форму

Для того, щоб створювати та редагувати форми об'єктів, у програмі «1C:Підприємство» передбачено спеціальний редактор форми (або Form Designer). Форми об'єктів прикладного рішення призначені візуального представлення даних під час роботи з програмою. Редактор форми містить кілька закладок, які забезпечують можливість редагування всіх елементів форми.

Вам знадобиться

  • комп'ютер, програма 1С

Інструкція

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

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

Щоб відредагувати командний інтерфейс, перейдіть на вкладку. Перед вами буде дерево команд, основні гілки якого – це "Панель навігації" та "Командна панель". Частина команд у дерево командного інтерфейсу додається автоматично, проте ви також можете самостійно додавати їх, для цього перетягніть потрібні команди зі списку глобальних (загальних) команд або зі списку команд форми.

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

Відео на тему

План рахунків, що у бухгалтерському обліку для відображення господарську діяльність підприємства, підтримує багаторівневу ієрархію: рахунок – субсчета. Щоб користувач міг переглядати дані, що містяться в плані рахунків, та коригувати їх, система 1С дозволяє змінити форму рахунку. Крім того, друкована форма рахунку може бути змінена і в будь-якому іншому документі в 1С.

Вам знадобиться

  • - персональний комп'ютер із 1С.

Інструкція

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

Як додати (зареєструвати) зовнішню друкарську форму (або обробку) до 1С Бухгалтерія 8.3 (редакція 3.0)

2019-05-15T13:40:54+00:00

Часто у бухгалтера виникає потреба у додатковій друкованій формі до якогось із стандартних документів 1С:Бухгалтерія 8.3 (редакція 3.0). Або потрібна додаткова обробка, наприклад, щоб автоматично заповнити документ або ввести новий на підставі. Зазвичай така можливість вже кимось розроблена і її можна знайти або замовити у програміста. І ось доопрацювання отримано, залишилося лише додати її до бухгалтерії. Як це зробити? Про це нижче кроків.

1. Відкрийте 1С Бухгалтерія 3.0 і виберіть у лівій панелі розділ "Адміністрування"->"Друкарські форми, звіти та обробки" ():

2. Тут знайдіть та виберіть пункт "Додаткові звіти та обробки", попередньо встановивши галку "Додаткові звіти та обробки" зліва:

3. Натисніть кнопку "Додати з файлу...".

4. І виберіть файл із зовнішньою друкованою формою або обробкою (розширення epf).

5. У новому вікні натисніть кнопку "Записати та закрити".

6. Відкрийте потрібний документ і переконайтеся, що в кнопці друк з'явився ще один варіант друкованої форми або пункт меню "Створити на підставі" або нова кнопка на панелі інструментів форми. Готово!

З повагою, Володимир Мількін(Викладач та розробник).

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

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


У практиці кожного бухгалтера, що використовує 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.



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

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

Добридень.

Сьогодні хочу розповісти Вам, як створювати зовнішні друковані форми для конфігурації "Зарплата та Управління Персоналом 3.0". Як відомо в ЗУП 3.0 використана бібліотека стандартних підсистем, а значить струтура обробки виглядає зовсім інакше. Коли мені вперше довелося робити друковану форму для БСП в керованих формах (тоді це була УТ 11), насамперед я поліз на диск ІТС з метою знайти там докладну документацію, про те які експортні процедури, з якими параметрами мають бути в обробці як воно все працює. Тут ІТС мене розчарував, т.к. там все розказано, про те, як процедури мають виглядати в модулі документа, а у зовнішній друкованій формі параметри процедури "друк" переставлені місцями, тому довелося шукати інформацію в інших джерелах і колупати підсистему зсередини.

Ну що ж, почнемо. Те, що в нас вийде в кінці, цілком можна буде використовувати як шаблон.

Крок перший- Очевидний. Створюємо нову обробку. Надамо її довільне ім'я: "ЗразокДруку".

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

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

//процедура, яка готує структуру таблиці команд

Функція ОтриматиТаблицюКоманд()

// Створимо порожню таблицю команд та колонки в ній
Команди = Новий ТаблицяЗначень;

// Як виглядатиме опис друкованої форми для користувача
Команди.Колонки.Додати("Подання", Новий ОписТипів("Рядок"));

// Ім'я нашого макета, що могли б відрізнити викликану команду в обробці друку
Команди.Колонки.Додати("Ідентифікатор", Новий ОписТипів("Рядок"));

// Тут задається, як має викликатися команда обробки
// Можливі варіанти:
// - ВідкриттяФорми - в цьому випадку в колонці ідентифікатор має бути вказано ім'я форми, яке має відкрити система
// - Виклик Клієнтського Методу – викликати клієнтську експортну процедуру з модуля форми обробки
// - Виклик Серверного Методу – викликати серверну експортну процедуру з модуля об'єкта обробки
Команди.Колонки.Додати("Використання", Новий ОписТипів("Рядок"));

// Наступний параметр вказує, чи потрібно показувати оповіщення на початку та завершення роботи обробки. Немає сенсу при відкритті форми
Команди.Колонки.Додати("ПоказуватиОповіщення", Новий ОписТипів("Булево"));

// Для друкованої форми повинен містити рядок Друк MXL
Команди.Колонки.Додати("Модифікатор", Новий ОписТипів("Рядок"));

Повернення Команди;

КінецьФункції

//Створює в таблиці команд новий рядок

Функція ДодатиКоманду(ТаблицяКоманд, Подання, Ідентифікатор, Використання, ПоказуватиОповідання = Брехня, Модифікатор = "")
НоваКоманда = ТаблицяКоманд.Додати();
Нова Команда. Подання = Подання;
Нова Команда. Ідентифікатор = Ідентифікатор;
Нова Команда. Використання = Використання;
Нова Команда. ПоказуватиОповіщення = ПоказуватиОповідання;
Нова Команда. Модифікатор = Модифікатор;
КінецьФункції

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

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

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

Крок четвертий- Не менш цікавий.

Функція ДРУК?

А ось і ні, тепер не функція, а процедура.

Як повернути макет?

Надіслати його у функцію глобального модуля підсистеми друку.

Окай

Ось текст цієї процедури:

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

Тепер роз'яснення. У першому рядку процедури йде трохи незрозуміла умова. Річ у тім, що з виклику процедури друку система передає нам таблицю значень, у якій зазначено, що треба напечатать. Посути функція УправлінняДруком.ПотрібноДрукуватиМакет(...) перевіряє наявність у таблиці значень рядка в якій у колонці "Ім'яВРЄГ" рядка з назвою макета. Насправді найчастіше річ марна, т.к. наша обробка вмітиме формувати лише одну друковану форму. Тобто. цю умову можна опустити і на працездатність це не вплине.

Далі УправлінняДруком.ВивестиТабличнийДокументВКолекцію(...) - вона то якраз і додає табличний макет куди потрібно, щоб потім вивести його на екран. Якщо Вам потрібно показати свій табличний документ у своєму вікні (не типовому), то не викликайте цю процедуру, а просто напишіть тут свій код.

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

Далі СформуватиТабДокумнтЗразка(...) - це функція, яку ми маємо написати в модулі обробки і яка повертає табличний документ. У 100 зі 100 випадків вона буде серверна, т.к. нам треба отримати значення реквізитів з об'єктів, перерахованих у параметрі "МасивОб'єктів".

Крок п'ятий- Формуємо макет.

УРА, ми нарешті розпочнемо алгоритм формування макета, отримання даних і т.д.

Але в нашому зразку ми надійдемо прозаїчно і тут навіть коментувати не буду)))

Функція СформуватиТабДокумнтЗразка(МасивОб'єктів, Об'єктиДруку)
табДок = Новий ТабличнийДокумент;
макет = ОтриматиМакет("Макет");

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

Повернення табДок;
КінецьФункції

Ось власне і все, дякую за увагу

Зовнішні друковані форми для звичайного додатка (для конфігурації Бухгалтерія підприємства 2.0, Зарплата та управління персоналом 2.5, Управління торгівлею 10.3 і т.д.) створюються досить просто порівняно із зовнішніми друкованими формами для керованого додатка.

Навіщо створювати зовнішні друковані форми

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

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

Як створити зовнішню друкарську форму

Розглянемо процес створення зовнішньої друкованої форми 1С за кроками:

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

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

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

Розглянемо цю процедуру з прикладу створення зовнішньої друкованої форми універсального передавального документа для документа Реалізація товарів та послуг 1С: Бухгалтерії. Від стандартної друкованої форми вона відрізнятиметься наявністю друку організації.

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