Думка Думка 22.07.2022 о 16:30 comment views icon

Що таке 1С і чому її важко (але потрібно) замінити в Україні. Думка

author avatar
https://itc.ua/wp-content/uploads/2023/05/1-kopyya-96x96.png *** https://itc.ua/wp-content/uploads/2023/05/1-kopyya-96x96.png *** https://itc.ua/wp-content/uploads/2023/05/1-kopyya-96x96.png

ITC.UA

Редакція ITC.ua

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

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

Спочатку трохи про себе. Я маю стаж у впровадженні, консультуванні, та розробці на базі 1С:Підприємство вже більше 15 років. Також маю профільну освіту за спеціальністю «Інформаційні системи у менеджменті». Тобто, напевно, маю моральне право трохи розповісти про те, що воно таке.

Десь з 2020 року я почав процес переходу у іншу сферу розробки. Головна причина була гроші. Бо зарплата 1С-ника зазвичай у гривнях і 2014-й рок дуже боляче по ній вдарив. Саме тоді я замислився про перехід, але так і не почав його. Більшість 1С-ників переходять на щось на кшталт SAP, Dynamics і таке інше тому що це їм близько. Я теж про таке думав і шукав, бо це можливість перейти на гарні гроші досить швидко. Хоча мобільна розробка мене приваблювала більше.

Відмовитися від роботи у 1С було важкувато, бо вона приносила нормальні, хоча і менші ніж у «великому ІТ» гроші. Але все ж таки я навчався і був вже морально готовий кинути її. Пройшов навчання, але все ніяк не міг зробити останній крок. Початок широкомасштабної агресії все розставив по місцях. По-перше, мої клієнти ті, що вижили як бізнес, перестали вкладати гроші у розробку і заморозили її. По-друге, я побачив це як шанс все ж-таки перейти. Наразі я працюю Android-розробником у статусі Junior. Роботу знайшов доволі швидко, але те, як усе відбувалось, то тема для окремої розповіді. Тож повернемося до 1С.

Історія

Спочатку трохи історії. Я не буду грузити датами, але 1С почалася тоді, коли закінчився “совок”, комп’ютери перестали коштувати як крило літака і бізнес почав їх потихеньку використовувати. Звичайно спочатку це була бухгалтерська програма для DOS (версія 2.0 – 5.0), потім для Windows (версія 6.0). В них була навіть якась простенька скріптова мова, що дозволяла трохи доробляти її.

Онлайн-курс "Комерційний Аудіопродакшн" від Skvot.
Навчіться створювати, зводити й мастерити музику для комерційних проєктів — кіно, серіалів, улюблених ігр чи вірусних рекламних роликів.
Детальніше про курс та довід лектора

Прорив вийшов з виходом версії 7, яка доросла до версії 7.5, потім 7.7. Чому прорив? По-перше, ціна готового продукту. У максимальному варіанті, який дозволяв повністю покрити всі облікові вимоги (зарплата, торгівля, склад, бухгалтерія) воно коштувало десь 1500 доларів за мережеву версію без обмеження кількості клієнтів. Для зберігання даних вона могла використовувати власну файлову базу (славнозвісний dbf), або MS SQL (версія для SQL була дорожче).

А у мінімальному варіанті для одного користувача-бухгалтера воно взагалі коштувало десь 50 доларів. І ця «1С:Бухгалтерія» 7.7. дозволяла покрити більшість задач типового торгівельного підприємства у сфері обліку.

Конфігурації 1C

Але головне не це. Починаючи з версії 7 1С стала не просто «бухгалтерською програмою», а середовищем розробки облікових програм. Фактично вона була схожа на Access, де можна власноруч писати програми, але для їх запуску треба мати той самий Access. 1С ще й поставляло повноцінну документацію для розробника.

На відміну від Access, воно завжди поставлялася і поставляється із готовим рішенням для ведення обліку. У термінології 1С – Конфігурація. На той момент це був: «Бухгалтерській облік», «Торгівля і склад», «Зарплата і кадри», «Комплексна конфігурація», «Виробництво».

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

Онлайн-курс "Комерційний Аудіопродакшн" від Skvot.
Навчіться створювати, зводити й мастерити музику для комерційних проєктів — кіно, серіалів, улюблених ігр чи вірусних рекламних роликів.
Детальніше про курс та довід лектора

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

Торгівля і склад була більше для ФОП-ів, яким не треба вести повноцінну бухгалтерію, але треба мати облік на складі і торгівельні звіти, на кшталт «Борги», «Залишки товарі», «Продажі» і таке інше.

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

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

Захоплення ринку

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

Наприклад, я колись робив конфігурацію для обліку навчання персоналу. До того ж регулярно виходили оновлення і вони деякий час були безкоштовні – тобто, раз заплатив і користуйся.
Все це зробило продукт дуже популярним і породило велику кількість людей, які займалися консультуванням, навчання, впровадженням і доробкою.

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

Також фірма 1С створила мережу франчайзі з досить низьким порогом входу. Не буду вдаватися у подробиці, але щоб продавати і супроводжувати цей продукт вимоги були досить низькі. Треба було виконувати умови по закупках і мати двох сертифікованих розробників. На продажі продукту франчайзі заробляв десь 100% прибутку. Тобто ми умовно купували продукт за 100 доларів, а продавали за 200. 200 – то рекомендована фірмою 1С роздрібна ціна і вони стежили, щоб продукт не продавався дешевше. Але основні гроші зароблялися на впровадженні і доробці.

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

Незважаючи на те, було у 1С і багато недоліків. Вона досить погано починала працювати на великих базах і з великою кількістю користувачів. Частково це можна було вирішити переходом на SQL-версію (при цьому переписувати код конфігурації було не треба, а база мігрувала досить легко). Але сама робота з SQL була побудована не дуже гарно, хоча різні умільці і робили сторонні розробки, які дозволяли робити це краще. Крім того ентузіасти створили багато того, що значно розширювало можливості типової 1С.

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

Версія 8.0

З виходом версії 8.0 росіяни повністю переробили архітектуру і розробникам фактично довелося вивчати нову мову і нові інструменти. Додалося багато чого, з’явилася трьохзвенна архітектура, тобто сервер 1С – це окрема програма яка спілкується з SQL сервером, а клієнт 1С спілкується з сервером 1С. Але це у SQL версіях, тому що файлова база теж залишилася, але перейшла у пропрієтарний формат. Система навчилася працювати не тільки з MS SQL, але і Oracle, і з безкоштовною Postgre, DB2, а сам сервер 1С міг працювати під Linux.

З’явилася система контроля версій, генератор звітів і ще багато чого. Сама розробка стала більше відповідати сучасним вимогам. І головне все це працювало краще, швидше і стабільніше, особливо у варіантах з великою кількістю користувачів.

Далі додався тонкий клієнт, де ще більше розділилося те, що виконується на сервері 1С і те що на клієнті. Потім 1С стала вміти працювати у вікні браузера (причому це вміють типові рішення, тобто не треба спеціально доробляти і можна змішувати різні варіанти запуску), з’явилася можливість запускати її на різних операційних системах. Інтерфейс став більше адаптований под Web.

Нарешті з’явилася мобільна платформа, яка дозволяла розробляти (з деякими обмеженнями звичайно) додатки для мобільних пристроїв на Android або iOS. Щоб розуміти за два тижні одна людина, яка ніколи з мобільною платформою не працювала, по книжці, зробила додаток для приймання менеджерами замовлень на товари і синхронізацію його з основною базою у режимі офлайн. Тобто по запиту. Для користувачів теж додалося багато нових цікавих фішок.

Але з виходом змінилися і умови. Підтримка стала платною. Крім того, появилася плата за ліцензії. Тобто на кожний вхід у базу треба мати ліцензію. Але цих баз може бути декілька. Ліцензії коштували десь у районі 100 доларів і ціна їх залежала від кількості. Тобто якщо брати пакет 5 штук, то це коштує дещо дешевше ніж 5 по одній. Звичайно за ці рокі наш бізнес міг вже дозволити собі більше витрачати на програми, тому восьма версія теж зайшла гарно.

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

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

Що таке 1С і чому її важко (але потрібно) замінити в Україні. Думка
Еволюція інтерфейсу 1С. (Версія 7.7. Типова конфігурація Торгівля та склад)

Що таке 1С і чому її важко (але потрібно) замінити в Україні. Думка

Версія 8.2. Звичайний додаток. Конфігурація «Обмін даними».

Що таке 1С і чому її важко (але потрібно) замінити в Україні. Думка

Версія 8.3. Веб-Клієнт у вікні браузера. Конфігурація Бухгалтерській облік

Що таке 1С і чому її важко (але потрібно) замінити в Україні. Думка

Мобільний додаток. Власноруч написана конфігурація для збору замовлень

Архітектура

Тепер поговоримо більше про архітектуру. Тобто як це влаштовано.1С дає розробнику Конфігуратор (або платформу для розробки), який дозволяє створювати конфігурацію, тобто рішення для обліку. Обліку у широкому сенсі. Це не обов’язково бухгалтерський облік.
На базі конфігурації після компіляції, або збірки система створює таблиці бази даних. Сама конфігурація теж зберігається у ній. У версії 7.7 це був окремий файл, але у 8-й воно зберігається у базі.

Розробник 1С не працює з таблицями БД. Необхідну кількість цих таблиць, індекси до них створює сама платформа на етапі збірки або компіляції. Також система сама виконує міграцію даних у разі реструктуризації таблиць.

Конфігуратор має різні об’єкти (хоча це скоріше класи) для створення облікової системи. Це в першу чергу об’єкти для зберігання даних (Довідники, Документі, Регістри, Константи, Плани видів характеристик) об’єкти для візуалізації та обробки даних (Звіти, Обробки, Загальні програмні модулі, Web-сервіси).

Я не буду багато розповідати що до чого, але усе це дозволяє зробити систему для зберігання інформації, реєстрації облікових операцій, а також її обробки і візуалізації накопиченої інформації.
Також можна створили регламентні задачі для запуску на сервері за розкладом (наприклад, розсилку звітів на e-mail, або отримання статусів декларацій з Нової пошти).

Окремо є плани обміну, які дозволяють створювати правила для обміну за іншими БД як 1С так і не 1С. Web-сервіси дозволяють будувати у 1С власне API для обміну даними у режимі онлайн за допомогою REST.

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

Наприклад, розробнику 1С не треба думати як зв’язати таблиці. Якщо у мене Довідник «Товари», то я в Документі «Видаткова накладна» просто створюю поле (реквізит у термінології 1С) типу Довідник.Товари і система сама знає, що треба зберігати тут посилання на запис (елемент Довіднику) у цьому документі.

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

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

Знов таки не буду розповідати про все, що тут є, але є багато, що завдяки маніпулюванні і комбінуванню об’єктів дозволяє створювати потужні системи для обліку. І робити це досить швидко.

Той самий Конфігуратор, дозволяє створити окрему конфігурацію (або у рамках тієї ж) для запуску на мобільному пристрої. Для такого запуску знадобиться мобільна платформа 1С, але є можливість зібрати apk для Андроїду або додаток для iOS.

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

Останнє що я бачив, це можливість вести розробку у IntelliJ Idea з можливістю повноцінно працювати з гітом.

Мова програмування 1С

Це процедурна мова програмування, яка дозволяє маніпулювати об’єктами 1С. Вона схожа на різні мови і дещо архаїчна, але має багато потужних засобів для маніпулювання даними.

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

На приведеному фрагменті той самий код написаний англійською і російською. Для когось це може здаватися диким, але якщо подумати, то для англомовних весь код в усіх мовах програмування виглядає так як для 1С-ників код російською.

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

Тобто 1С можна назвати фреймворком для створення облікових систем, але при цьому купити саме фреймворк неможливо. Його можна купити тільки з готовим рішенням.

Також у 1С є окрема мова запитів. По суті це SQL перекладений на російську. Він трохи простіший, бо якщо наприклад у мене є документ «Видаткова накладна», а у неї є посилання на елемент Довіднику «Контрагенти», а у контрагента є наприклад реквізит Тип, який посилання на інший Довідник, я можу у запиті написати так:

ВЫБРАТЬ
РН.Контрагент.Тип
ИЗ
Документ.РасходнаяНакладная КАК РН

Тобто мені не треба робити зв’язування об’єктів, що отримати Тип. У традиційному SQL мені б довелося зробити LEFT JOIN до Контрагентів, а потім ще LEFT JOIN до Типів, щоб вибрати тип.
При цьому сама мова запитів підтримує зв’язування.

Наприклад у мене є документ «СчетФактура» і є документ «Расходная накладная», який має реквізит «ДокументОснование», що є посиланням на цей «Счет-Фактура». Я хочу вибрати усі рахунки для яких є видаткова накладна. Тоді я буду писати так:

ВЫБРАТЬ
Док.Ссылка КАК Счет,
РН.Ссылка
ИЗ
Документ.СчетФактура Счет
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная
КАК РН ПО Счет.Ссылка = РН.ДокументОснование

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

Поріг початкового входу у розробку 1С достатньо низький. Але для того, щоб стати спеціалістом, вже треба занурюватись у нюанси, розуміти, як зберігаються дані и таке інше. Крім того, зазвичай доводиться також займатися консультуванням, підтримкою, робити бізнес-аналіз, і навіть шукати помилки у обліку. Такий собі full-stack. Гарний 1С-розробник це такий собі гібрид кодера, архітектора, консультанта і бізнес-аналітика.

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

Крім того 1С досить непогано інтегрується з різним обладнанням: ваги, сканери штрих-кодів, ТСД, РРО і таке інше. Розробники цього обладнання часто навіть мають готові модулі написані у 1С для інтеграції.

Та ж сама Нова пошта має готовий модуль інтеграції з власним API. Таких прикладів багато.
Інший великий плюс, що сеніор 1С отримує зарплату на рівні 2000 доларів (до 24/02). І фахівців досить багато.

Що таке 1С і чому її важко (але потрібно) замінити в Україні. Думка

Вікно Конфігуратора, де видно перелік об’єктів (у даному випадку документів), а також форму у стадії розробки.

Що таке 1С і чому її важко (але потрібно) замінити в Україні. Думка

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

Приклад коду:

Що таке 1С і чому її важко (але потрібно) замінити в Україні. Думка

Приклад складного Запиту на мові запитів

Що таке 1С і чому її важко (але потрібно) замінити в Україні. Думка

Приклад простого запиту з використанням англомовних операторів

Що таке 1С і чому її важко (але потрібно) замінити в Україні. Думка

Дебагер. Видно точку зупинки і табло зі значеннями змінних

Що таке 1С і чому її важко (але потрібно) замінити в Україні. Думка

Ситуація до 24/02

1С (або BAS) використовувалась на дуже різних підприємствах – від дуже маленьких до дуже великих. Я наприклад бачив знайомий інтерфейс в одній дуже великій національній мережі супермаркетів електроніки.

За моїм власним досвідом, а я довго працював у фірмі-франчайзі, в потім як фрілансер, десь 80% інсталяцій – це просто Бухгалтерія і вона не потребує участі розробника і цілком нормально використовується «як воно є».

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

Ще приблизно 10% мають якісь невеличкі доробки. Наприклад додано логотип у печатну форму, або дороблено імпорт з іншої системи, або якійсь спеціальний звіт. Тут перехід звичайно більш важкий, але все одно не страшний.

Ну і залишаються ще десь 10%, які мають багато змін порівняно з типовою конфігурацією, або взагалі продукти розроблені з нуля під власні потреби. Є фірми, які мали постійний штат розробників. Є також галузеві конфігурації, де вже зроблено доробку під конкретні потреби. Наприклад під страхову компанію, автосалон, автосервіс, ресторан і таке інше.

І ось тут перехід може бути дуже важким

Чому? Тому що треба знайти продукт, який дозволяє себе змінювати, або дописувати. Цей продукт повинен коштувати порівняно недорого. Ціна робочого міста на 1С – близько 100 доларів. Перша ліцензія коштує дорожче, в залежності від продукту, але за наступні робочі місця ціна буде десь такою.

Треба щоб були спеціалісти які можуть це зробити за помірні гроші. Бо більшість нашого IT – це робота на іноземного замовника. І зарплати там рахуються в доларах і досить великі. Я вже казав що сеніор 1С отримував 2000 доларів, рідше 3000.

Де знайти таких людей, як їх навчити? Особливо в умовах, коли народ потягнувся за кордон. І головне, де бізнесу у економіці, що зруйнована війною, взяти на все це гроші?

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

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

Автор – Олексій. Колишній розробник 1С – фрілансер, наразі розробник Android.


Loading comments...

Повідомити про помилку

Текст, який буде надіслано нашим редакторам: