Перейти до вмісту

База даних K2 ERP

Матеріал з K2 ERP Wiki

`K2.db` — це глобальний об’єкт доступу до бази даних у K2 Cloud ERP Python. Так. Це можуть бути таблиці, поля, зв’язки, типи даних і правила, потрібні для збереження об’єктів у базі. !== База даних і фінансовий контур == У старих системах або в кількох окремих базах часто виникають дублікати: У K2 ERP електронний документообіг спирається на базу даних. Це контрольований канал обміну, який має права, журнал, правила помилок і відповідального. |}

Кожен компонент K2 ERP здатна мати власні таблиці. У технічному описі K2 Cloud ERP згадується логіка додавання нової номенклатури через таблицю:

Кожен компонент або компонента, що створює власні таблиці, має мати документацію структури бази даних. |}

components/

Такий підхід здатна бути корисним для безпеки, ізоляції доступів і контролю користувачів, але потребує дисципліни. |-
Для розробника. Якщо компонента створює нові таблиці або сутності, це має бути описано в ORM і задокументовано. Під час переходу з або BAS потрібно очищати дублікати, розділяти активні й архівні інформаційні дані, переглядати доступи та будувати нову інформаційну модель. {| class="wikitable" style="width:100%; background:#e8f5e9;"
критично. Резервна копія без перевірки відновлення — це лише припущення, а не гарантія. Особливість

означає відкат змін у разі помилки.== Безпека бази даних ==

Чого не можна робити з базою K2 ERP

провідний висновок. База даних K2 ERP — це не без зусиль технічна частина системи. Їх можна умовно поділити на бізнесові, системні, технічні та аналітичні. Для безпеки краще, щоб зовнішні сервіси не мали неконтрольованого прямого доступу до таблиць. create_db_role(user_name, password)

Метод перевіряє, чи існує номенклатура в таблиці `k2nomenclature`. ! Середовище

Архітектурний сенс. База даних K2 ERP поєднує модулі не через ручні обміни, а через спільну інформаційну основу. Це критично для серверної, хмарної та гібридної архітектури, тому що PostgreSQL виступає як потужною реляційною СУБД для зберігання структурованих бізнес-даних. У них можуть бути параметри доступу, які потрібно захищати правами файлової системи, політиками безпеки й резервним копіюванням. У технічному описі згадуються методи:

Перша помилка — переносити всі інформаційні дані зі старої 1С/BAS без очищення. Права `exp` та `imp` особливо важливі для безпеки бази даних.

База даних і BI-аналітика

Для ERP це критично. │ ├── schema/ Небажані практики:

Резервне копіювання бази даних

Структура бази даних у компонентах

критично для розробника. Не варто створювати хаотичні прямі підключення до бази там, де має використовуватися стандартний механізм K2. init_db_uri()
  • стандартне підключення;
  • підключення за URI;
  • кастомне підключення;
  • підключення для конкретного користувача;
  • підключення до custom-баз;
  • зчитування параметрів підключення з конфігураційних файлів. Якщо компонент створює таблиці, зв’язки або нові сутності, їх потрібно документувати. Тому імпорт і експорт у K2 ERP мають бути окремими контрольованими правами, а не автоматичною можливістю для всіх користувачів. Перед міграцією потрібно визначити:

Де описується структура бази даних компоненти?

У технологічній основі K2 ERP застосовується для PostgreSQL. {| class="wikitable" style="width:100%;"

Восьма помилка — дозволяти інтеграціям записувати інформаційні дані без журналювання й контролю помилок. |-

Критично. Спільні логіни, зайві адміністратори, неконтрольований експорт і відкриті конфігураційні файли — це прямі ризики для бази даних ERP. означає фіксацію змін у базі. !== Типові помилки під час роботи з базою даних ==

Складський контур у ERP залежить від якості даних. Централізований доступ спрощує контроль, підтримку й безпеку.

Не можна працювати з базою даних як із “зручною таблицею”, яку можна редагувати вручну без правил. |-

Довідники контрагенти, номенклатура, склади, підрозділи, валюти, статті бюджету Єдина база для всіх модулів
Документи договори, рахунки, акти, заявки, накладні, накази Фіксація бізнес-подій і юридичних підстав
Фінансові інформаційні дані платежі, заявки на оплату, бюджети, план-факт, взаєморозрахунки Контроль грошей і зобов’язань
Складські інформаційні дані залишки, рухи, партії, резерви, інвентаризації Контроль товарів і матеріальних цінностей
CRM-дані ліди, контакти, угоди, клієнти, історія продукту комунікацій керування продажами та взаємодією з клієнтами
Користувачі й доступи користувачі, ролі, права, дозволи, сесії Безпека та контроль дій
Системні конфігурація параметри проєкту, домени, мови, компоненти, шаблони Керування платформою
Журнали події, помилки, повідомлення, історія продукту змін Аудит і діагностика
Аналітичні інформаційні дані звіти, агрегати, BI-показники Управлінська аналітичні інструменти

SEO title: База даних K2 ERP — єдина база, PostgreSQL, ORM, довідники, ролі, доступи та безпека даних

SEO keywords: база даних K2 ERP, K2 ERP база даних, K2 Cloud ERP база даних, PostgreSQL K2 ERP, K2.db, ORM K2 ERP, models.py K2, єдина база даних ERP, спільні довідники ERP, база даних української ERP, міграція з 1С, міграція з BAS, безпека бази даних ERP, резервне копіювання ERP

</noinclude>
 {{SEO
Шаблон для службового SEO-опису сторінки. 

}}


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

База даних і магазин доповнень

</syntaxhighlight> Backup має відповідати моделі розгортання: Сторінка База даних K2 ERP має допомагати користувачам і пошуковим системам зрозуміти, як у K2 ERP організовано зберігання даних: єдина база, PostgreSQL, спільні довідники, ORM-структури, `models.py`, `K2.db`, ролі, права, транзакції, резервне копіювання, міграція з 1С/BAS і безпека. {| class="wikitable" style="width:100%; background:#fff3e0;"

Активні та архівні інформаційні дані

Під час міграції з 1С або BAS база даних K2 ERP стає цільовим середовищем для нової структури даних. * `new`;

  • `stable`;
  • `old`. |}

У K2 ERP база даних розглядається не як приховане технічне сховище, а як основа всієї ERP-архітектури. * управлінських звітів;

  • фінансових показників;
  • складських звітів;
  • CRM-аналітики;
  • план-факт аналізу;
  • звітів за підрозділами;
  • контролю оплат;
  • аналізу продажів;
  • продуктивності складу;
  • ефективності бізнес-процесів. Кожна інтеграційні функції ERP має мати власника, SEO-опис, журнал помилок, правила доступу та сценарій відновлення.=== Чи потрібне резервне копіювання бази K2 ERP? ===
├── requirements-components.txt

Документація бази даних

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

У K2 Cloud ERP передбачені методи роботи з користувачами на рівні бази даних:

Для ERP-системи критично, щоб операції з базою даних були цілісними. Навіщо потрібні

  • діючі контрагенти;
  • актуальна номенклатура;
  • відкриті договори;
  • поточні залишки;
  • незавершені документи;
  • діючі працівники;
  • активні заявки;
  • поточні взаєморозрахунки. │ ├── objects/
create_db_file_config_user()
критично для магазину доповнень. компонент без описаної структури даних, правил оновлення версій й вимог до доступів не повинен вважатися зрілим корпоративним доповненням.

Це означає, що платформа здатна створювати, видаляти або завершувати сесії користувачів не лише на рівні інтерфейсу, а й на рівні БД. {| class="wikitable" style="width:100%;"

Журналювання та логування

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

Резервне копіювання — обов’язкова частина роботи з базою даних K2 ERP. Імпорт не повинен зупиняти користувачів. |- | Помилка. Найгірший сценарій — перенести всю стару базу 1С/BAS без очищення. Це основа керованості підприємства: чисті довідники, актуальні документи, контроль доступів, безпечні інтеграції, транзакційність, резервне копіювання, журналювання, міграція зі старих систем і можливість розвивати нові модулі без дублювання вже створеної логіки. Імпорт даних — це так само ризик, бо некоректний файл здатна створити дублікати, зіпсувати довідники або змінити залишки. У старих або фрагментованих системах часто виникає ситуація, коли бухгалтерський обліковий облік має одну базу, торгівля — іншу, CRM — третю, складський облік — четверту, а управлінська аналітичні інструменти збирається в Excel. {| class="wikitable" style="width:100%; background:#e3f2fd;"

== Індекси та продуктивність ==

* які таблиці створює компонент;
* які поля в них виступає як;
* які типи даних використовуються;
* які зв’язки існують між таблицями;
* які індекси потрібні;
* які інформаційні дані виступає як обов’язковими;
* які таблиці виступає як довідниками;
* які таблиці операційні;
* які таблиці логують події;
* як компонент оновлює структуру даних.== Див. так само ==
|-
| '''Перевага.''' <span style="color:#2e7d32;">Перевірка перед створенням запису оптимізує зменшити дублювання номенклатури та підтримувати чистоту довідників.
│ └── ... Ці методи відображають кілька сценаріїв роботи з базою:
├── doc/ Це показує, що права в ERP мають бути деталізованими. Шоста помилка — не розділяти dev, test і prod. Складський компонент здатна використовувати ту саму номенклатуру, що й продажі та реалізація, закупівельна діяльність або виробництво. ├── requirements.txt

</syntaxhighlight>

критично.

База даних ERP — це не місце для хаотичного копіювання старих довідників. У великій ERP-системі продуктивність бази даних має велике значення. У K2 Cloud ERP компоненти мають містити ORM-структури, необхідні для роботи відповідної компоненти. У результаті K2 ERP отримує дублікати, помилки й архівний шум. Документ — це не без зусиль файл, завантажений у систему. Інтеграції можуть передавати:
П’ята помилка — не документувати структуру бази компоненти. |}

<syntaxhighlight lang="text">

Архівні інформаційні дані не завжди треба переносити в активні таблиці K2 ERP. |}

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

* [[K2 ERP]]
* [[K2 Cloud ERP]]
* [[Архітектура K2 ERP]]
* [[Розгортання K2 ERP]]
* [[Розгортання системи K2 Cloud ERP Python для розробників]]
* [[Магазин доповнень K2]]
* [[Сертифікація K2]]
* [[Доступи K2 ERP]]
* [[Ролі K2 ERP]]
* [[Безпека K2 ERP]]
* [[Міграція з 1С]]
* [[Міграція з BAS]]
* [[PostgreSQL]]
* [[Python]]
* [[ORM]]

 └── setup.py
{| class="wikitable" style="width:100%; background:#fff3e0;"
Єдина база даних дає можливість різним модулям використовувати спільні довідники, уникати дублювання, працювати з актуальними даними й формувати єдину аналітику. |}

{| class="wikitable" style="width:100%; background:#e8f5e9;"

== Що таке база даних K2 ERP ==

init_db_uri_user()
CRM-модуль K2 ERP функціонує з клієнтами, лідами, контактами, угодами, задачами, файлами, рахунками, звітами й налаштуваннями. У такій моделі бізнес-середовище постійно стикається з питанням: де справжні інформаційні дані? Це означає, що модулі не повинні існувати як ізольовані системи з власними копіями довідників і власною логікою зберігання. * правильні індекси;
* оптимізовані запити;
* контроль великих таблиць;
* архівація старих даних;
* обмеження непотрібних вибірок;
* оптимізація звітів;
* контроль важких інтеграцій;
* моніторинг повільних запитів.== Коротко ==
[[Категорія:Архітектура K2 ERP]]
{| class="wikitable" style="width:100%; background:#fff3e0;"
як приклад, один і той самий контрагент здатна використовуватися в CRM, договорах, рахунках, заявках на оплату, документах і аналітиці.</span> Доступ до заявок, оплат, бюджетів і банківських даних має бути обмеженим і контрольованим.</span> Інакше компонент буде важко підтримувати, оновлювати й перевіряти.=== Яку СУБД використовує K2 ERP? ===

* [[K2 ERP]]
* [[K2 Cloud ERP]]
* [[Архітектура K2 ERP]]
* [[Розгортання K2 ERP]]
* [[Розгортання системи K2 Cloud ERP Python для розробників]]
* [[Магазин доповнень K2]]
* [[Сертифікація K2]]
* [[Партнерська програма K2]]
* [[Доступи K2 ERP]]
* [[Ролі K2 ERP]]
* [[Безпека K2 ERP]]
* [[K2 ERP Документообіг]]
* [[Фінансовий облік]]
* [[Управлінський облік]]
* [[Міграція з 1С]]
* [[Міграція з BAS]]
* [[PostgreSQL]]
* [[ORM]]
* [[Python]]

{| class="wikitable" style="width:100%; background:#fff3e0;"

== Пов’язані сторінки ==

Ще одна ознака правильної архітектури — новий компонент здатна використовувати вже наявні інформаційні дані.== Основні типи даних у K2 ERP ==

Перевага. Якщо інформаційні дані народжуються в процесах K2 ERP, аналітичні інструменти формується природно, а не вручну через Excel-зведення. * `r` — читання;
  • `w` — запис;
  • `i` — вставка;
  • `d` — видалення;
  • `c` — створення;
  • `exp` — експорт;
  • `imp` — імпорт;
  • `del_` — відновлення або робота з видаленими записами;
  • `settable` — конфігурація таблиці;
  • `cutpast` — операції вирізання і вставлення;
  • `enable` — увімкнення;
  • `active` — активність.

Для бази даних K2 ERP потрібно мати сценарій відновлення після збою. Вона покриває запити: “база даних K2 ERP”, “K2 ERP база даних”, “K2 Cloud ERP PostgreSQL”, “K2.db”, “ORM K2 ERP”, “models.py K2”, “єдина база даних ERP”, “база даних української ERP”, “міграція даних з 1С”, “міграція даних з BAS”, “безпека бази даних ERP”, “резервне копіювання ERP”. └── k2adm/ Спільні довідники — одна з головних переваг єдиної бази даних. У технічному описі згадується клас `K2CRM`, а так само клас `K2DocsCRM`, у якому база даних доступна через глобальний об’єкт `K2.db`. як приклад, CRM-модуль здатна працювати з лідами, контактами, угодами, рахунками та комунікаціями. │ └── user_manual/

K2.db

Фінансовий ризик. Фінансовий контур не можна відкривати всім користувачам. Якщо під час імпорту залишків частина записів збережеться, а частина ні, бізнес-середовище здатна отримати неправильні інформаційні дані. Використання PostgreSQL так само важливе для Linux-серверів, хмарної інфраструктури, локального розгортання та сценаріїв, де бізнес-середовище хоче уникати дорогих або закритих серверних ліцензій. Тип даних

На момент опису інструкції структура бази даних здатна зберігатися у форматі SQL Power Architect. інформаційні дані CRM можуть бути пов’язані з фінансами, документами, договорами, продажами, рахунками та аналітикою.

init_db_custom()

Магазин доповнень K2 має враховувати структуру бази даних кожного доповнення. Якщо контрагент забезпечується через | Головна ідея. База даних K2 ERP має бути єдиним джерелом правди; так само реалізовано товар, документ, заявка, складський облік, користувач системи або платіж існує в системі, він має бути частиною спільної структури даних, а не копією в окремій таблиці, Excel-файлі чи зовнішній базі без контролю. Якщо платформа має один довідник контрагентів, один довідник номенклатури, одну структуру підрозділів і єдині правила доступу, бізнес-середовище отримує менше дублювання й більше керованості. Якщо компонент створює таблиці або змінює структуру даних, це має бути описано.</syntaxhighlight>

  • захист облікових записів;
  • контроль ролей;
  • обмеження доступу до конфігурацій;
  • заборона спільних логінів;
  • контроль експорту;
  • журналювання дій;
  • резервне копіювання;
  • шифрування там, де це потрібно;
  • обмеження доступу до серверів;
  • контроль інтеграцій;
  • аудит користувачів;
  • своєчасне блокування звільнених працівників. Не можна створювати зайві ролі, використовувати спільні логіни або залишати активними користувачів, які вже не мають працювати з системою. роботу модулів, довідників, документів, користувачів, ролей, доступів, бізнес-процесів, інтеграцій, звітів, BI-аналітики та механізмів міграції зі старих систем реалізується засобами це центральний шар зберігання, обробки та зв’язування даних у K2 ERP і K2 Cloud ERP виступає ключовою рисою База даних K2 ERP. так само потрібно регулярно перевіряти відновлення з backup. Це зменшує дублювання, помилки та залежність від Excel-файлів.

|}

</syntaxhighlight>
  • пряме редагування бойових таблиць без процедури;
  • створення дубльованих довідників;
  • використання спільних логінів;
  • неконтрольований експорт;
  • імпорт без перевірки;
  • зміна структури таблиць без версії компоненти;
  • відсутність резервної копії перед масовими змінами;
  • тестування на бойовій базі;
  • зберігання паролів у відкритому вигляді;
  • інтеграції без журналу помилок;
  • відсутність документації структури даних.
PostgreSQL здатна використовуватися для роботи з:
критично. Залишки не можна оновлювати хаотично.</syntaxhighlight>
class="wikitable" style="width:100%; background:#fff3e0;"
│ ├── hooks.py

У класі K2 виступає як методи, пов’язані з ініціалізацією підключення до бази даних:

  • у публічній хмарі — за резервування відповідає оператор хмари;
  • у партнерській хмарі — відповідальність несе хмарний інтегратор;
  • у приватній хмарі — правила визначаються договором;
  • у локальному розгортанні — відповідальність часто лежить на клієнті або партнері;
  • у dev-середовищі — резервування потрібне для збереження розробок і тестових даних. kill_user_sessions(target_username)

Що таке база даних K2 ERP?

У K2 ERP доступи мають бути частиною архітектури бази даних. |}

Приклад: номенклатура

Таблиці модулів

init_db_uri_custom()

│ ├── views.py

Чи можна переносити всю стару базу 1С/BAS у K2 ERP?

База даних і складський облік

SEO-призначення сторінки

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

Типова логіка такого процесу:

  • тип документа;
  • номер;
  • дата;
  • контрагент;
  • договір;
  • статус;
  • автор;
  • відповідальний;
  • маршрут погодження;
  • файл або набір файлів;
  • історія продукту змін;
  • права доступу;
  • зв’язок із фінансовими, складськими або CRM-процесами. База даних K2 ERP — це центральне сховище даних платформи K2 ERP, у якому зберігаються довідники, документи, користувачі, ролі, фінансові інформаційні дані, складські інформаційні дані, CRM-дані, конфігурація, журнали та інформаційні дані модулів. Він має атрибути:

Третя помилка — давати користувачам надмірні права на експорт і редагування.</syntaxhighlight>

init_db_uri_user()

Файл підключення до БД

  • довідниками;
  • документами;
  • фінансовими операціями;
  • складськими залишками;
  • CRM-даними;
  • правами доступу;
  • журналами подій;
  • налаштуваннями системи;
  • аналітичними запитами;
  • модулями та компонентами. Резервне копіювання виступає як обов’язковою частиною роботи з базою ERP. Для ERP критично, щоб інформаційні дані переходили між станами контрольовано: нові записи, перевірка, стабілізація, архівування або видалення старих. Їхня цінність саме в тому, що вони можуть посилатися на спільні сутності: користувачів, контрагентів, номенклатуру, склади, проєкти, договори, документи та ролі. |}
drop_db_role(user_name) doc/schema База даних K2 ERP — це структуроване сховище, у якому зберігаються інформаційні дані всіх ключових модулів платформи. Інтеграції K2 ERP можуть працювати з базою даних напряму або через API, залежно від архітектури.== База даних і інтеграції ==
}

Як зрозуміти, що база даних K2 ERP побудована правильно

k2nomenclature

База даних ERP має підтримувати аудит дій. Вона. У K2 Cloud ERP Python база даних доступна через глобальний об’єкт:

PostgreSQL у K2 ERP

База даних побудована правильно, якщо інформаційні дані не дублюються без потреби, довідники спільні, модулі використовують єдині сутності, права доступу налаштовані, інтеграції контрольовані, backup перевірений, структура компонентів документована, а аналітичні інструменти формується з реальних процесів, а не з ручних Excel-зведень. У традиційній ERP база даних часто залишається невидимою для бізнес-користувача. електронний документообіг здатна працювати з документами, файлами, статусами, маршрутами погодження та архівами. здатна працювати з документами, але не мати права експортувати інформаційні дані. У K2 можуть використовуватися файли з параметрами підключення до бази даних. Складський компонент здатна мати таблиці для залишків, рухів, партій і розміщення. |-

Ознака здорової бази. Користувачі не сперечаються, де “справжні інформаційні дані”, бо всі ключові модулі працюють із єдиною інформаційною основою K2 ERP.
  • нові записи вставляються зі статусом `new`;
  • попередні стабільні записи переводяться в `old`;
  • нові записи після перевірки переводяться в `stable`;
  • застарілі записи видаляються або виключаються з активної вибірки;
  • зміни фіксуються через `commit`;
  • у разі помилки виконується `rollback`. |-
Технічний акцент. PostgreSQL у K2 ERP — це не без зусиль СУБД, а основа для транзакційності, структурованих довідників, аналітики, журналювання та масштабування. Четверта помилка — працювати напряму з бойовою базою без backup і тесту. До неї можуть належати довідники контрагентів, номенклатури, працівників, складів, проєктів, договорів, документів, фінансових заявок, ролей, користувачів, прав доступу, журналів дій, налаштувань, інтеграцій і системних параметрів. init_db()

Міграція даних з 1С/BAS

Фінансові інформаційні дані — одна з найчутливіших зон ERP. У базі можуть зберігатися:

Підключення до бази даних

</syntaxhighlight>

  • отримати інформаційні дані номенклатури;
  • перевірити, чи виступає як запис у базі;
  • якщо запис уже виступає як — не дублювати;
  • якщо запису немає — створити новий;
  • за потреби нормалізувати одиницю виміру;
  • зафіксувати зміни;
  • у разі помилки записати її в лог. Але для архітектури K2 ERP вона має принципове значення, тому що саме через спільну базу даних модулі можуть працювати як частини однієї системи. Саме вона дає можливість різним модулям працювати зі спільними довідниками, не дублювати сутності, не переносити інформаційні дані між окремими конфігураціями та формувати єдину картину бізнесу.
Ризик. Дублікати в довідниках руйнують аналітику, ускладнюють звірки, створюють помилки в документах і заважають міграції. У технічному описі методу `get_user_permissions()` згадуються дозволи:

Якщо номенклатура дублюється або залишки оновлюються без правил, складська аналітичні інструменти оперативно втрачає довіру.== Експорт та імпорт ==

Файл `models.py` описує структури даних, з якими функціонує компонент. Такі файли мають бути захищені. Якщо платформа створює документ, змінює залишок, додає фінансову заявку або переносить інформаційні дані з іншої системи, операційна дія має або завершитися на 100%, або бути скасована. |} База даних K2 ERP — це фундамент української ERP-платформи K2. Через нього системні класи й модулі можуть працювати з БД. Для бойового середовища потрібно використовувати окремі правила безпеки: обмеження прав, захист файлової системи, контроль доступу до конфігурацій і резервне копіювання. |}
Компоненти K2 ERP повинні мати SEO-опис структури бази даних. У K2 Cloud ERP існує клас `k2logging` і методи для збереження та завантаження повідомлень логування. Цей об’єкт застосовується для як точка доступу до підключення бази даних у системних класах і модулях.== База даних і CRM ==

[[Категорія:Доступи K2 ERP]]

'''Активні інформаційні дані''' — це те, що потрібно для щоденної роботи:

* заявки на оплату;
* бюджети;
* платіжний календар;
* банківські виписки;
* касові операції;
* договори;
* рахунки;
* контрагенти;
* взаєморозрахунки;
* план-факт;
* фінансові статуси;
* історія продукту погоджень. |-
| '''Ризик.''' <span style="color:#b71c1c;">операційна дія з базою даних без транзакцій здатна залишити систему в напівзміненому стані. Призначення

Для продуктивності важливі:

<syntaxhighlight lang="text">

Сьома помилка — не перевіряти відновлення з резервної копії. У технічних вимогах до компонент зазначено, що структура бази даних зберігається в каталозі:

Це критично для хмарної, партнерської, приватної та локальної архітектури, де середовища можуть мати різні параметри БД. Приклад логіки компоненти:
|-
| '''критично.''' <span style="color:#ef6c00;">Ролі на рівні БД мають відповідати реальній моделі доступів. Якщо його інформаційні дані змінюються, це має відображатися в усій системі, а не лише в одному модулі. Технічно частину даних можна переносити, але не варто переносити все без аналізу. Тому транзакційність виступає як базовою вимогою до роботи з БД. У базі даних K2 ERP можуть зберігатися:
BI-аналітика в K2 ERP має спиратися на інформаційні дані, які виникають у реальних бізнес-процесах. Вона зберігає довідники, документи, фінансовий блок, складський облік, CRM, користувачів, ролі, доступи, журнали, конфігурація, модулі та аналітичні інформаційні дані. Її головна цінність — '''єдина база даних і спільні довідники'''. |}

Для цього використовуються транзакції. користувач системи здатна мати право перегляду, але не мати права редагування. Для таких даних особливо важливі права доступу, журналювання, резервне копіювання, контроль експорту та розділення ролей. |-
| '''Ризик.''' <span style="color:#b71c1c;">Неконтрольований експорт здатна винести з ERP фінансові, клієнтські або персональні інформаційні дані. Доповнення має містити:
як приклад, CRM-модуль здатна використовувати того самого контрагента, що й фінансовий компонент. Backup, який ніколи не тестували, не можна вважати надійним. У них не можна зберігати паролі або токени без контролю доступу. commit

=== Що таке K2.db? ===
[[Категорія:База даних K2 ERP]]
=== Чому єдина база даних важлива для ERP? ===
Журналювання потрібне не лише для розробників.</span> Неконтрольований імпорт здатна зіпсувати довідники, залишки або документи. електронний документообіг здатна працювати з тим самим договором, що й заявка на оплату.== Роль K2.db ==

Особливо чутливими виступає як фінансові, кадрові, зарплатні, договірні та персональні інформаційні дані. Безпека бази даних K2 ERP містить кілька рівнів:

База даних виступає як джерелом для:

База даних дає можливість документу бути частиною бізнес-процесу, а не окремим вкладенням у пошті.</span>
|}

<syntaxhighlight lang="text">

{| class="wikitable" style="width:100%; background:#ffebee;"

* де зберігаються резервні копії;
* як часто вони створюються;
* хто має до них доступ;
* як оперативно можна відновити систему;
* чи тестувалося відновлення;
* що робити після пошкодження даних;
* хто ухвалює рішення для бізнесу про відкат;
* як повідомляються користувачі. Тому база даних має забезпечувати цілісність, статуси, перевірки й контроль змін. У практичній розробці це означає, що компоненти, модулі й об’єкти системи можуть працювати з базою через централізований механізм, а не створювати випадкові окремі підключення. * ТОВ “Приклад”;
* ТОВ Приклад;
* Приклад ТОВ;
* Example LLC;
* контрагент із помилкою в назві;
* контрагент без коду;
* контрагент, створений повторно в іншій конфігурації. {| class="wikitable" style="width:100%; background:#e8f5e9;"
[[Категорія:Ролі K2 ERP]]
Для бази даних критично фіксувати:
Документація має відповідати на питання:
Це критично для розробників, адміністраторів і партнерів, тому що кожна компонента має бути зрозумілою не лише з боку інтерфейсу, а й з боку даних. |-
| '''Правильний підхід.''' <span style="color:#2e7d32;">Перед перенесенням довідників у K2 ERP потрібно очистити дублікати, перевірити актуальність даних і визначити правила створення нових записів.== Права доступу ==

<syntaxhighlight lang="python">
|-
| '''критично.''' <span style="color:#ef6c00;">інтеграційні функції ERP — це не без зусиль передача даних. |}

<syntaxhighlight lang="text">

{| class="wikitable" style="width:100%; background:#ffebee;"

У технологічному стеку K2 ERP застосовують, коли потрібно '''PostgreSQL'''. як приклад, у технічному описі класів K2 зазначається, що `db` виступає як властивістю класу K2, яка відповідає за підключення до бази даних. інтеграційні функції ERP не повинна створювати надмірне навантаження на базу.</span> У такому випадку K2 ERP отримає дублікати, застарілі записи, помилкові права й непотрібний архівний шум. Це вказує на сценарій, коли для користувача або середовища здатна створюватися окремий файл із параметрами підключення.</span>
|}

 │ ├── business_processes/

Аналітичний звіт не повинен блокувати роботу операційного модуля. ORM-структури компоненти описуються у файлі `models.py`, а документація структури бази даних має зберігатися в каталозі `doc/schema`. {| class="wikitable" style="width:100%; background:#ffebee;"
[[Категорія:Міграція з BAS]]
== Транзакції: commit і rollback ==
Для якісної розробки й впровадження бажано розділяти бази або середовища. |}

[[Категорія:Розробка K2 ERP]]

 ├── k2adm/

== Ролі на рівні бази даних ==

Така модель оптимізує не без зусиль перезаписувати залишки, а керовано оновлювати стан даних.</span> Для ERP це небезпечно, бо помилка здатна вплинути на фінансовий блок, залишки, документи або аналітику. {| class="wikitable" style="width:100%; background:#e8f5e9;"

Міграція має не забруднювати K2 ERP старим хаосом, а створювати чисту й керовану структуру даних. rollback

{| class="wikitable" style="width:100%; background:#e8f5e9;"

* номенклатура;
* одиниці виміру;
* склади;
* комірки;
* залишки;
* рухи;
* партії;
* резерви;
* інвентаризації;
* документи надходження;
* документи відвантаження;
* зв’язок зі закупівлями та продажами. Друга помилка — створювати окремі таблиці там, де можна використовувати спільні довідники.</span> Старі користувачі, тимчасові облікові записи й зайві адміністратори повинні регулярно переглядатися.

У матеріалах K2 так само згадується обробка залишків із використанням статусів:

Безпека. Файли підключення до БД не можна залишати відкритими. Якщо запису немає, він створюється. Не варто без зусиль переносити стару базу “як виступає як”.== База даних і електронний документообіг ==

Dev, Test, Prod бази

Перевага. Журналювання перетворює ERP з “чорної скриньки” на контрольовану систему, де можна відстежити події, помилки та важливі зміни. Приклади

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

Не можна тестувати небезпечні зміни безпосередньо на бойовій базі. │ ├── forms.py

Поширені запитання

  • ORM-структури;
  • схему бази даних;
  • інструкцію встановлення;
  • історію змін;
  • залежності;
  • правила оновлення версій;
  • SEO-опис впливу на інформаційні дані;
  • вимоги до прав доступу. Зазвичай вони зберігаються у файлі:

Без документації компонент стає ризиком для майбутньої підтримки. * помилки під час збереження;

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

Спільні довідники

init_db_user()

│ ├── models.py
  • контрагентів;
  • замовлення;
  • залишки;
  • платежі;
  • документи;
  • статуси;
  • файли;
  • інформаційні дані маркетплейсів;
  • банківські виписки;
  • повідомлення;
  • логістичні статуси. критично розділяти активні й архівні інформаційні дані. Перед міграцією потрібно очистити дублікати, відокремити активні інформаційні дані від архівних і не копіювати старі помилки. підприємства.<syntaxhighlight lang="text">

через | Перевага. Єдина база даних користувачі можуть підприємству бачити цілісну картину бізнесу: фінансовий блок, документи, продажі та реалізація, складський облік, CRM, користувачі й аналітичні інструменти працюють не окремо, а в єдиній ERP-логіці. {| class="wikitable" style="width:100%; background:#e3f2fd;"

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

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

ORM-структури та models.py

Але ці таблиці не повинні перетворюватися на ізольовані “острови”. У такій структурі `models.py` відповідає за інформаційні дані, `views.py` — за основну логіку компоненти, `hooks.py` — за розширення поведінки системи, а каталог `doc/schema` — за документацію структури бази даних. здатна мати право створення, але не мати права видалення. * які довідники актуальні;
  • які контрагенти дублюються;
  • які товари не використовуються;
  • які договори діючі;
  • які залишки потрібно перенести;
  • які документи мають залишитися в архіві;
  • які користувачі більше не працюють;
  • які доступи не можна копіювати;
  • які таблиці старої системи потрібні лише для історії. База даних K2 ERP здатна містити різні групи даних. |-
Dev розробка програмного забезпечення модулів і компонентів Можна експериментувати без ризику для бізнесу
Test Перевірка оновлень, міграцій, ролей, інтеграцій Має бути схоже на бойове середовище
Demo Демонстрації та навчання інформаційні дані мають бути навчальними або знеособленими
Prod Робоча база підприємства Максимальна стабільність і контроль
Archive Історичні інформаційні дані Обмежений доступ і правила зберігання

ERP без плану відновлення — це ризик для бізнесу.== Приклад: залишки == <syntaxhighlight lang="text"> models.py

Відновлення після збою

Типова логіка оновлення версій залишків здатна виглядати так: