Для створення нового типу документів нам потрібно виконати дії, подібні до тих, які ми виконували в статті “Створення нового типу довідника”. Структура і назви файлів практично не відрізняються, за винятком деяких деталей, про які поговоримо пізніше. Не будемо детально зупинятись на описанні файлів. Їхні коди ви можете знайти в архіві. Просто в деяких моментах опишу “Чому воно так?” , “А чому така різниця?”, тощо.
Для початку трошки загальних понять. Папки документів зберігаються в папці Scripts/Docs. Всі типи папок документів знаходяться в окремих папках (саме одну з них ви знайдете в архіві source.zip).
Для створення нового типу документів дам потрібно:
-
В Scripts/Docs створити папку з назвою, яка відповідає назві самого документу.
-
Створити в ній необхідні файли.
-
Створити потрібні таблиці в базі даних.
Тепер про кожен пункт детальніше.
-
Назва папки буде відповідати назві типу документу. В системі "Дебет Плюс" папки документів прийнято називати двома буквами (наприклад, “NN”). Ми будемо створювати документ “CU” (Універсальний касовий ордер). Тому створимо відповідну папку в Scripts/Docs. Після цього ми скопіюємо файли з архіву у цю папку і переглянемо їх.
-
Легко бачити, що зміни між тим, що ми створювали у попередній статті незначні. Але давайте по порядку розглянемо коже з файлів.
-
Описання типу довідника (class.xml). Нагадую, що в класі ми описуємо змінні довідника. Імена цим змінним ми будемо давати такі, як і імена полів, замінюючи першу літеру F на H.
-
В порівнянні з файлом класу, зміни практично відсутні, за винятком того, що тег <DpCl> змінився тегом <DpDoc>, в якому вказано тип документу (назва створеної папки), назва та підсистема, в якій цей документ буде створюватись. Зверніть увагу на назву підсистеми. Пізніше (в наступних статтях) нам це знадобиться.
-
Зв'язок змінних з полями таблиці (dpmapping.xml). Змін немає, за винятком того, що вказано тільки одну таблицю для хедера (заголовку).
-
Файл list.xml. Без змін. Спочатку вказано назву таблиці, а потім перелік полів. Не лякайтесь, що перелік відображуваних полів складний. Ви можете спростити його, видаливши теги <page> і тоді все стане на свої місця.
-
Файл e-cu.js і form.xml. Тут файл e-cu.js є файлом де описуються події на формі. Описання форми ви вже вмієте робити. А от в e-cu.js є деякі зміни. Зараз ми їх і розглянемо.
-
По перше, Файли, що підключаються, описують класи об`єктів, що використовуються для опису типу документів, включаючи і сам DpDoc.js.
-
По-друге, зверніть увагу на описання гріда. Спочатку ми в функції load() описуємо функції на змінні роботи з грідом, а потім описуємо і самі функції. Давайте їх переглянемо:
-
initgrid() - ініціалізується грід.
-
ListMenuInit() та onSelectRowMenu() – Описують контекстне меню.
-
SaveRows() - збереження рядків документів.
-
Якщо перші три функції є функціями класу і викликаються при завантаженні гріду, то остання (SaveRows()) викликається в функції збереження документів onSave().
-
Думаю з іншими функціями проблем не повинно бути. Не складно розібратись що і до чого. Якщо виникають питання чи зауваження то пишіть на форум – допоможемо.
-
Описання гріду, який знаходиться на формі знаходиться в файлі rowlist.xml.
-
Що стосується описання рядків документу, то там ніяких змін немає. Під словами “змін немає” я маю на увазі, що прочитавши попередню статтю по аналогії можна розібратись і з цією статтею.
-
Тепер головне не забути створити таблиці в базі даних :))). В файлі STRU_CU.xml є опис структури таблиць. Хочемо тільки наголосити, що в системі “ДебетПлюс” прийнято правило, що імена таблиць даються за такими формулами:
-
для шапки документів H+<ТИП ДОКУМЕНТУ>
-
для рядків документів R+<ТИП ДОКУМЕНТУ>
-
Це і все. Залишилось перезапустити систему, знайти створений тип документу, додати папку і перевірити чи все працює так як потрібно.
-
Пам'ятайте, що папка userStru повинна знаходитись в папці userData.