«П'ятничний деплой» як джерело постійного стресу

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

Чому це відбувається? Через відсутність автоматизованих тестів та єдиної культури версіонування.

1. Конфігурація як код (Schema as Code)

У Ruta будь-який об'єкт метаданих (довідник, документ, регістр) зберігається у вигляді чітких вихідних файлів. Кожна зміна фіксується у Git-репозиторії:

  • Пул-реквести (Pull Requests): жоден рядок коду не потрапляє в продакшн без перегляду (Code Review) іншим розробником;
  • Атомарна історія змін: завжди точно відомо, хто, коли і навіщо додав новий реквізит чи змінив алгоритм розрахунку премії;
  • Миттєвий відкат (Rollback): якщо виявлено проблему, повернення на стабільну версію займає секунди за допомогою команди git revert.

2. Автоматизовані тести бізнес-логіки

Перш ніж нова версія потрапить до користувачів, CI-сервер автоматично запускає сотні тестів:

test('Списання партії товару за методом FIFO', async () => { const invoice = await createIncomingInvoice({ qty: 10, price: 100 }); const sale = await createSaleInvoice({ qty: 5 }); await sale.post(); expect(await getStockBalance('Номенклатура-1')).toBe(5); expect(await getCostOfGoodsSold()).toBe(500); });

Це на 100% гарантує, що додавання нової друкованої форми чи реквізиту не зламає критичний розрахунок собівартості.

3. Відкритий REST та GraphQL API без платних ліцензій

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

У Ruta стандартний REST API та GraphQL доступні «з коробки» для будь-якого об'єкта метаданих. Достатньо визначити права доступу ролі, і зовнішній сервіс може створювати документи чи отримувати залишки через безпечні JWT-токени.