Зовнішні обробки, друкарські форми, обробки із заповнення табличних частин

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

Загальний опис

Механізм призначений для підключення (без зміни конфігурації):

  • зовнішніх обробок для довільного виконання
  • Зовнішніх обробок як додаткові друковані форми об'єктів (довідників та документів)
  • Обробок для заповнення табличних частин об'єктів

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

Для реалізації механізму ВПФО використовують довідник "Зовнішні обробки".

Для довідника передбачено спеціалізовані реквізити*:

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

ПРИМІТКА Повний перелік реквізитів буде описано нижче, у розділі Технічна реалізація механізму "Зовнішні обробки, друковані форми, обробки по заповненню табличних частин"

Для зручності форми списків ВПФО викликаються окремо, з встановленим відбором за реквізитом "Вид обробки", з підменю"Сервіс".

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

Для інших користувачів призначаються права на читання (використання) та запис (зміна) щодо кожного елемента довідника ВПФО.

Переваги використання механізму ВПФО перед механізмом платформи відкриття зовнішніх обробок:

  • Можливість використання механізму користувачами, які не мають права на інтерактивне відкриття зовнішніх обробок
  • Обмеження доступу до використання та зміни обробок лише на рівні записів (RLS), тобто. до кожної обробки окремо
  • Цілісність БД та незмінність функціоналу в залежності від зовнішніх факторів (перенесення БД, мережевої роботи користувачів, створення архівних копій БД та ін.)

Опис видів довідника ВПФО та вимоги до зовнішніх обробок, що підключаються.

Розглянемо кожен вид ВПФО окремо.

Довільна обробка

Для включення довільних обробок до бази даних необхідно вказувати лише зовнішню обробку, що знаходиться на диску.

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

Основна форма для довільної обробки має бути визначена обов'язково.

Обробка для заповнення ТЧ об'єктів

Для обробки заповнення ТЧ необхідно вказувати зовнішню обробку (файл на диску, з розширенням epf), список об'єктів та їх ТЧ, для яких необхідно використовувати дану обробку.

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

Перед відкриттям форми об'єкта в командних панелях табличних полів (джерелом даних для яких є таблична частина об'єкта), яким відповідають певні рядки у довіднику ВПФО, програмно додаються пункти у підменю "Заповнити" (якщо підменю "Заповнити" відсутня на командній панелі, воно створюється) .

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

Ініціалізувати (Об'єкт, Ім'яТаблічноїЧастини, ТабличнеПолеОб'єкта)

  • Об'єкт - ДокументОб'єкт, ДовідникОб'єкт. Звідки було здійснено виклик процедури заповнення зовнішньої обробки;
  • Ім'я Табличної Частини - Рядок. Ім'я табличної частини, на яку викликана обробка;
  • Табличне поле Об'єкта – Елемент форми: Табличне поле. Табличне поле форми, котрим викликана обробка.

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

Обробка так само може мати у своєму складі макет "Параметри_Автореєстрації", який використовується для автоматичного заповнення приладдя друкованої форми у довіднику "Зовнішні обробки". Макет повинен складатися з 2-х колонок - "повне ім'я об'єкта" та "ім'я табличної частини".

Приклад макета Параметры_Авторегистрации:

Зовнішня друкарська форма

Для зовнішніх друкованих форм, що підключаються, вказується:

  • зовнішняобробка
  • список об'єктів, для яких ця друкована форма використовується

Для кожного типу об'єкта можна додатково вказати:

  • Відбір. Друкована форма буде доступною лише для об'єктів, які задовольняють встановлений вибір.
  • Окрему друкарську форму. Слід враховувати, що у списках друкованих форм в об'єктах завжди з'являтиметься однаковий пункт підменю. Якщо окрема друкована форма не вказана, то використовуватиметься друкована форма із шапки елемента ВПФО.
  • Вбудована друкована форма. При заповненні даного реквізиту зазначена вбудована друкована форма буде замінена зовнішньою.

Виклик діалогу налаштування умов відбору здійснюється на початку вибору значення в колонці "відбір":

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

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

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

Для збереженої зовнішньої обробки:

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

У тілі функції "Друк()" повинен розташовуватися програмний код, який формує та повертає табличний документ, відповідно до значення реквізиту "ПосиланняНаОб'єкт".

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

Приклад макета Параметры_Авторегистрации:

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

Технічна реалізація механізму "Зовнішні обробки, друкарські форми, обробки із заповнення табличних частин"

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

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

ТабличнаЧастина.Приналежність. Зберігає типи об'єктів, для яких задається ВПФО та інші наведені нижче параметри. Таблична частина використовується для елементів з видом обробки: "Друкована форма" або "Заповнення табличних частин".

Реквізити табличної частини:

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

** Використовується тільки для елементів з видом обробки: "Заповнення табличних частин" *** Використовується тільки для елементів з видом обробки: "друкарська форма".

Підключення додаткових друкованих форм до форм об'єктів конфігурації

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

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

Для забезпечення підключення механізму у формі об'єкта повинні бути такі процедури та функції: