Лучше 1С может быть только 1С: Базуха

Kate

Administrator
Команда форума
Я уже ранее писал о том, что придумал движок, который позволяет работать с не 1С SQL-базой из клиентов, которыми являются базовые конфигурации 1С:Деньги. Думаю, это классное решение для небольших частных или малотиражных конфигураций! Я назвал его Базовый Учет или Базуха (Базовый Учет Хозяйства).
551b8fff3c9010bfaf6b965706a2fc8a.png

Решение дешево. 1С:Деньги на каждое рабочее место обойдется в 300 рублей. Сравните с лицензией на 1С, которая стоит 13.000 рублей + 5.000 рублей за каждое дополнительное место.
Так, например, лицензия на 10 пользователей для Базухи обойдется в 3.000 рублей, а для 1С в 28.000 рублей, т.е. по 2.800 рублей на каждого пользователя! Экономия в 10 раз!
Решение лучше чем 1С по производительности в эконом-сегменте. В дешевых 1С используется файловая база, которая работает медленно, т.к. нет посредника в виде SQL-сервера, который обеспечивает быстрое извлечение данных.
Чтобы получить сервер SQL, нужно заплатить достаточно большую сумму. Сервер 1С на 5 подключений стоит 14.000, а на большее количество подключений 86.400 (32-разрядный сервер за 50.400 не рассматриваем, его покупка не имеет смысла). Поэтому в нашем примере на 10 пользователей для нормальной производительности стоимость одного рабочего места уже получается 11.440 (учтена стоимость лицензии на сервер 1С).
Почему-то 1С не предлагает решения, где не используется сервер 1С, а используется только SQL-сервер. Базуха как раз использует такой подход. Он медленнее, чем трехзвенка с сервером 1С (потому что нельзя исполнять код на сервере), но быстрее, чем файловая база 1С (потому что можно исполнять SQL-запросы).
Однако, справедливости ради, следует сказать, что если многопользовательский доступ к файловой базе будет реализован через веб-сервер, то производительность будет сопоставима с Базухой. Веб-сервер является как бы сервером приложений, но у Базухи есть SQL-сервер. Так что сопоставимо. Причем Базуха лучше масштабируется на количество пользователей больше 10, а файловая даже через веб-сервер начинает на таких масштабах задыхаться, т.к. у нее нет SQL-сервера.
Решение использует код и архитектуру 1С. Это важно, потому что поддерживать его может любой программист 1С, потратив буквально пару часов на освоение документации по платформе Базухи. Кроме того, можно использовать все выразительные средства 1С в разработке — таблицы значений, МХЛ-файлы, богатые средства 1С для интеграции. Да и пользователю привычен знакомый интерфейс 1с.
Решение более свободно чем 1С. Для разработки можно использовать любые модели данных, а не только придуманные 1С прикладные объекты (регистры, планы счетов, планы обмена и т.п.). Можно использовать свои инструменты для разработки, можно делать абстракции кода, выполняя не код, а схемы кода, собственные иерархии данных.
Решение может служить мостиком от 1С к другим средствам разработки. Учитывая открытость архитектуры базы данных и кода Базухи, со временем можно написать движок, который будет работать с базами Базухи абсолютно свободно, без 1С. В этом смысле Базуха является переходной программой, которая позволяет упростить этот процесс, потому что сейчас подходящего инструмента разработки, увы, нет.

Для кого предназначена Базуха?​

Понятно, что конфигурация только начинается, поэтому не может конкурировать с такими монстрами, как УТ, БП, ERP, в которых вложено много труда и ресурсов. Но она и не предназначена для этого. Известно, что 1С предлагает максимально быстрый и удобный инструмент для разработки приложений баз данных. Но, к сожалению, лицензионная политика не позволяет его использовать для мелких, небольших решений.
Базуха закрывает этот вопрос и позволяет реализовывать небольшие заказные или малотиражные решения.
1С тоже позволяет делать недорогие тиражные решения, но для этого нужно предоставить решение самой 1С, она проверит его на 1С:Совместимо и если посчитает невыгодным распространение этой конфигурации, не выдаст базовую лицензию. Кроме того, такое мероприятие затратно по ресурсам.
С помощью Базухи вы можете выпустить недорогое тиражное решение буквально для нескольких клиентов, не прибегая к посредничеству 1С.
Также на Базухе очень удобно писать интернет-магазин, который одновременно является и учетной базой. Потому что все это крутится на одном MySQL сервере в интернете.

Лицензионная чистота​

Для выяснения лицензионной чистоты решения я обратился в 1С-франчайзи «Первый Бит». Сперва они не поняли, о чем я веду речь, но после телефонного общения с техническим специалистом вынесли вердикт: «Что не запрещено, то разрешено». При этом уточнили, что их ответ является ответом, выражающим политику 1С.
Но на всякий случай я обратился и в 1С (lic@1c.ru). Там тоже не нашли возражений против моей схемы, после долгих и муторных споров со стороны 1С было вынесено решение:
376ac0fa5b6f1fe37bab93bad59c038b.png

С одной стороны, при популяризации решения оно будет выступать как конкурент 1С. С другой — будет занимать нишу, куда 1С не пробиться с ее текущей стоимостью лицензий — на нишу мелких производительных решений. Будем надеяться на благоразумие 1С!
В конечном итоге, появление подобного решения вызвано именно неповоротливостью маркетинга и невозможностью создавать дешевые малотиражные решения.
Вот текст лицензии на базовые версии 1С:
28c0bb1abc7868904deba5f6182ea5fa.png
9bbc903036a937a352e98ef7537d7bd2.png

Как устроена Базуха?​

Каждому пользователю устанавливается базовая программа 1С:Деньги.
В базе пользователя администратором запускается обработка, которая подготавливает базу к начальному запуску:
  1. Создает два пользователя — admin (с паролем) и user (без пароля). admin имеет административные права, user — полные.
  2. Из специального настроечного файла в базу пользователя заносятся пароль администратора, логин и пароль доступа к SQL-базе, тип SQL-базы.
  3. Добавляет основную обработку по работе с SQL базой данных.
  4. Выполняет первоначальную синхронизацию с SQL базой данных.
  5. Прописывает на рабочий стол ярлык для запуска 1С:Деньги под пользователем user с открытием списка дополнительных внешних обработок.
Окно запуска 1С:Базухи для пользователя выглядит так:
b131c2d696d54bb6fa0a2f60a1d4139c.png

К сожалению, сразу открыть обработку «Рабочий стол» не получится технически, поэтому пользователь должен запускать ее вручную кликом.
При запуске обработки «Рабочий стол» пользователь вводит логин и пароль для доступа к SQL-базе. И начинает работу в этой базе — добавляет/изменяет/просматривает данные и отчеты.
Код представляет собой совокупность обработок, хранящихся в SQL-базе. Каждая обработка имеет свою версию. Если версия обработки меньше, чем версия обработки в базе данных, она обновляется в локальную базу из SQL-базы.
Конфигуратор системы создает описание структуры данных. По команде это описание отображается на базу, создаются и модифицируются необходимые таблицы. Создаются новые поля, таблицы и индексы, ненужные удаляются. Можно использовать систему для подключения к уже существующей базе и таблицам.
Формы элемента рисуются в обычном конфигураторе 1С. Соответствие данных прописывается кодом. Соответственно, система знает, какие данные из каких полей отображать в полях.
Формы списка не поддерживают динамическое считывание данных, считывают данные порциями, постранично.
Отчеты выглядят как типовые 1С-отчеты, можно использовать даже систему компоновки данных (СКД).
Печатные формы документов программируются также на 1С и выводятся в табличные документы MXL.
Модули объектов (справочников и документов) хранятся в дополнительных обработках.

Особенности реализации Базухи​

Для вопросов безопасности важно, чтобы в базе-носителя у пользователя не было лишних доступов, чтобы он не мог менять код. Несмотря на то, что у пользователя User полные права, он не может отлаживать код и менять код дополнительных внешних обработок. В этоп плане SQL база данных защищена от несанкционированного доступа.
Для вопросов быстродействия важно, чтобы COM-соединение с SQL-базой данных было постоянно открыто. 1С:Деньги запускаются в режиме толстого клиента, при этом в серверном коде внешних обработок становятся доступными переменные приложения, т.к. можно постоянно хранить соединение с SQL-базой данных, а не создавать его каждый раз, что увеличивает скорость запросов к SQL-базе. Кроме того, это позволяет кэшировать дополнительные обработки, где хранится код приложения.
В качестве сервера планируется использовать любой SQL-сервер, желательно бесплатный. В начале My-SQL, потому что его проще приобрести пользователю (обычно предоставляются при покупке хостинга). И администрировать его практически не нужно. Далее, можно посмотреть в сторону Postgree.


Источник статьи: https://habr.com/ru/post/561880/
 
Сверху