Рубрики Мнение

Что такое 1С и почему ее трудно (но необходимо) заменить в Украине. Мнение

Опубликовал
ITC.UA

Сейчас очень много споров идет по поводу того, что нужно заменять российское программное обеспечение. Конечно, в условиях российской агрессии нужно было думать об этом еще в 2014-м году, но многие задумались об этом только сейчас. Эта статья об одной из самых популярных программ по ведению учета, а именно о 1С:Предприятии, которая последние несколько лет в Украине распространялась под брендом BAS. Целью этого материала является рассказать широкой публике, что собой представляет эта программа, а также почему украинскому бизнесу будет так трудно от нее отказаться. Потому что до сих пор многие думают, что это «просто бухгалтерская программа» или «да что там переходить».

Сначала немного о себе. У меня стаж во внедрении, консультировании и разработке на базе 1С:Предприятие уже более 15 лет. Также есть профильное образование по специальности «Информационные системы в менеджменте». То есть, наверное, имею моральное право немного рассказать о том, что оно такое.

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

Отказаться от работы в 1С было сложновато, потому что она приносила нормальные, хотя и меньшие, чем в «большом ИТ» деньги. Но все же я учился и был уже морально готов бросить ее. Прошел обучение, но все никак не мог сделать последний шаг. Начало широкомасштабной агрессии все расставило по местам. Во-первых мои клиенты, выжившие как бизнес, перестали вкладывать деньги в разработку и заморозили ее. Во-вторых, я увидел это как шанс все же перейти. Сейчас я работаю Android-разработчиком в статусе Junior. Работу нашел довольно быстро, но то, как все происходило, тема для отдельного рассказа. Так что вернемся к 1С.

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

История

Сначала немного истории. Я не буду грузить датами, но 1С началась тогда, когда кончился «совок». Компьютеры перестали стоить, как крыло самолета и бизнес начал их потихоньку использовать. Обычно сначала это была бухгалтерская программа для DOS (версия 2.0 – 5.0), затем для Windows (версия 6.0). В них был даже какой-то простенький скриптовый язык, позволявший немного доделывать ее.

Прорыв случился с выходом версии 7, выросшей до версии 7.5, затем 7.7. Почему прорыв? Во-первых, цена готового продукта. В максимальном варианте, который позволял полностью покрыть все учетные требования (зарплата, торговля, склад, бухгалтерия), она стоила где-то 1500 долларов за сетевую версию без ограничения количества клиентов.

Для хранения данных она могла использовать собственную файловую базу (известный dbf), или MS SQL (версия для SQL была дороже). А в минимальном варианте для одного пользователя-бухгалтера она вообще стоило где-то 50 долларов. И эта «1С:Бухгалтерия» 7.7. позволяла покрыть большинство задач типичного торгового предприятия в области учета.

Конфигурации 1C

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

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

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

Но отчеты, которые можно получать – это бухгалтерские отчеты. То есть, например, нет отчета «Продажи», или «Остатки». Зарплата очень упрощена, а учета кадров вообще нет. Но все это компенсировалось достаточно низкой ценой и потому она была самой популярной.

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

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

Ну и «Комплексная» — это была смесь трех предыдущих, т.е. позволяла полностью автоматизировать учет на обычном торговом предприятии и вести как полноценный бухгалтерский учет, так и управленческие отчеты, считать сложную зарплату. «Производство» примерно то же, но для производственных предприятий.

Захват рынка

В общем, все это было рассчитано на сегмент малого и среднего бизнеса. Все эти конфигурации имели открытый код, то есть можно было ли их дорабатывать и перерабатывать, или вообще написать что-то свое.

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

Обычно система была больше рассчитана на небольшие фирмы, но потом народ научился запускать ее и на достаточно крупных предприятиях, а благодаря тому, что можно было доделать и переделать многое, в разработку теми же предприятиями были вложены большие деньги. Кое-кто имел коллектив из разработчиков и по 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С. (Версия 7.7. Типовая конфигурация «Торговля и склад»)

Версия 8.2. Обычное приложение. Конфигурация «Обмен данными»

Версия 8.3. Веб-клиент в окне обозревателя. Конфигурация «Бухгалтерский учет»

Мобильное приложение. Конфигурация для сбора заказов

Архитектура

Теперь поговорим больше об архитектуре, то есть о том, как это всё устроено. 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 JON к Контрагентам, а потом еще LEFT JOIN к Типам, чтобы выбрать тип.

При этом сам язык запросов поддерживает связывание. Например, у меня есть документ «СчетФактура» и есть документ «Расходная накладная», который имеет реквизит «ДокументОснование», являющийся ссылкой на этот «Счет-Фактура». Я хочу выбрать все счета для которых есть расходная накладная. Тогда я буду писать так:

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

Отдельно можно выделить генератор отчетов, позволяющий делать отчеты без написания кода просто сделав правильный запрос и настроив вывод. После сборки и компиляции конфигурации, платформа 1С создает таблицы для хранения данных.

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

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

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

Та же Новая почта имеет готовый модуль интеграции с собственным API. Таких примеров много.
Другой большой плюс, что сеньор 1С получает зарплату на уровне 2000 долларов (до 24/02). И специалистов достаточно много.

Окно конфигуратора. Виден список объектов (в данном случае документов), а также форма в стадии разработки.

Так называемая «управляемая форма», где форма не рисуется размещением элементов, а задается их иерархия относительно друг друга. Это более новый вариант создания интерфейса, и именно этот вариант подходит для веб-клиента. Разработчик добавляет элементы формы в иерархию сверху, а система сразу визуализирует, как будет выглядеть.

Пример кода:

Пример сложного запроса на языке запросов:

Пример простого запроса с использованием англоязычных операторов

Дебагер. Видна точка остановки и табло со значениями переменных:

Ситуация до 24.02

1С (или BAS) использовалась на очень разных предприятиях. От очень маленьких до очень больших. Я, например, видел знакомый интерфейс и одной очень большой национальной сети супермаркетов электроники.

По моему собственному опыту, а я долго работал в фирме-франчайзи, потом как фрилансер, где-то 80% инсталляций – это просто Бухгалтерия и она не нуждается в участии разработчика и вполне нормально используется «как оно есть».

Я не очень сильно изучал рынок, но думаю, что заменить такой продукт есть много чем. Потому что в бухгалтерском учете все достаточно стандартизировано. Поэтому и программы должны иметь более или менее одинаковый функционал. Есть, конечно, вопрос цены, удобства, но опять-таки не думаю, что он критический. Так что переход на что-то новое – это лишь затраты на обучение персонала и покупку нового продукта ну и затраты на перенос данных.

Еще примерно 10% имеют какие-то небольшие наработки. Например, добавлен логотип в печатную форму, либо доработан импорт из другой системы, либо какой-то специальный отчет. Здесь переход обычно более тяжел, но все равно не страшен.

И остаются еще где-то 10%, которые имеют много изменений по сравнению с типичной конфигурацией, или вообще продукты разработаны с нуля под собственные нужды. Есть компании, которые имели неизменный штат разработчиков. Есть также отраслевые конфигурации, где уже сделаны наработки под конкретные нужды. Например, под страховую компанию, автосалон, автосервис, ресторан и т.д.

И вот здесь переход может быть очень трудным

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

Надо, чтобы были специалисты, которые могут это сделать за умеренные деньги. Большинство нашего IT – это работа на иностранного заказчика. И зарплаты там числятся в долларах и достаточно большие. Я уже говорил, что сеньор 1С получал 2000 долларов, реже 3000.

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

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

Предлагаю подискутировать в комментариях по этой теме. Но если вы предлагаете какой-нибудь продукт, то нужно иметь в виду все то, что я написал выше. То есть цена продукта, цена его доработки для заказчика, есть ли специалисты, какие сроки перехода. Если продукт работает, например, исключительно с MS SQL, сколько еще будут стоить лицензии на этот продукт и т.п.

Автор — Алексей. Бывший разработчик 1С — фрилансер, сейчас разработчик Android.

Disqus Comments Loading...