Що не так з базовим алгоритмом конфігурації BAS ERP

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

Але що, якщо цей фундамент не такий міцний, як здається?

Будь-яка система має межі своєї універсальності. Вона зручна, поки ми працюємо з базовими елементами. Але якщо почати змінювати фундаментальні компоненти, універсальність зникає, а система стає нестабільною і непередбачуваною.

Те саме стосується облікових програм, які позиціонуються як «гнучкі» та «кастомізовані». Можливості таких рішень справді широкі, але ядро системи завжди залишається особливою частиною — фундаментом, на якому побудована вся логіка роботи. Втручання в ядро може призвести до збоїв у роботі, падіння продуктивності, проблем із безпекою та втрати сумісності з іншими сервісами й оновленнями.

BAS як «універсальний конструктор»

Платформа BAS позиціонує себе як універсальний конструктор, здатний реалізувати будь-які ідеї. Дійсно, на рівні «чистої бази» можна створити практично будь-яке рішення, обмежене лише можливостями базових інструментів платформи — системою збереження даних, обробкою об’єктів, управлінням прав доступу та формуванням інтерфейсу.

Однак цей рівень «абсолютної свободи» накладає на розробника надзвичайно складне завдання — фактично створення системи обліку з нуля. Це трудомісткий і малопродуктивний шлях, яким практично ніхто не користується. Тому переважна більшість обирає готові конфігурації, де вже закладені базові алгоритми, і адаптує їх під потреби клієнта.

Для абсолютної більшості розробників межі універсальності BAS фактично визначаються рамками цих конфігурацій. Хоча код системи формально дозволяє глибокі зміни, на практиці це настільки складно — особливо у нових модифікаціях «клонів» 1С — що його можна вважати майже недосяжним.

Незмінність базового алгоритму

Основний алгоритм, закладений у типові конфігурації BAS, залишається стабільним для більшості рішень. Лише одиниці, найкваліфікованіші спеціалісти, створюють оригінальні конфігурації або серйозно змінюють існуючі. Тому твердження, що «на базі BAS можна зробити будь-що», нагадує ідею, що з коробок сірників можна збудувати будинок на березі моря: теоретично можливо, але практично майже ніхто так не робить.

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

Межі кастомізації

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

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

Архітектурна особливість ERP-конфігурацій BAS

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

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

Облік за плановими цінами

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

  • Дебет «Собівартість продажів (управлінський)»
  • Кредит «Товари на складі (управлінський)»

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

Таким чином, ордери та тимчасові записи дозволяють бізнесу працювати «ніби в реальному часі». Насправді це лише проміжний шар, що імітує актуальні дані — базовий механізм зв’язку первинних документів і рухів залишається незмінним і потребує подальшого перерахунку.

Компроміс замість рішення

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

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

Яким має бути сучасне ядро ERP?

На перший погляд, рішення здається простим: розірвати жорсткий зв’язок між первинними документами та рухами в регістрах, дозволивши рознесення проводок у часі. Проте на практиці це призводить до втрати цілісності даних. Ордерна схема на кшталт тієї, що застосовувалася в 1С:УПП, часто ставала причиною втрати вартості залишків на складі та перетворювала пошук партій у бухгалтерії на квест. Результат — рутинна, малоефективна робота, що споживає ресурси, але не додає цінності ані обліку, ані управлінню.

Проблема в тому, що створення проводок у реальному часі — єдиний спосіб зберегти цілісність даних у межах базового алгоритму 1С/BAS. Саме тому система змушена використовувати управлінські проводки, щоб утримати коректність даних без радикальних змін архітектури.

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

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

Управлінці впевнені, що практичність та універсальність — ключові чесноти 1С/BAS, і заради цього готові навіть чинити всупереч законодавству. Насправді ж ці «переваги» виявляються міражем: здається, що система універсальна і стабільна, а на практиці будь-яка спроба масштабувати або змінити процеси показує крихкість фундаменту.

👍ПодобаєтьсяСподобалось2
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Переосмислення системи управління відбувається зміною системи управління в державі. Як по мені, на сьогодня з існуючим підходом державного управління, підход, оснований на документах — підходить до сьогодняшніх реалій. Можна по іншому рахувати плани і факт, але це потрібно було б змінювати державне управління, приходити до вільної економіки і тоді була б система основана на одному документі інвойсі і фактах оплати. Маючи 1 документ дуже легко робити прогнозування і різні сценарії прогнозування. Наразі, поки держава недолуга і не старається покращити роботу бізнесу, маємо такі підходи, як у 1С та його клону BAS — актуальними.

Статья — суцільні помилки. Підсвічу лише ті, які різанули око.

Платформа BAS

BAS (Business Automation Solutions) — це сімейство бизнес-рішень на базі платформи BAF (Business Automation Framework), які сумісні з платформою 1С:Підприємство

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

Для продуктів сімейства BAS є три типи кастомізацій:
1) за допомоги зовнішніх обробок і звітів (плагіни)
2) за допомоги розширень поверх незмінної конфігурації (адони)
3) за допомоги втручання у конфігурацію (можна назвати патчами)

Про тисячі форм і т.п. — перебільшення, навіть в ЕРП як лише кілька сотен, з яких лише кілька десятків міцно пов’язані між собою.

Альтернативна схеми подвійного запису — це один з найлегших типів кастомізації, робити який вчать на базових курсах програмування для джунів. Потрібно додати лише кілька незалежних об’єктів: новий регістр для цих записів, підписку для документів на запис проводок і кілька звітів для аналізу.

У ERP-конфігураціях BAS рухи по регістрах кількісно-вартісного обліку формуються під час проведення первинних документів... Проте такий підхід не підходить для управлінського обліку в режимі реального часу.

Як раз BAS:ERP — це управлінська программа, яку дуже не люблять бухгалтери. Бо тут одразу фіксуються лише управлінські рухи в режимі реального часу, а бухгалтерский облік з’являється після виконанні регламентних операцій перерахунку. А от в більш простій BAS:Бухгалтерії усієї цієї управлінської фігні немає і документи одразу пишуть бухгалтерські проводки, які можна відразу аналізувати оборотно-сальдовими відомостями та картками рахунків.

Дуже дякую за розгорнутий аналіз статті. Але є кілько питань:
1. BAS це не платформа? Чи вона не має ту саму структуру що й 1С? Що тут має бути віднесено до «суцільної помилки»?
2. Ви дійсно вважаєте що налагодити «лише кілька сотен форм міцно пов’язані між собою» не проблема? Справді?! Ви це колись робили? ))
3. Створити альтернативну схему подвійного запису в BAS справді не складно, але лише в рамках наявної логіки, яка передбачає, що рухи, що формують первинні документи, мають відбуватися виключно в момент їх створення. Так, можна використати відверто костильне рішення (можливо, йому навіть десь вчать) — запровадити тимчасові документи, які генеруватимуть ці рухи, а потім імітуватимуть проведення первинних у момент їх появи.
Але це надзвичайно ризикована операція — навіть у найпростішому виробництві вона призводить до перепроведення документів, які вже могли бути проведені по FIFO (сподіваюся ви знаєтесь на обліку та розумієте про що я). Боюся, створити нову логіку подвійного запису, що дозволить зберегти цілісність даних, джуну буде дуже складно, підозрюю, він навіть не зрозуміє про що я.
4. Дякую за підтримку бухгалтерів. Вони справді не мають жодного відношення до ERP: завдання бухгалтера — вести облік для коректного розрахунку податків, тоді як управління підприємством зазвичай довіряють зовсім іншім фахівцям. Цілком очевидно, що вся ця «управлінська фігня» їм лише заважає.
Це ще раз підтверджує основний тезис статті: BAS, яка фактично є модифікацією 1С і спирається на її базові алгоритми, не здатна виконувати функції ERP-системи. Це бухгалтерська програма і не треба намагатися на цю корову надягати сідло

1. BAS це не платформа? Чи вона не має ту саму структуру що й 1С? Що тут має бути віднесено до «суцільної помилки»?

Так, повторюю BAS — це не платформа. Платформою для BAS може бути 1С або BAF. BAS — це специфічний для обраної галузі набір об’єктів в базі даних, правила їх заповнення та звіти для аналізу. Аналог зі світу Java: BAF — це рунтайм для бізнес-застосунку — це JVM; а BAS це набір програм на Java, Kotlin чи Scala, які створені для вирішення певної задачи — це як iBank2 чи iFobs чи інші популярні кліент-банки. Чому я назвав кілька мов, а не одну? Бо відкрийте «BAS Управління торговим підприємством» і «BAS Комплексне управління підприємством» — це інші світи, є спільні риси (як у C++ і C#), але це зовсім інші діалекти мови платформи — якщо спробувати скопіювати будь-яку форму з однієї конфігурації в іншу, то код буде увесь червоним від провалу синтаксис-контролю, а якщо навіть видалити увесь код, то форма усе одно не відкриється, бо ці конфігурації використовують різні принципи побудови інтерфейсу: старий — як у Делфі і новий кліент-серверний HTML-подібний як у Ms Dynamics

2. Ви дійсно вважаєте що налагодити «лише кілька сотен форм міцно пов’язані між собою» не проблема? Справді?! Ви це колись робили? ))

Так.

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

Ви занадто ускладнюєте. Точніше ви берете методологію, яка очевидно не підходяща, і намагаєтесь під неї костильно переписати рішення, які мають інші цілі створення. Візьмемо ваш же приклад з відсутністю документів на складах. «BAS Бухгалтерія» — це про облік згідно українського законодавства, а не про оперативність чи контроль зловживань на складі — тут прийшли документи і ви маєте їх зареєструвати, а прийшов товар раніше чи взагалі не прийшов — це питання не вирішується в цьому ПЗ — тут нам просто треба вартість накладної показати одночасно у дебет 281 і у кредит 631 (не рахуючи ПДВ). А якщо нам потрібно вести складський облік, то з лінійки БАС краще підійде «BAS Управління торгівлею», де ордерна схема дозволяє рознести єдину бухгалтерську операцію на окремо складську частину і окремо на взаєморахунки. Навіть управління собівартістю буде різне — для торгових версій BAS використовують або історичне закриття по FIFO або взагалі по середньозваженій (доволі часте рішення, особливо при роздрібній торгівлі), а LIFO я бачив лише на промисловості для якої потрібні рішення рівня «BAS ERP» (про яку ви написали статтю, але накидали тезисів про платформу і про Бухгалтерію)

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

Для справедливості рішення BAS — це доопрацювання попередніх рішень від 1С:Україна, які перейменували, щоб мати з росіянами ще менше спільного — навіть у назві. Але рішення лінійки 1С:Україна лише частково будувались на рішеннях російскої лінійки 1С. По перше, усі бухгалтерські рішення десятиліттями йдуть окремими незалежними форками, а по друге дейкі рішення (як згаданий популярний продукт «BAS Управління торговим підприємством») були написані в Україні для України лише розробниками з України повністю з нуля — це рішення ніколи не продавалось в Росії, бо вони не хотіли конкуренції своїм УПП і КУП.

Твердження про «бухгалтерська програма» є хибним, бо більшість рішень BAS не про бухгалтерію — «BAS ERP» хоч і має можливість ведення бухобліку, але призначена для організації та контрою виробництва; BAS Управління холдингом — це взагалі інструмент для консолідації звітності з різних юридичних осіб групи, деякі з яких можуть не мати 1С/БАС і для них роблять окремі коннектори; BAS Документообіг КОРП — жодної бухгалтерії лише СЕД з елементами BPM; BAS Зарплата та Управління Персоналом — управління HR-процессами та нарахуванням зарплати і теж жодної бухгалтерії. А ще є безліч рішень для пекарень, перукарень, СТО та навіть для ОСББ — це усе BAS і там немає ніякої бухгалтерії!

1. Мушу визнати, ви праві — йдеться саме про платформу BAF. Тут я висловився некоректно. Дякую за уточнення! Сподіваюсь, це не змінює принципового змісту моєї відповіді
2. Я так розумію, для вас створення нової конфігурації чи навіть глибока переробка наявної — звична справа. Чи могли б ви поділитися прикладом реально працюючої конфігурації виробництва на базі BAF, у якій враховано діловий відхід, розкрої, списання матеріалів поза плановою калькуляцією, облік браку, отримання прибуткових накладних після закриття періоду та інші «робочі моменти», що виникають навіть у невеликій майстерні?
3. Я ж якраз і намагаюся показати, що жодна конфігурація — зокрема й BAS ERP — не має нічого спільного з ERP у класичному розумінні. І справа тут не в тому, що я ускладнюю, а в самій базовій логіці, закладеній у математику регістрів, документів та довідників. У вашому дописі про «Планування ресурсів виробництва» (тобто ERP) слово «план» навіть не згадується — і це красномовний факт.
В українському бізнес-середовищі давно сформувалося викривлене уявлення про ERP: продукти, в основу яких закладена бухгалтерська логіка забезпечення цілісності даних подають як системи управління ресурсами. Насправді такі системи не здатна виконувати базові операції ERP, наприклад, замовлення матеріалів через дефіцит, бо залишки розраховуються не в реальному часі та звіряються з фактом лише раз на рік під час інвентаризації. То яке ж це планування?
Ілюзію підтримує аргумент у стилі «допиляємо конфігурацію» чи «створимо нову» — ніби синхронізація сотень об’єктів справді не становить проблеми
4. «Без бухгалтерії» — це коли в системі немає рахунків, проводок і регістрів, а натомість існує спрощений фінансовий облік. Але як можна «спрощено» рахувати прибуток? У такій логіці його легко переплутати зі збитком і випадково роздати незароблені гроші інвесторам. Це наслідок вад бухгалтерського ядра: воно не дозволяє поєднати подвійний запис із розрахунком залишків у реальному часі. Тому й з’являються костилі на кшталт ордерних схем чи механізму серій, які потім продають під виглядом ERP

шось забавно написали) більшість бухгалтерів і головних бухгалтерів — однокнопкові раби 1с, якщо їм запропонувати альтернативу — в них сходу ступор буде.
Не переписувати 1с — теж жарт. Більшість коробкових рішень, якщо в вас не цех по виробництву меблів умовно, потребують дописання.
Тут ще можна правда копнути глибше, що через ідіотську податкову систему, до її закидонів найбільш адпаптованим продуктом — є саме 1с. І через це вона в частності популярна в бухгалтерії саме в такому виді, в якому вона є. + у голов.бухів / фіндірів завжди на прикормці свої програмісти 1с. Тому її юзання не викликає у них проблем.
З приводу альтернатив і іншої логіки — не релеватно, треба визнати, що більшість бухгалтерів юзають медок+1с, а реальні альтернативи — в край не популярні. Знов ж таки, через ідіотську, я б сказав кінчену і не логічну податкову систему країни.
Та ж сама одоо до сих пір мертвіша мертвих на нашому ринку, і дай Боже щоб 1000 фірм набралась, які активно їх юзають, 10005000 альтернатив на ринку наплодили, а всі так і юзають 1с)
Це все при тому що там ще йде баталія з києвським офісом, який стверджує, що 1с це їх продукт і тому це не спонсорування агресора)

Згоден: популярність 1С тримається на її інтеграції з нашою податковою звітністю, а не на зручності. Альтернативи є, але перехід на них виглядає надто складним і дорогим. Вирішувати треба не лише питання програми, а підходу — спочатку треба будувати управлінський облік і вже на його основі формувати податковий (а не навпаки як зараз), тоді й зміна системи стане реальною.

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

смешались в кучу кони люди.
как вообще связаны рельное время проводки и планирование?
и чего проводки это не в рельном времени? вы провели документ выполнились проводки вот вам и изменение хозяйственных активов

В любом случае без переписывания клнфигурации с нуля там ничего не сделаешь

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

Використовувати ордерну схему документообігу, яка фіксує фактичний рух товарів на складах: Прибутковий ордер на товари і Видатковий ордер на товари

так ордер теж тре комусь ввести. суть проблеми що тре вiдпустити товар негайно до того як хтось щось ввiв

Так, усе вірно: ордерна схема хоч і може частково застосовуватися для обліку товарів, але зовсім не підходить для матеріалів у виробництві, навіть у невеликій майстерні. Це типовий «костиль», і її використання, м’яко кажучи, не найкраще рішення

з одноце давно не працював але в деяких системах просто можна списувати в мiнус

А я в цьому глибоко занурений ))
Повірте, «в мінус» працює тільки на дуже простих системах, на виробництві — ні

в виробництвi мiнус i не тре
зазвичай це коли приiхав плкупець а товар тiльки приьув i
тре швидко продати шоб плкупець не чекав поки оприбуткують.
В мене власний проект (open-source) я просто поставив галку — дохволяти списувати в мiнус як ТМЦ так i кошти i нехай користувач сам розбирается.

Підписатись на коментарі