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

K2 Ядро

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


У закритій ERP розробник часто бачить тільки зовнішній інтерфейс або обмежений API. {| class="wikitable" style="width:100%; background:#e3f2fd;"

components/

  • Python;
  • TypeScript;
  • JavaScript;
  • сучасні PHP-фреймворки;
  • PostgreSQL;
  • API;
  • веб-компоненти;
  • гриди;
  • форми;
  • dashboard-панелі;
  • інтеграційні сервіси. Дублікати, старі права, неактуальні довідники й зайві документи потрібно очищати. |-

| Технічний принцип. Структура даних компоненти має бути частиною архітектури, а не випадковим набором таблиць. базову архітектуру платформи: роботу модулів, бази даних, довідників, користувачів, ролей, доступів, компонентів, API, інтеграцій, веб-інтерфейсів, бізнес-процесів, оновлень і розширень виступає ключовою рисою K2 Ядро реалізується засобами це центральна частина K2 ERP та K2 Cloud ERP, яка. K2 Ядро |- | Перевага компонентів. Компонент можна розвивати, тестувати, версіонувати й публікувати як частину екосистеми, а не як випадкову доробку. |}

Безпека має бути частиною ядра, а не додатковим модулем “після всього”. {| class="wikitable" style="width:100%; background:#e8f5e9;"

Через API можуть виконуватися:

K2 Ядро і магазин доповнень

Спільні довідники — це одна з практичних переваг ядра K2. |}

Сучасна ERP не функціонує ізольовано. |}

K2 Ядро — це фундамент K2 ERP та K2 Cloud ERP.

Модель Open Core означає, що базова або важлива частина системи здатна бути відкритою для вивчення та розробки, але ERP-продукт загалом залишається комерційним. {| class="wikitable" style="width:100%; background:#e8f5e9;" init_db_user() Партнери K2 можуть продавати, впроваджувати, супроводжувати, навчати, створювати модулі, запускати партнерську хмару й розробляти галузеві рішення для бізнесу. |}

</syntaxhighlight>

!

K2 Ядро як відкрите ядро

Приклад запису в історії:

K2 Ядро і безпека

кожного нового модуля.== Коротко == З ядром модулі працюють у спільному середовищі. {| class="wikitable" style="width:100%; background:#e8f5e9;"
Цінність відкритого ядра. Розробник здатна створювати рішення для бізнесу поверх наявної ERP-основи, а не писати власну платформу, власні довідники, власні доступи й власну інфраструктуру з нуля.
│ ├── views.py

Інтеграційні механізми ядра

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

Що входить до K2 Ядра

До базових інтерфейсних механізмів можуть належати:

  • модулі працюють в одному інформаційному середовищі;
  • довідники не дублюються;
  • користувачі мають єдину модель доступів;
  • інтерфейси мають спільну логіку;
  • компоненти мають версії;
  • зміни описані в history;
  • API застосовується для контрольовано;
  • інтеграції логуються;
  • оновлення версій тестуються;
  • новий компонент підсилює платформу, а не створює окремий острів. |}

Якщо CRM, складський облік, фінансовий блок, електронний документообіг і аналітичні інструменти використовують одні й ті самі довідники, бізнес-середовище отримує менше дублювання, менше помилок і більше довіри до даних. └── example_module/

- Помилка. Оновлювати компонент без версії, без history.txt і без тестування — небезпечно для ERP. Якщо ядро має зрозумілі правила компонентів, бази даних, API, доступів, інтерфейсів і оновлень, розробники можуть створювати доповнення, які не ламають систему. K2 Ядро має забезпечувати умови, у яких компоненти можуть підключатися, оновлюватися, взаємодіяти з базою, використовувати спільні довідники й не ламати роботу інших модулів. Якщо модулі використовують спільну інтерфейсну логіку ядра, платформа стає зрозумілішою. Ознаки правильного використання:

Компоненти K2

Якщо кожен компонент створює власний інтерфейсний підхід, користувачі плутаються, а технічна підтримка ускладнюється. {| class="wikitable" style="width:100%; background:#e8f5e9;"

Чому ядро важливе для K2 ERP?

База даних Підключення, ORM, транзакції, структури даних Щоб модулі працювали з єдиною інформаційною основою
Користувачі Облікові записи, сесії, ролі Щоб платформа знала, хто функціонує
Права доступу Читання, запис, створення, видалення, імпорт, експорт Щоб користувачі бачили тільки дозволені інформаційні дані
Компоненти Модульність, повторне використання, розширення Щоб нові функції створювалися як частини платформи
Гриди й форми Таблиці, CRUD, картки, інтерфейси Щоб користувачі працювали з даними
API Обмін даними, інтеграції, зовнішні сервіси Щоб K2 взаємодіяла з іншими системами
Журналювання Логи, події, помилки, історія продукту дій Для аудиту, діагностики й підтримки
оновлення версій Версії компонентів, сервер оновлень, history Щоб платформа розвивалася контрольовано
Меню й навігація Доступ до модулів, розділів і команд Щоб користувачі працювали в єдиному інтерфейсі
Шоста помилка — не оновлювати версію.== Журналювання та аудит == SEO title: K2 Ядро — основа K2 ERP, модульної архітектури, відкритого коду, бази даних, API та ERP-екосистеми SEO keywords: K2 Ядро, ядро K2 ERP, K2 Core, K2 ERP ядро, K2 Cloud ERP ядро, відкрите ядро ERP, Open Core ERP, ядро української ERP, модульна архітектура K2, компоненти K2 ERP, API K2 ERP, PostgreSQL K2 ERP, Python K2 ERP, TypeScript K2 ERP, PHP K2 ERP, K2.db, база даних K2 ERP, магазин доповнень K2, розробка K2 ERP
</noinclude>
 {{SEO
Шаблон для службового SEO-опису сторінки. 

}}


K2 Ядро і веб-архітектура

Що таке K2 Ядро?

Типовий файл:

class="wikitable" style="width:100%; background:#e3f2fd;"
Критично. Ядро без безпеки — це ризик для всієї ERP. * розуміти внутрішню логіку платформи;
  • створювати власні модулі;
  • використовувати спільні довідники;
  • працювати з базовою бізнес-логікою;
  • будувати інтеграції;
  • створювати доповнення;
  • адаптувати систему під процеси клієнта;
  • зменшувати залежність від одного виконавця;
  • не починати розробку з порожнього місця. Права на використання, встановлення, модифікацію та поширення визначаються ліцензією й комерційними умовами.

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

  • помилки;
  • дії користувачів;
  • зміни ролей;
  • імпорт;
  • експорт;
  • критичні операції;
  • інтеграційні помилки;
  • оновлення версій компонентів;
  • зміни документів;
  • фінансові дії;
  • доступ до архівів. ERP-система функціонує з фінансами, документами, персональними даними, договорами, контрагентами, складом, зарплатою, управлінською аналітикою та інтеграціями. * банки;
  • платіжні системи;
  • електронний електронний документообіг;
  • сайти;
  • інтернет-магазини;
  • маркетплейси;
  • служби доставки;
  • ПРРО;
  • SMS;
  • email;
  • месенджери;
  • BI-системи;
  • CRM;
  • зовнішні бази;
  • державні або комерційні сервіси.

оновлення версій ядра та компонентів

Ядро K2 можна розглядати як технічний і логічний фундамент ERP-системи. API потрібне для зв’язку ядра, модулів, зовнішніх сервісів, інтеграцій і веб-інтерфейсів. У відкритішій моделі він здатна глибше розуміти логіку системи, розширювати платформу, створювати модулі й інтеграції на базі ядра. Новий компонент, інтеграційні функції ERP, форма, грид, довідник або бізнес-процес не створюються “з нуля”, а використовують уже наявний фундамент платформи.

Магазин доповнень K2 залежить від якості ядра. |-

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

Сторінка K2 Ядро має допомагати користувачам і пошуковим системам зрозуміти, що виступає як технічною та архітектурною основою K2 ERP: ядро, відкрите ядро, Open Core, модулі, компоненти, єдина база даних, спільні довідники, API, ролі, доступи, K2Grid, PostgreSQL, Python, TypeScript, PHP, оновлення версій, магазин доповнень і партнерська ERP-платформа. Воно дає платформі модульність, повторне використання, відкритість для розробників, контроль даних, єдині довідники, спільну архітектуру, інтеграції та можливість масштабованого розвитку української ERP. Дія має перевірятися і на серверному рівні, і на рівні доступу до даних.

K2Grid можна розглядати як один із важливих інтерфейсних механізмів K2. У K2 Cloud ERP Python доступ до бази даних здатна здійснюватися через глобальний об’єкт:
UX-перевага. Спільне ядро інтерфейсів дає можливість користувачам швидше навчатися, бо різні модулі працюють за однаковою логікою. Якщо компонент створює нові таблиці, він має робити це не хаотично, а через зрозумілу структуру, яка здатна бути оновлена, задокументована й підтримана. * базову платформу;
  • спільні довідники;
  • стандартні компоненти;
  • інтерфейсні механізми;
  • доступ до API;
  • можливість створення модулів;
  • основу для інтеграцій;
  • модель оновлень;
  • технічну дисципліну;
  • основу для сертифікації. Вони дозволяють описувати таблиці, поля, зв’язки та сутності компоненти у зрозумілій структурі. Це означає, що робота системи переноситься у веббраузер, а не залежить від старих “товстих клієнтів”.== Навіщо потрібне ядро ERP ==
  • контрагенти;
  • номенклатура;
  • склади;
  • підрозділи;
  • працівники;
  • користувачі;
  • валюти;
  • статті бюджету;
  • договори;
  • проєкти;
  • статуси;
  • типи документів. Розробник не витрачає час на створення базових речей, а зосереджується на бізнес-логіці нового модуля. Саме для цього потрібні компоненти, API, спільні довідники, відкритіші механізми платформи, документація, Git-дисципліна й магазин доповнень. Але все це має працювати навколо спільного ядра. |}
│ └── user_manual/ K2 Ядро дає іншу модель:

Dev, Test, Prod у ядрі K2

  • єдину логіку роботи модулів;
  • доступ до бази даних;
  • спільні довідники;
  • користувачів і ролі;
  • права доступу;
  • API;
  • компоненти;
  • гриди та форми;
  • бізнес-процеси;
  • інтеграційні механізми;
  • оновлення версій;
  • журналювання;
  • розширення через модулі й доповнення. |}
</syntaxhighlight>

API в K2 Ядрі

  • оптимальні SQL-запити;
  • правильні індекси;
  • пагінація;
  • фільтрація;
  • контроль великих таблиць;
  • кешування там, де це доречно;
  • журналювання важких операцій;
  • оптимізація API;
  • контроль імпортів;
  • обмеження важких експортів;
  • тестування на реальних обсягах даних. Так платформа розвивається швидше, ніж набір окремих систем.
Уточнення. Відкритий похідний код не завжди означає класичний Open Source.== K2 Ядро і Open Core ==
  • спільні довідники;
  • єдину базу даних;
  • ролі й доступи;
  • документи;
  • архів;
  • імпорт;
  • інтеграції;
  • журналювання;
  • перевірку даних;
  • бізнес-процеси. Компонент у K2 — це окрема функціональна частина платформи, яка здатна мати власну логіку, моделі, форми, гриди, меню, шаблони, документацію, залежності й версію. Це призводить до дублювання, помилок і складної підтримки. Саме тут можуть описуватися моделі даних компоненти.

K2Grid як частина платформної логіки

Єдина база даних у ядрі

K2 Ядро і продуктивність

</syntaxhighlight>

Перевага. Ядро зменшує повторну розробку.

Перша помилка — обходити стандартні механізми ядра й робити “швидку доробку” напряму в базі або інтерфейсі. Якщо ядро сильне, кожен новий компонент підсилює всю систему. Для компонентів K2 важливу роль відіграють ORM-структури.

Його головна цінність — перетворення ERP із набору окремих доробок на єдину платформу. Ядро має підтримувати дисципліну середовищ. Для ERP це здатна бути дуже практичним підходом. Частина ядра K2 Ядро створює умови для повторного використання логіки. Ядро дає партнерам:

version_type = "stable" ├── doc/ Цей об’єкт виступає як частиною логіки доступу до БД і дає можливість компонентам та системним класам працювати з даними через централізований механізм. |-
Стратегічна перевага. K2 Ядро дає можливість бізнесу будувати власну ERP-архітектуру, а не залишатися заручником старої конфігурації або одного закритого постачальника. ! Якщо розробка програмного забезпечення обходить платформні механізми, вона створює технічний борг.

Див. так само

Ризик без ядра. Якщо кожен компонент створює власний довідник контрагентів або товарів, компанія-користувач оперативно отримує дублікати, різні назви, різні коди й різну аналітику.
Так. Якщо розробник створює компонент складу забезпечується через У простому поясненні ядро — це те, що не потрібно створювати заново; так само реалізовано CRM, документообігу, фінансових заявок, ресторану, готелю, інтернет-магазину або виробництва, він має спиратися на ядро, а не дублювати базові механізми. │ ├── models.py

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

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

У K2Grid можуть використовуватися:

Журналювати потрібно:

* [[K2 ERP]]
* [[K2 Cloud ERP]]
* [[Архітектура K2 ERP]]
* [[База даних K2 ERP]]
* [[Розгортання K2 ERP]]
* [[Розгортання системи K2 Cloud ERP Python для розробників]]
* [[Розробка веб-інтерфейсів K2]]
* [[Рекомендації для розробників K2]]
* [[Компоненти K2 ERP]]
* [[K2Grid]]
* [[Гриди K2 ERP]]
* [[Форми K2 ERP]]
* [[Магазин доповнень K2]]
* [[Сертифікація K2]]
* [[Партнерська програма K2]]
* [[Доступи K2 ERP]]
* [[Ролі K2 ERP]]
* [[Безпека K2 ERP]]
* [[API]]
* [[ORM]]
* [[Python]]
* [[TypeScript]]
* [[JavaScript]]
* [[PHP]]
* [[PostgreSQL]]
* [[Open Core]]
* [[Відкритий похідний код]]
* [[Міграція з 1С]]
* [[Міграція з BAS]]

init_db()

 ├── requirements.txt

=== Чи можна створювати власні модулі на базі K2 Ядра? ===

[[Категорія:Архітектура K2 ERP]]

init_db_uri()

[[Категорія:PostgreSQL]]

K2 Ядро можна умовно поділити на кілька груп механізмів. ! Не можна тестувати ризикові зміни одразу на бойовій системі. Це означає, що K2 не виступає як на 100% вільною Open Source-системою без комерційних обмежень, але частина платформи здатна бути доступною для вивчення, адаптації та розробки розширень. Це означає, що вже створені частини системи можуть бути корисними для нових модулів. Для українського бізнесу ядро K2 має ще одне значення — технологічну незалежність. |}

<syntaxhighlight lang="text">
|-
| '''Критично.''' <span style="color:#b71c1c;">Якщо ядро слабке, кожен новий компонент перетворюється на окрему доробку. K2 Ядро має підтримувати інтеграції з іншими системами й сервісами. '''K2 Ядро''' — це базовий рівень платформи K2 ERP, який відповідає за спільні механізми роботи системи.</span>
|}

Міграція має спиратися на ядро:

Для компонентів важливі:

Третя помилка — писати власний CRUD, якщо виступає як стандартний грид або форма.</span>
|}

Без ядра кожен компонент здатна мати власні довідники, власних користувачів, власні права, власний інтерфейс, власні інтеграції й власну логіку оновлень.== Типові помилки при роботі з ядром ==
== K2.db і доступ до бази ==
Сучасне K2 Ядро орієнтоване на Web-архітектуру.</span> У ньому закладені правила роботи з даними, користувачами, ролями, доступами, компонентами, оновленнями й бізнес-логікою. Воно приймає не без зусиль старі інформаційні дані, а нову інформаційну модель підприємства. |-
| '''Технічний акцент.''' <span style="color:#1565c0;">K2 Ядро — це шар, який дає можливість платформі бути не набором окремих програм, а цілісною ERP-системою.</span>
|}

Сьома помилка — публікувати зміни без тестування. До технологічного шару можуть належати Python, TypeScript, JavaScript, PHP, PostgreSQL, API, ORM, K2Grid, компоненти, сервер оновлень і веб-інтерфейси. Якщо компанія-користувач функціонує на закритій або застарілій платформі, воно залежить від конкретного вендора, старих спеціалістів, старої архітектури й обмежених можливостей розвитку.</span>
|}

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

'''Відкрите ядро''' дає розробникам і партнерам можливість:

K2 Ядро має підтримувати контрольовану модель оновлень. Критерій

! Це означає, що модулі не повинні створювати власні ізольовані інформаційні острови.</span>
|}

У технологічному шарі K2 можуть використовуватися:

Четверта помилка — не враховувати права доступу. як приклад:
|-
| '''Екосистемний ефект.''' <span style="color:#2e7d32;">Сильне ядро дає можливість магазину доповнень рости не хаотично, а як контрольована ERP-екосистема. До безпеки ядра належать:

Ядро не тільки функціонує з базою й модулями, а й задає підхід до веб-інтерфейсів. Якщо кожен із цих модулів створюється окремо, платформа оперативно стає фрагментованою.[[Категорія:Українське програмне забезпечення]]
|-
| '''Технологічний акцент.''' <span style="color:#1565c0;">K2 Ядро має підтримувати сучасну веб-логіку: браузерний доступ, API, модулі, компоненти, хмару, інтеграції й масштабування. Під час [[Міграція з 1С|міграції з 1С]] або [[Міграція з BAS|BAS]] ядро K2 має особливе значення. |-
| '''Правильний підхід.''' <span style="color:#2e7d32;">Міграція має використовувати ядро K2 як шанс побудувати чисту, єдину й контрольовану ERP-архітектуру. |-
| '''Ознака здорової архітектури.''' <span style="color:#2e7d32;">Кожен новий компонент K2 має робити сильнішою всю систему, а не збільшувати кількість ізольованих доробок. {| class="wikitable" style="width:100%; background:#ffebee;"
│ ├── forms.py
Ядро потрібне для того, щоб уникнути цієї фрагментації. |-
провідний висновок. K2 Ядро — це центр ERP-екосистеми K2. Для продуктивності важливі:
Архітектурний сенс. K2Grid дає можливість створювати бізнес-інтерфейси швидше, бо типова таблична логіка не пишеться заново для кожного модуля. Напрями інтеграцій:
Для партнерів. K2 Ядро дає можливість партнеру не створювати власну ERP-платформу, а будувати рішення для бізнесу поверх уже готової основи. │ ├── objects/

K2 ERP використовує модель відкритого похідного коду в частині системи, зокрема на рівні ядра, але це не обов’язково означає класичний Open Source без комерційних обмежень. │ ├── business_processes/

Друга помилка  створювати нові довідники там, де вже виступає як спільні.</span>
|}

Приклад версії:

=== Що дає відкрите ядро розробникам? ===

!</span>
|}

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

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

Права можуть включати:
Пята помилка  не документувати компонент. Роль ядра
[[Категорія:Міграція з BAS]]
K2.db
До таких довідників можуть належати:
!== SEO-призначення сторінки ==

* гриди;
* форми;
* меню;
* фільтри;
* пошук;
* CRUD;
* кнопки дій;
* DropDown-довідники;
* master-detail;
* імпорт;
* експорт;
* повідомлення;
* права доступу в інтерфейсі;
* привязка до бізнес-процесів. |-
| '''Головна перевага.''' <span style="color:#2e7d32;">Єдина база даних робить K2 ERP не набором окремих програм, а спільним інформаційним середовищем.</span>
|}

Відкрите ядро дає можливість створювати власні модулі, інтеграції, доповнення й галузеві рішення для бізнесу на базі вже наявної ERP-платформи.== Порівняння: окремі конфігурації та K2 Ядро ==

Такі методи потрібні для різних сценаріїв: стандартного підключення, custom-баз, користувацьких підключень, хмарних середовищ, dev/test/prod-контурів і партнерських розгортань. Воно задає спільні правила гри. |-
| '''<span style="color:#1565c0;">Dev</span>'''
| розробка програмного забезпечення компонентів і модулів
| дає можливість експериментувати без ризику для бізнесу
|-
| '''<span style="color:#1565c0;">Test</span>'''
| Перевірка оновлень, міграцій, інтеграцій
| дає можливість перевірити сумісність
|-
| '''Demo'''
| Демонстрації та навчання
| Показує функції ERP системи без бойових даних
|-
| '''<span style="color:#2e7d32;">Prod</span>'''
| Робоча платформа підприємства
| Потребує максимальної стабільності
|-
| '''Archive'''
| Історичні інформаційні дані
| забезпечує доступ до минулих записів без активної роботи
|}

[[Категорія:Магазин доповнень K2]]
|-
| '''Заборона.''' <span style="color:#b71c1c;">Не можна перевіряти небезпечні оновлення версій, імпорти або зміни структури даних напряму в Prod. * використовувати спільних контрагентів;
* мати єдину номенклатуру;
* працювати з однаковими складами;
* бачити спільні документи;
* повязувати CRM, фінансовий блок, складський облік і електронний документообіг;
* формувати аналітику з реальних процесів;
* зменшувати кількість обмінів між модулями;
* уникати дублювання довідників. |-
| '''Архітектурний сенс.''' <span style="color:#1565c0;">Open Core у K2  це спосіб поєднати комерційну ERP-платформу з можливістю для розробників створювати власні рішення для бізнесу на базі ядра. Воно забезпечує базу даних, модулі, компоненти, довідники, ролі, доступи, API, гриди, форми, оновлення версій, журналювання, інтеграції та можливість створення доповнень. |}

K2 Ядро має підтримувати модель ролей і доступів. Якщо в системі виступає як багато модулів і компонентів, оновлення версій без дисципліни здатна створювати ризики.</span> Один слабкий механізм доступу здатна відкрити фінансовий блок, документи, персональні інформаційні дані або інтеграції.</span>
|}

<syntaxhighlight lang="python">

models.py

  └── templates/

* реліз системи в `setup.py`;
* тип версії: stable або testing;
* SEO-опис змін у `history.txt`;
* список компонентів для оновлення версій;
* ignore-файли;
* сервер оновлень;
* тестування на dev/test-середовищах;
* перевірка сумісності. {| class="wikitable" style="width:100%;"
[[Категорія:Компоненти K2 ERP]]
{| class="wikitable" style="width:100%; background:#e3f2fd;"
=== Які технології повязані з K2 Ядром? ===

! |}

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

* [[K2 ERP]]
* [[K2 Cloud ERP]]
* [[Архітектура K2 ERP]]
* [[База даних K2 ERP]]
* [[Розробка веб-інтерфейсів K2]]
* [[Рекомендації для розробників K2]]
* [[Компоненти K2 ERP]]
* [[K2Grid]]
* [[Магазин доповнень K2]]
* [[Сертифікація K2]]
* [[Партнерська програма K2]]
* [[API]]
* [[ORM]]
* [[Python]]
* [[TypeScript]]
* [[PostgreSQL]]
* [[Open Core]]
* [[Відкритий похідний код]]

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

Ролі та доступи в ядрі

|-
| технічна архітектура
| Окремі конфігурації
| Єдина модульна ERP платформа
|-
| інформаційні дані
| Часто розділені між системами
| Єдина база даних
|-
| Довідники
| Можуть дублюватися
| Спільні довідники
|-
| Інтерфейс
| Різний у різних рішеннях
| Спільна логіка веб-інтерфейсів
|-
| Інтеграції
| Часто потрібні обміни між конфігураціями
| Модулі працюють в одному середовищі
|-
| дорожня карта розвитку
| Багато повторної роботи
| Повторне використання логіки
|-
| Модулі
| Часто окремі продукти
| Розширення спільного ядра
|-
| Безпека
| здатна відрізнятися між конфігураціями
| Єдина модель ролей і доступів
|-
| оновлення версій
| Можуть бути складними через доробки
| Компонентна модель і версії
|-
| ERP-платформа
| Фрагментована
| Платформна
|}

У ядрі можуть використовуватися методи ініціалізації підключення до бази:

=== Чи виступає як K2 Ядро Open Source? ===

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

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

 └── setup.py

== Як зрозуміти, що ядро застосовується для правильно ==

init_db_custom()

[[Категорія:K2Grid]]

[[Категорія:K2 ERP]]

{| class="wikitable" style="width:100%; background:#e8f5e9;"
|-
| '''Критично.''' <span style="color:#b71c1c;">Ядро потрібно розширювати, а не ламати. Призначення

[[Категорія:TypeScript]]
|-
| '''критично для розробника.''' <span style="color:#ef6c00;">Не варто створювати випадкові прямі підключення до бази, якщо ядро вже має стандартні механізми доступу. {| class="wikitable" style="width:100%; background:#ffebee;"
|-
| '''Помилка міграції.''' <span style="color:#b71c1c;">Не можна без зусиль перенести старий хаос 1С/BAS у нове ядро. init_db_uri_custom()
<syntaxhighlight lang="text">
Ядро має бути продуктивним, тому що через нього проходять основні операції: запити до бази, робота гридів, API, документи, імпорт, експорт, інтеграції, звіти й оновлення версій. через ядру нові модулі не починаються з нуля, а використовують уже наявні сутності, правила, інтерфейси й бізнес-логіку. Ядро дає можливість модулям працювати в єдиному середовищі, використовувати спільні довідники, не дублювати логіку й розвивати систему як платформу, а не як набір окремих програм. Ядро має підтримувати журналювання.== K2 Ядро і веб-інтерфейси ==
|-
| '''Ефект ядра.''' <span style="color:#2e7d32;">Коли один компонент створює корисну логіку, інші модулі можуть її повторно використовувати.</span> Якщо права доступу слабкі, будь-який компонент здатна стати джерелом витоку або помилки.</span>
|}

K2 Ядро забезпечує:

== ORM і models.py ==

 │ ├── schema/

* читання;
* запис;
* створення;
* видалення;
* імпорт;
* експорт;
* адміністрування;
* конфігурація таблиць;
* доступ до конкретних модулів;
* доступ до окремих дій;
* доступ до архіву;
* доступ до фінансових даних.</span>
|}

== Що таке K2 Ядро ==

! Типова структура компоненти здатна виглядати так:

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

* відкритіша технічна архітектура;
* можливість розробки модулів;
* українська ERP-основа;
* PostgreSQL і Linux-сценарії;
* хмарна інфраструктура та on-premise;
* API;
* партнерська ERP-платформа;
* магазин доповнень;
* повторне використання компонентів;
* контроль над даними. │ ├── hooks.py

== K2 Ядро і міграція з 1С/BAS ==

* доступу до даних;
* ролей;
* меню;
* гридів;
* форм;
* довідників;
* API;
* журналювання;
* оновлень;
* документації;
* інтеграцій.== Повторне використання логіки ==
|-
| '''Головна ідея.''' <span style="color:#2e7d32;">K2 Ядро — це основа, на якій будується вся ERP-екосистема K2. Вони можуть використовувати вже наявних контрагентів, номенклатуру, склади, документи, користувачів, ролі, файли, довідники, API й механізми безпеки. Це критично для діагностики, безпеки, підтримки й розуміння того, що відбувалося в системі. |-
| '''Перевага.''' <span style="color:#2e7d32;">Журналювання робить систему прозорою: можна зрозуміти, хто що зробив, коли сталася помилка і як її виправити.</span>
|}

{| class="wikitable" style="width:100%; background:#fff3e0;"
|-
| '''Правильна логіка.''' <span style="color:#2e7d32;">компонент має використовувати спільний довідник там, де це можливо, а не створювати власну копію вже наявної сутності. Тому доступи мають бути точними. Доповнення має використовувати ядро для:
|-
| '''критично.''' <span style="color:#ef6c00;">інтеграційні функції ERP має бути не випадковим скриптом, а контрольованим каналом обміну: з правами, логами, відповідальним і правилами помилок. Грид — це не без зусиль таблиця, а робочий інструмент для перегляду, редагування, фільтрації, пошуку, сортування та обробки даних. '''K2 Ядро''' — це центральна частина K2 ERP та K2 Cloud ERP, яка забезпечує базову архітектуру платформи: базу даних, модулі, компоненти, ролі, доступи, API, інтерфейси, оновлення версій, журналювання й інтеграції. |}

=== Чим K2 Ядро відрізняється від окремих конфігурацій 1С/BAS? ===
|-
| '''критично.''' <span style="color:#ef6c00;">Ядро ERP — це не без зусиль технічна бібліотека.[[Категорія:Ролі K2 ERP]]

2.0.4.43 - додано перевірку прав на експорт у журналі документів

* SQL-джерела;
* YML-опис;
* поля;
* форми;
* DropDown;
* master-detail;
* кнопки;
* умови;
* права;
* фільтри;
* пошук;
* службові колонки;
* конфігурація ширини й поведінки.</span>
|}

Однією з важливих особливостей K2 ERP виступає як модель відкритого похідного коду в частині системи, зокрема на рівні ядра.
├── example_module/

version = "2.0.4.43"

Восьма помилка — переносити стару логіку 1С/BAS без переосмислення. Окремі конфігурації 1С/BAS

  • виробничий компонент здатна використовувати номенклатуру, склади й документи;
  • ресторанний компонент здатна використовувати виробничу логіку, меню й бронювання;
  • готельний компонент здатна використовувати бронювання, клієнтів і фінансові документи;
  • CRM здатна використовувати контрагентів, задачі, документи й історію;
  • інтернет-магазин здатна використовувати товари, залишки, клієнтів і замовлення;
  • електронний документообіг здатна використовувати контрагентів, договори, файли й ролі. init_db_uri_user()

Вона покриває запити: “K2 Ядро”, “ядро K2 ERP”, “K2 Core”, “K2 ERP ядро”, “K2 Cloud ERP ядро”, “відкрите ядро ERP”, “Open Core ERP”, “ядро української ERP”, “модульна ERP технічна архітектура K2”, “компоненти K2 ERP”, “API K2 ERP”, “PostgreSQL K2 ERP”, “Python K2 ERP”, “розробка програмного забезпечення K2 ERP”, “магазин доповнень K2”. Навіщо потрібна

  • отримання даних;
  • збереження документів;
  • погодження заявок;
  • імпорт;
  • експорт;
  • обмін із банками;
  • обмін із маркетплейсами;
  • інтеграційні функції ERP з сайтами;
  • синхронізація з CRM;
  • передача статусів;
  • робота з файлами;
  • інтеграційні функції ERP з BI;
  • підключення мобільних сценаріїв. ERP функціонує з критичними даними, тому ядро має підтримувати базову модель захисту. Саме воно дає можливість різним модулям працювати не як окремі програми, а як частини єдиної платформи: з одними довідниками, однією базою даних, спільною логікою доступів, єдиним інтерфейсним підходом і можливістю повторного використання вже створених компонентів. ERP-система з часом обростає модулями: фінансовий блок, складський облік, продажі та реалізація, закупівельна діяльність, електронний документообіг, CRM, виробництво, кадри, зарплата, аналітичні інструменти, e-commerce, інтеграції, мобільні сценарії, галузеві рішення для бізнесу. |-
критично. Ядро потрібно оцінювати не на порожній тестовій базі, а на сценаріях, близьких до реальної роботи підприємства. Середовище
}

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

K2 Ядро в такій моделі виконує роль спільного фундаменту, на якому можуть працювати:
  • внутрішня команда K2;
  • партнери;
  • інтегратори;
  • розробники доповнень;
  • технічні команди клієнтів;
  • навчальні центри;
  • автори галузевих модулів.== K2 Ядро і технологічна незалежність ==
== Поширені запитання ==