OneBase после обратной связи: от pet-проекта к платформе

21.07.26

Интеграция - Нейросети

OneBase продолжает развиваться благодаря обратной связи сообщества. В этом обновлении платформа получила ИИ-помощника, визуальный конструктор форм, СКД, push-уведомления и множество других улучшений. Рассказываю, что изменилось, какие решения были приняты и почему OneBase постепенно превращается из pet-проекта в полноценную open-source платформу для разработки бизнес-приложений.

Ссылки на предыдущие части:

- Статья 1

- Статья 2

 

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

Поэтому это не совсем “ещё один changelog”. Да, ниже будет много новых возможностей: ИИ-помощник в конфигураторе, нормальная СКД, визуальный конструктор форм, real-time уведомления, история версий конфигурации, автобэкап, свёртка базы, onebase lint, MCP-инструменты и нагрузочный стенд.

Но главный сдвиг не в списке фич. Главный сдвиг в том, что OneBase постепенно перестаёт быть штукой “для пет-проекта на вечер”. Она всё ещё не production-ready, это важная оговорка и я от неё не отказываюсь. Но теперь вокруг неё есть реальные разрабатываемые конфигурации, реальные замечания, реальные баги, реальные правки и очень короткий цикл обратной связи.

Собственно, с этого и начну.

 

Рис. 1. Главный экран пользовательского режима  конфигурации PuT.

 

1. Уже не только “поиграться вечером”

Когда я писал первую статью, OneBase проще всего было объяснять через понятные примеры: домашняя бухгалтерия, таск-трекер, складская демка, MVP, учебный проект, личная автоматизация. Это всё остаётся хорошим сценарием: платформа маленькая, открытая, понятная 1С-разработчику и не требует лицензий.

Но за последние итерации стало видно другое: проект начинают проверять не абстрактными “а можно ли сделать справочник”, а вполне прикладными вопросами:

- как открыть несколько документов и не потерять контекст списка;

- как дать пользователю поменять структуру отчёта без правки YAML;

- как поймать дубль по ИНН и не обновить случайно не того контрагента;

- как не сломать RLS на чтении формы;

- как показать оператору всплывающее уведомление не через polling;

- как откатить ошибочное изменение конфигурации;

- как посмотреть, что будет при свёртке базы, до того как нажать страшную кнопку;

- как нагрузить базу k6 и увидеть p95/p99, а не “у меня вроде быстро”.

И вот это уже больше похоже на жизнь платформы, а не на демонстрационную поделку.

Сейчас в репозитории есть несколько конфигураций, на которых проверяются разные стороны платформы:

 

                                                                                                                                                                                                                                                                                                       
Конфигурация Что проверяет
examples/trade торговля, склад, FIFO, отчёты, обработки, оборудование, РМК
examples/crm сделки, клиенты, формы, списки значений, HTTP-сервисы
examples/tasks задачи, спринты, тайм-трекинг, отчёты, регламентные задания
examples/finance домашние финансы, бюджеты, цели, отчёты
examples/accounting план счетов, бухгалтерский регистр, проводки
examples/callcenter пример прикладной конфигурации, где проверяются real-time события и внешние интеграции

 

Отдельно развивается более полная конфигурация ПУТ. И это для платформы особенно полезно: маленький пример часто не показывает неприятные углы. Реальная конфигурация быстро вытаскивает наружу то, что в “hello world” не видно: ширину форм, неудобные списки, ошибки импорта, нехватку событий, права, блокировки, отчёты, производительность.

 

2. Обратная связь как часть разработки

Скажу пару слов про инфраструктуру для получения обратной связи и составления документации.

У меня нет отдела поддержки, отдела по ведению документации и т.п.  Но и самому мне этим заниматься времени нет, поэтому пришлось всё автоматизировать.

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

 

Рис. 1.1 Автообновляемая документация с поиском.

 

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

 

Рис. 1.2 Раздел "Тестируем" на сайте.

 

Ну и теперь есть динамический автообновляемый роадмап. Карточки фич с прогрессом выполнения, планы в которых можно прочитать и, при желании, обсудить

 

Рис. 1.2 Раздел "планы" на сайте с обновляемым прогрессом.

 

Эти простые инструменты позволили снизить до 0 временные затраты на написание и актуализацию инструкций и прогресса по планам и существенно ускорили работу с багами, а значит, и совершенствование системы.

Прошу всех предлагать новые фичи или тестировать уже реализованные. Все это достаточно оперативно рассматривается и как минимум превращается в планы либо сразу идёт в разработку.

После второй статьи от 5 июня 2026 года в GitHub Issues пошёл плотный поток замечаний. Я пересчитал текущий срез через GitHub API перед написанием этого текста: PR исключены, учитываются только issues.

Рис. 2. Срез по GitHub Issues: сколько задач закрыто и с какой скоростью.

 

На 25 июня 2026 года (да, я долго пишу статью...) картина такая:

                                                                                                                                                                                                                                                                                                                                                                                       
Метрика Значение
Всего issues в трекере 65
Закрыто issues 65
Открыто issues 0
Issues после второй статьи 55
Закрыто из них 55
Медианное время закрытия после второй статьи 7,6 часа
Закрыто за 24 часа 38 из 55
Закрыто за 72 часа 54 из 55

 

Конечно, это не SLA и не обещание “так будет всегда”. Проект по-прежнему развивается в свободное время, и рано или поздно появятся задачи, которые не закрываются за вечер. Но как снимок скорости реакции это хороший индикатор: обратная связь не просто складывается в backlog, а быстро превращается в код.

Самое интересное здесь не само число “55/55”, а характер закрытых задач. Это не только косметика. Среди них были security/critical, UX-блокеры, недостающие платформенные события, проблемы конструктора, отчётов и DSL.

Несколько показательных историй.

 

Security/RLS: issue #148

В issue #148 была зафиксирована неприятная вещь: серверное событие чтения формы не вызывалось на GET, а значит, прикладной RLS на уровне формы мог не сработать. Для любой системы с пользователями это не “потом посмотрим”, а критичный класс ошибок.

Результат: появился серверный хук ПриЧтенииНаСервере, который получает объект формы уже после загрузки данных — первая точка, где прикладной код видит Объект на сервере до рендера. Через него можно:

- дополнить/вычислить реквизиты перед показом;

- скрыть чувствительные поля;

- вовсе отказать в чтении через ВызватьИсключение (сервер отдаёт 403, данные в HTML не попадают).

Полноценного row-level security на уровне платформы в OneBase нет — движок сам по строкам ничего не фильтрует, а RBAC режет доступ только к объектам целиком. Но ПриЧтенииНаСервере даёт зачаток RLS «своими руками»: логику «имеет ли пользователь доступ к этой конкретной записи» пишет разработчик конфигурации. Важная оговорка — хук закрывает только открытие формы одной записи; списки, отчёты и запросы он не фильтрует. Это заплатка на конкретный дырявый путь чтения, а не сквозной RLS.

Как только вам, друзья, потребуется настоящий RLS, просто создайте ишью )

Время от создания issue до закрытия: около 6,7 часа.

 

Процедура ПриЧтенииНаСервере()
  Если Не ПользовательИмеетДоступКОбъекту(Объект) Тогда
    ВызватьИсключение("Нет доступа к объекту");
  КонецЕсли;
КонецПроцедуры

 

Safe-match: issues #177 и #178

 

При импортах и синхронизациях почти всегда возникает задача “найти объект по реквизиту”. В простом случае хочется написать запрос по ИНН и обновить найденного контрагента. Но в реальной базе есть три исхода:

- ничего не найдено — надо создать;

- найден ровно один — можно обновлять;

- найдено несколько — это конфликт, руками разбирать дубли.

Раньше это каждый раз приходилось аккуратно писать в прикладном коде. После замечаний появился штатный API:

 

Рез = Справочники.Контрагент.ПроверитьСовпадениеПоРеквизиту("ИНН", ИНН);

Если Рез.Статус = "НеНайдено" Тогда
  Контрагент = Справочники.Контрагент.Создать();
ИначеЕсли Рез.Статус = "НайденаОдна" Тогда
  Контрагент = Рез.Ссылка.ПолучитьОбъект();
Иначе
  ВызватьИсключение("Найдено несколько контрагентов с ИНН " + ИНН);
КонецЕсли;

 

Это маленькая функция, но очень платформенная по смыслу. Она снимает с конфигураций повторяющийся и потенциально опасный код.

 

Визуальный конструктор форм: issue #164

Большой пример обратной связи — визуальный конструктор управляемых форм. Сначала была управляемая форма как YAML + предпросмотр. Это уже работало, но всё ещё требовало думать в тексте. Потом появился запрос: перетаскивать реквизиты на форму как в привычном конфигураторе.

В итоге за несколько дней вырос не просто drag-and-drop одного поля, а полноценный визуальный редактор:

- холст формы справа;

- палитра реквизитов и структурных элементов;

- группы, страницы, закладки, табличные части;

- панель свойств выбранного элемента;

- создание обработчиков событий;

- перестановка и удаление элементов;

- синхронизация холста и YAML;

- сохранение ручных комментариев и порядка ключей через round-trip дерева YAML.

Время закрытия issue #164: около 62,8 часа. Для задачи такого размера это очень быстро.

 

UX по свежим замечаниям: issues #205 и #206

Свежий пример уже из совсем недавних: замечания по конструктору форм и поведению вкладок приложения. Оба issue были закрыты примерно за 4-4,5 часа.

Это важнее, чем кажется. У платформы может быть сколько угодно “больших” возможностей, но если мелкий UX постоянно мешает работать, пользователь до больших возможностей не доберётся. Поэтому такие issue ценны: они двигают OneBase из состояния “фича есть” в состояние “этим можно пользоваться без раздражения”.

 

3. ИИ-помощник теперь внутри конфигуратора и предприятия

Честно, не помню, писал ли я про ИИ помощника в пользовательском режиме, я его уже очень давно добавил и в зависимости от прав (а в системе уже есть даже RLS) он может анализировать информацию из базы и отвечать на ваши вопросы.

 

Рис. 2.1 ИИ помощник в предприятии.

 

Попробовать можно прямо в живой демо базе  пользователь Демонов пароль 12345

Во второй статье я писал про CLI-first инструменты для разработки с ИИ: check, describe, ai-guide, procrun. Тогда главный тезис был простой: ассистенту нужна обратная связь. Он должен видеть структуру конфигурации и получать точные ошибки, а не гадать по файлам.

Следующий шаг — встроить эту петлю прямо в конфигуратор.

Теперь в конфигураторе есть ИИ-помощник. Он настраивается через форму: endpoints, модели, профили задач. Можно подключить Gemini, Anthropic, OpenAI или compatible endpoint, в том числе локальные или альтернативные API.

 

Рис. 2.2 UI настроек ИИ в конфигураторе.

 

Примерная структура настроек такая:

 

llm:
  enabled: true
  endpoints:
    - name: z_ai
      kind: anthropic
      base_url: https://api.z.ai/api/anthropic
      api_key: "${env:ZAI_KEY}"
    - name: google
      kind: gemini
      api_key: "${env:GEMINI_KEY}"
  models:
    - { name: glm-4.6, endpoint: z_ai }
    - { name: gemini-2.5-flash, endpoint: google, vision: true }
  profiles:
    - { task: анализ, models: [glm-4.6] }
    - { task: чат, models: [glm-4.6] }
    - { task: документы, models: [gemini-2.5-flash] }
  default_profile: анализ

Настройки можно задавать через UI, а можно и текстом

 

Рис. 2.3 Настройки ИИ в конфигураторе в виде JSON.

 

Ключи можно хранить в _settings базы, а для деплоя задавать через config/app.yaml и переменные окружения. В .obz-бэкап ключи не попадают.

Главное — ИИ-помощник не просто “чат рядом с кодом”. Он умеет работать с конфигурацией как с набором файлов:

- генерировать YAML, .os и формы;

- показывать diff до применения;

- давать выбрать, какие файлы применять;

- запускать проверку перед записью;

- делать self-correction loop после неудачного check;

- показывать tool trace;

- для конфигураций в БД создавать снимки до/после, чтобы был понятный rollback.

 

Рис. 2.4 Генератор каркаса конфигурации прямо в конфигураторе

 

Рис. 2.5 ИИ помощник в конфигураторе

 

Мне кажется, это правильная точка баланса. ИИ не получает бесконтрольную кнопку “перепиши всё”. Он предлагает изменения, показывает diff, прогоняет инструменты платформы, а человек решает, что применять.

 

4. ИИ можно вызывать из DSL

Отдельная ветка — ИИ-функции прямо во встроенном языке. Это уже не про разработку конфигурации, а про прикладные сценарии.

Доступны функции:

 

                                                                                                                                                                                                                       
Функция Что делает
ЗапросИИ текстовый запрос к модели
ЗапросИИДжейсон запрос с ожиданием JSON-ответа
РаспознатьДокумент vision по файлу: png/jpg/webp/gif/pdf
РаспознатьИзображение vision по данным из памяти

 

Пример: простая рекомендация к закупке по остаткам.

 

Процедура Выполнить()
  Запрос = Новый Запрос;
  Запрос.Текст =
    "ВЫБРАТЬ
    |  Номенклатура,
    |  КоличествоОстаток
    |ИЗ РегистрНакопления.ОстаткиТоваров.Остатки(&НаДату)";
  Запрос.УстановитьПараметр("НаДату", ТекущаяДата());

  Данные = Запрос.Выполнить().Выгрузить();

  Параметры = Новый Структура;
  Параметры.Вставить("Задача", "анализ");
  Параметры.Вставить("Система", "Ты опытный товаровед. Отвечай кратко.");

  Ответ = ЗапросИИ(
    "Проанализируй остатки и предложи, что закупить. Данные: " + ЗаписатьJSON(Данные),
    Параметры
  );

  Сообщить(Ответ);
КонецПроцедуры

 

Другой сценарий — распознавание накладной. Модель вытаскивает поставщика и строки, а конфигурация создаёт черновик документа. Человек потом проверяет и проводит.

 

Процедура РаспознатьНакладную(ДанныеФайлаBase64)
  Промпт =
    "Извлеки поставщика и строки накладной. " +
    "Верни строго JSON: {""Поставщик"":"""",""Строки"":[{""Наименование"":"""",""Количество"":0,""Цена"":0}]}";

  ОтветJSON = РаспознатьИзображение(ДанныеФайлаBase64, "image/jpeg", Промпт);
  Данные = ПрочитатьJSON(ОтветJSON);

  Док = Документы.ПоступлениеТоваров.Создать();
  Док.Поставщик = НайтиКонтрагента(Данные.Поставщик);

  Для Каждого Стр Из Данные.Строки Цикл
    НоваяСтрока = Док.Товары.Добавить();
    НоваяСтрока.Номенклатура = ПодобратьНоменклатуру(Стр.Наименование);
    НоваяСтрока.Количество = Стр.Количество;
    НоваяСтрока.Цена = Стр.Цена;
  КонецЦикла;

  Док.Записать();
КонецПроцедуры

 

Да, это надо использовать аккуратно. Модель не должна без проверки проводить документы и менять остатки. Но как помощник для черновиков, анализа, распознавания и объяснения данных — уже полезно.

 

5. CLI и MCP: чтобы агент не угадывал структуру

ИИ-помощник в UI — это удобно, но внешние агенты тоже никуда не делись. Поэтому инструменты CLI выросли до более явного контракта.

onebase describe теперь отдаёт машинное описание конфигурации: объекты, формы, отчёты, виджеты, журналы, подсистемы, страницы, HTTP-сервисы, регламентные задания, роли, модули, процедуры, export-флаги, параметры и source location.

Появилась команда onebase examples, которая печатает canonical-фрагменты YAML/DSL. Это важная мелочь: агенту не надо вспоминать, как именно называется поле в метаданных, он может спросить платформу.

 

onebase describe --project examples/trade
onebase examples --list
onebase examples document
onebase examples query

 

Плюс набор headless-команд:

 

                                                                                                                                                                                                                                                                                                                                                                                       
Команда Зачем нужна
schema получить схему объекта метаданных
fmt проверить или отформатировать файлы
query прогнать запрос
eval выполнить небольшой DSL-фрагмент
impact понять последствия изменения
refactor rename-object/rename-field безопаснее переименовывать объекты и поля
widget explain объяснить виджет
report explain объяснить отчёт

 

И, наконец, onebase mcp: MCP-сервер поверх этих инструментов. По умолчанию он read-only. Mutating-инструменты скрыты, пока явно не включить нужный флаг:

 

onebase mcp --project /absolute/path/to/config

onebase mcp \
  --project /absolute/path/to/config \
  --allow-refactor-write

 

Это ровно тот случай, где “безопасность по умолчанию” важнее удобства. Сначала агент читает describe, смотрит examples, делает impact, запускает check, а уже потом человек решает, давать ли write-инструмент.

 

6. Отчёты: лёгкая СКД вместо “просто таблицы”

Отчёты — одна из тех областей, где простого “выполнить запрос и показать таблицу” хватает недолго. Пользователь быстро хочет группировки, итоги, варианты, отборы, графики, расшифровки и Excel.

В OneBase появился блок composition — лёгкая СКД в YAML отчёта.

 

composition:
  groupings:
    - Номенклатура
  measures:
    - field: Количество
      agg: sum
    - field: Сумма
      agg: sum
  totals: true
  chart:
    type: bar
    category: Номенклатура
    value: Сумма

 

Теперь отчёт может сам собрать:

- группировки;

- итоги;

- вычисляемые показатели;

- условное оформление;

- диаграммы;

- drill-down к деталям;

- экспорт в Excel.

Рис. 3. Конструктор компоновки отчёта в конфигураторе: группировки, показатели, итоги и сортировка.

Рис. 4. Пример сформированного отчёта с группировками, итогами и диаграммой.

 

Отдельно появился режим кросс-таблицы. Если добавить columns, измерение разворачивается в колонки:

 

composition:
  groupings: [Номенклатура]
  columns: [Месяц]
  measures:
    - { field: Сумма, agg: sum }

 

Для отчёта по продажам это превращает строки номенклатуры и месяцы в привычную сводную таблицу.

 

Рис. 4.1 Пример кросс таблицы.

 

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

Рис. 5. Пользовательская настройка отчёта прямо на форме.

 

variants:
  - name: "По складам"
    composition:
      groupings: [Склад, Номенклатура]
      measures:
        - { field: Сумма, agg: sum }
  - name: "Кросс по месяцам"
    composition:
      groupings: [Номенклатура]
      columns: [Месяц]
      measures:
        - { field: Сумма, agg: sum }

 

Для прикладной системы это большой шаг. Отчёт перестаёт быть “одним зашитым представлением” и становится рабочим инструментом пользователя.

 

7. Визуальный конструктор управляемых форм

Управляемые формы уже были во второй статье. Тогда это был важный шаг от автогенерируемых CRUD-форм к декларативным формам с событиями.

Теперь следующий этап: формы можно собирать визуально.

 

 

Рис. 6. Визуальный конструктор управляемой формы в конфигураторе.

 

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

Поддержаны:

- поля ввода;

- флажки;

- переключатели;

- списки значений;

- группы;

- страницы и наборы страниц;

- надписи;

- кнопки;

- табличные части;

- колонки табличных частей;

- события элементов;

- события формы.

Важная техническая деталь: холст и YAML синхронизированы двусторонне. Если править форму визуально, меняется YAML. Если править YAML, холст перерисовывается. При этом ручные комментарии и порядок ключей не должны теряться.

 

- kind: ПолеВвода
  name: ПолеНаименование
  title: { ru: "Наименование" }
  data_path: Объект.Наименование
  required: true
  events:
    ПриИзменении: НаименованиеПриИзменении

 

Рис. 7. Холст формы и редактирование структуры элементов в визуальном конструкторе, события.

 

События можно привязывать через UI. У кнопки — Нажатие, у поля — ПриИзменении, у формы — ПриОткрытии, ПриЧтенииНаСервере, ПередЗаписью, ПриЗаписи, ПослеЗаписи.

Если процедуры ещё нет, конструктор может создать пустой обработчик в .form.os.

 

Процедура ВалютаПриИзменении()
  Сообщить("Выбрана валюта: " + Объект.Валюта);
КонецПроцедуры

 

Отдельно появился элемент “список значений” — аналог СписокВыбора, когда не хочется заводить отдельное перечисление или справочник.

 

- kind: ПолеСписка
  name: ПолеВалюта
  data_path: Объект.Валюта
  choices:
    - value: RUB
      title: { ru: "Российский рубль", en: "Russian ruble" }
    - value: USD
      title: { ru: "Доллар США", en: "US dollar" }
  events:
    ПриИзменении: ВалютаПриИзменении

 

Если список зависит от данных, его можно наполнить динамически в событии НачалоВыбора через ДобавитьЗначениеСписка.

 

8. Интерфейс: вкладки, страницы, плитки и richtext

Много улучшений в интерфейсе небольшие по отдельности, но вместе сильно меняют ощущение от работы.

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

Рис. 8. Пользовательский интерфейс PuT со с открытыми вкладками.

 

Появились произвольные страницы на DSL. Это не отчёт и не форма объекта, а отдельный экран раздела: показатели, таблицы, графики, HTML-блоки, кнопки и серверные действия.

 

Процедура ПриФормировании(Страница, Параметры) Экспорт
      Страница.Заголовок("Панель продаж");
      Страница.Показатель("Заказы сегодня", ПолучитьКоличествоЗаказов(), "number");
      График = Страница.График("Продажи по дням", "bar");
      График.Категории("Пн", "Вт", "Ср");
      График.Серия("Продажи", ПолучитьДанныеГрафика());
КонецПроцедуры

 

Рис. 9. Пример рабочей панели пользовательского режима.

 

Списки теперь можно показывать не только страницами, но и лентой, плиткой или деревом. Для номенклатуры с фотографиями плитка выглядит естественнее таблицы.

 

tile_view:
  image: Фото
  title: Наименование
  subtitle: Артикул
  fields: [Цена, Остаток]

Рис. 10. Справочник номенклатуры в пользовательском режиме PuT.

 

Для карточек появились новые типы реквизитов:

- image — поле-картинка, например фото товара или логотип;
- richtext — форматированный текст через Quill, с HTML, картинками и санитайзером.

 

Рис. 10.1  richtext-поле с форматированием, списком и вставленной картинкой

 

Для навигации по подсистемам добавились иконки разделов из Lucide. Это мелочь, но на реальных конфигурациях с несколькими подсистемами сильно помогает быстрее считывать интерфейс.

 

name: Продажи
title: Продажи
icon: shopping-cart
documents:
  - ЗаказПокупателя
  - РеализацияТоваров

Рис. 10.2 Иконки разделов из Lucide.

 

И ещё один блок, который раньше быстро начинал мешать: переводы синонимов. Теперь их можно редактировать в конфигураторе единым режимом, а не раскрывать отдельный блок у каждого поля. Переводы enum-значений тоже поддержаны.  А когда вам не нужны переводы, они не отображаются и не мешаются

 

Рис. 10.3 Отображаемые/Скрываемые переводы.

 

9. Real-time пуши и всплывашки

Real-time сценарии быстро появляются в любой живой конфигурации: задачи, заявки, согласования, интеграции, регламентные операции. Поэтому сам механизм сделан платформенным, без привязки к конкретной предметной области.

В OneBase появился SSE-канал /ui/events, внутрипроцессная шина уведомлений и DSL-функция ОтправитьУведомление.

 

ОтправитьУведомление("ivan", "уведомление", "Заявка №42 назначена на вас");
ОтправитьУведомление("роль:Оператор", "очередь.переполнена", Новый Структура("Ждут", 7));
ОтправитьУведомление("*", "уведомление", "Сервер будет перезагружен в 18:00");

 

Первый аргумент — адрес:

- логин пользователя;
- роль:ИмяРоли;
- * для всех онлайн-пользователей.

Если событие называется уведомление и payload — строка, интерфейс показывает готовый toast.

 

Рис. 11. Real-time toast-уведомление в открытой вкладке интерфейса.

 

Но можно отправлять и свои события. Тогда страница слушает их на клиенте:

 

window.addEventListener("onebase:очередь.переполнена", (event) => {
  const data = event.detail;
  showQueuePopup(data);
});

 

Это уже основа для живых интерфейсов:

- уведомить исполнителя о новой задаче;

- показать бухгалтеру входящий документ на согласование;

- обновить показатель на дашборде;

- вывести всплывашку по событию внешней системы;

- сообщить группе пользователей о регламентной операции;

- показать администратору предупреждение о сбое интеграции.

Важно: это не замена полноценному распределённому message broker. Сейчас шина внутрипроцессная. Для одного экземпляра приложения этого достаточно, для горизонтального масштабирования нужна отдельная работа. Но для текущего класса инсталляций это уже практичный механизм, который убирает постоянный polling.

 

10. Печатные формы: от YAML к визуальному макету

Печатные формы в OneBase были с самого начала: можно было описывать YAML или формировать ТабличныйДокумент из DSL. Теперь направление стало удобнее для реальной работы.

Появился визуальный редактор макетов печатных форм:

- строки и колонки;

- ширины и высоты;

- границы по сторонам ячейки;

- привязка данных;

- предпросмотр;

- HTML и PDF;

- кириллические шрифты на серверном PDF;

- картинки в HTML/PDF.

 

Рис. 11.1 Редактор макетов печатных форм.

 

Есть и импорт из PDF. Загружаете готовый векторный PDF — например счёт, акт или УПД — платформа пытается распознать сетку, тексты и границы, а дальше даёт доработать макет в редакторе.

 

Рис. 11.2 Импорт печатных форм из PDF.

 

Для старых печатных форм есть миграция:

 

onebase printforms migrate --project ./my-config

 

Это не магия “любой PDF превратим в идеальный макет”. Со сканами будет честная ошибка. Но для векторных форм это хороший старт, особенно если нужно быстро получить похожий макет и потом руками довести детали.

 

11. Торговое оборудование и РМК

Ещё один признак взросления платформы — подключаемое оборудование. В пет-проекте это обычно не нужно. В реальной торговой конфигурации без этого быстро упираешься в потолок.

В OneBase появился единый подход к оборудованию:

- чековый принтер;

- дисплей покупателя;

- весы;

- эквайринг;

- сканер штрихкода;

- фискальный регистратор;

- device-agent на кассовом месте;

- эмуляторы для тестов.

Сервер OneBase не обязан иметь прямой доступ к железу кассира. Браузер обращается к локальному onebase device-agent, а URL и token хранятся в localStorage конкретного рабочего места.

 

Рис. 12. Агент оборудования.

 

В РМК можно:

- проверить связь с агентом;

- напечатать чек;

- открыть денежный ящик;

- получить вес;

- принять событие сканера;

- пробить фискальный чек через АТОЛ.

 

Рис. 12. Рабочее место кассира.

 

Для простых устройств не обязательно писать Go-драйвер. Есть декларативные scripted-драйверы: hex-запрос, regexp ответа, шаблоны строк, кодировка cp866 или utf8.

Это важный принцип для платформы: где можно дать конфигурации расширяемость без пересборки платформы, лучше дать её.

Да, тут пока всё в зачаточной стадии, но задел есть, будут конкретные запросы - буду развивать направление оборудования!

 

12. Администрирование: версии, автобэкап и свёртка

Напомню, что в onebase конфигурацию можно хранить в файлах и использовать git а можно и в таблицах базы данных (как в 1С)

Когда конфигурация хранится в базе, появляется неприятный вопрос: а что делать, если в конфигураторе ошиблись?

Теперь есть история версий конфигурации. Платформа создаёт снимки в _config_versions при сохранениях, удалениях, batch-операциях и onebase deploy --message.

В UI можно:

- посмотреть список версий;

- сравнить две версии;

- экспортировать снимок в ZIP или config-only .obz;

- выполнить rollback.

 

Рис. 13. История версий конфигурации, diff двух версий и кнопка rollback

 

Rollback не стирает историю, а создаёт новую версию. Это правильная модель: даже откат остаётся видимым событием.

 

Появился автобэкап:

 

backup:
  enabled: true
  schedule: "0 2 * * *"
  keep_last: 7
  directory: ""

 

Он работает как системное задание AutoBackup, пишет PostgreSQL-дампы как .sql.gz, SQLite — как .db, сначала во временный файл и только после успешного завершения переименовывает в финальный.

 

Рис. 13.1 Настройки автобэкапа в конфигураторе 

 

И, наконец, платформенная свёртка базы. Это уже совсем не “пет-проектовая” функция.

Свёртка на дату:

- считает остатки балансовых регистров накопления;

- создаёт опорные записи synthetic-регистратором _СвёрткаБазы;

- может удалить движения и документы до даты;

- выставляет дату запрета проведения свёрнутого периода;

- для бухгалтерского регистра использует вспомогательный счёт;

- перед выполнением показывает предпросмотр;

- проверяет, что остатки до и после совпали;

- не даёт оставить повисшие ссылки, если удаляемый документ используется сохраняемой записью.

 

onebase rollup \
  --project ./examples/trade \
  --sqlite trade.db \
  --date 2026-01-01 \
  --dry-run

Рис. 14. Свёртка базы в конфигураторе с предварительной проверкой.

 

Свёртка необратима. Поэтому сначала бэкап, потом dry-run, потом выполнение. Здесь лучше быть скучным и осторожным.

 

13. Качество, lint и наблюдаемость

Когда проект начинает проверяться реальными конфигурациями, одного “у меня запустилось” мало.

Появился onebase lint. В отличие от строгого check, lint может выдавать предупреждения:

- неизвестные YAML-ключи;

- неиспользуемые Перем;

- недостижимые процедуры;

- объекты без прав в ролях.

 

onebase lint --project examples/trade
onebase check --project examples/trade --lint

 

Это шаг к нормальному CI-gate для поставляемых конфигураций.

Появились Prometheus-метрики на /metrics и структурные slog-логи. Можно задавать формат и уровень:

 

ONEBASE_LOG_LEVEL=debug ONEBASE_LOG_FORMAT=json onebase run --project ./examples/trade

 

Секреты, токены, DSN и чувствительные аргументы редактируются в логах, чтобы не утекали в диагностику.

 

Рис. 15. Лог с секретами.

 

Для нагрузки появился стенд:

- PostgreSQL;

- onebase;

- Prometheus;

- Grafana;

- k6-сценарии;

- HTML-отчёты.

 

docker compose -f loadtest/docker-compose.yml up -d --build

go run ./loadtest/seed \
  -url http://localhost:8080 \
  -counterparties 200 \
  -documents 500 \
  -out loadtest/seed/counterparties.json

docker compose -f loadtest/docker-compose.yml run --rm --service-ports \
  -e K6_WEB_DASHBOARD=true \
  -e K6_WEB_DASHBOARD_HOST=0.0.0.0 \
  -e K6_WEB_DASHBOARD_EXPORT=/reports/post_document.html \
  k6 run /scripts/scenarios/post_document.js

 

Рис. 16. фрагмент k6 отчёта нагрузочного теста.

 

Честный текущий вывод по многопользовательской работе такой:

- 10 пользователей на PostgreSQL с умеренной нагрузкой выглядят нормальным сценарием;

- 100 зарегистрированных пользователей сами по себе не проблема;

- 100 одновременно активных пользователей — уже настоящая эксплуатация, нужны PostgreSQL, настройка пула, индексы, лимиты отчётов и нагрузочный прогон;

- SQLite лучше оставить для desktop, демо и разработки;

Это не рекламный ответ “да хоть тысяча”. Это инженерный ответ: вот где уже нормально, вот где надо мерить, вот какие ограничения известны.  Главное, что все инструменты теперь есть из коробки

 

14. Что с REST и HTTP-сервисами

REST API по сущностям был и раньше, но рядом появился более прикладной механизм — HTTP-сервисы на DSL. Это аналог идеи “опубликовать свой endpoint из конфигурации”.

Конфигурация описывает сервис, а обработчик на DSL отдаёт текст или JSON по /hs/<корень>/....

 

Процедура ПолучитьСтатус(Запрос, Ответ)
  Данные = Новый Структура;
  Данные.Вставить("status", "ok");
  Данные.Вставить("time", ТекущаяДата());

  ОтветJSON(Ответ, Данные);
КонецПроцедуры

 

Рис. 17. RapiDoc/OpenAPI-страница HTTP-сервиса конфигурации

 

Это удобно для интеграций: webhook от внешней системы, приём заявки, отдача статуса, простая внутренняя API-точка. Но тут тоже есть предохранители: сетевые операции и опасные действия должны включаться осознанно, а секреты не должны лежать в открытом YAML.

Ну и кто не мечтал про Swagger из коробки в 1С?  Onebase рисует интерактивную документацию по HTTP-сервисам автоматически (RapiDoc + OpenAPI 3.0, всё внутри бинаря).

 

15. Итого: куда всё это движется

Если коротко, OneBase стала заметно более платформенной.

В первой статье было важно показать, что вообще можно сделать открытую бизнес-платформу на Go с 1С-подобной моделью: справочники, документы, регистры, DSL, отчёты, формы, лаунчер.

Во второй статье — что платформа быстро догоняет базовую эргономику: управляемые формы, роли, i18n, decimal, CLI-инструменты, REST, рабочий стол.

 

Сейчас важнее другое:

- конфигурации становятся реальнее;

- обратная связь идёт через issues;

- замечания быстро превращаются в механизмы платформы;

- отчёты стали ближе к СКД;

- формы можно собирать визуально;

- появились пуши и всплывашки;

- есть история версий и rollback;

- есть автобэкап и свёртка;

- есть lint, metrics, логи и нагрузочный стенд;

- ИИ встроен не как игрушка, а как часть dev-loop с diff, check и rollback.

Повторю оговорку: я не называю OneBase production-ready. Там ещё достаточно шероховатостей, технического долга и мест, которые надо добивать перед серьёзной эксплуатацией. REST API v2, полноценный multi-user hardening, RLS-стратегия, горизонтальное масштабирование, лимиты тяжёлых операций — всё это ещё требует доработки.

Но “только для пет-проектов” — уже тоже не совсем честное описание. Пет-проекты остаются хорошей точкой входа. А дальше всё больше видно другой сценарий: быстро собрать прикладную конфигурацию, дать её пользователям, получить обратную связь, закрыть проблемы, улучшить платформу и повторить цикл.

И в этом смысле OneBase становится интереснее всего именно как открытая платформа, которую можно менять под реальные задачи.

 

Ссылки

- Репозиторий

- Releases

- Демо база онлайн  Демонов  12345

- Первая статья

- Вторая статья

- Видео 1 Видео 2 Видео 3

- Документация + в репозитории: README.md, QUICKSTART.md, DEVELOPER.md, docs/features.md

- Примеры конфигураций: examples/

Вступайте в нашу телеграмм-группу Инфостарт

OneBase Open Source платформа разработки бизнес-приложения DSL искусственный интеллект AI ИИ-помощник визуальный конструктор формы СКД отчеты PostgreSQL Git автоматизация ERP low-code конфигурация разработка

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданным 1С, справке синтакс-помощника и проверки синтаксиса.

15250 руб.

25.08.2025    68451    138    41    

144

SALE! %

Банковские операции Обмен с интернет-банком Мастера заполнения Нейросети Программист Бухгалтер Пользователь 1С:Предприятие 8 1C:ERP 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:ERP. Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)

Корректируйте банковские документы быстро и легко! Создайте правило обработки — и оно автоматически применится при загрузке выписки (отбор по любому реквизиту или регулярному выражению). Решение заполняет расшифровку платежа, комиссию эквайринга, подбирает ведомости на выплату зарплаты, помечает дубли из банка на удаление и многое другое. Доплачивать за алгоритмы не нужно — они включены в решение. Обработка работает при загрузке из файлов клиент-банка и через DirectBank. Новое — искусственный интеллект: модель приводит нестандартные назначения платежа к виду, понятному алгоритмам, а ИИ-ассистент прямо в 1С консультирует по решению и разбирает код правил и алгоритмов. Поддерживаются локальные и облачные OpenAI-совместимые модели — данные могут не покидать ваш контур.

15250 руб.

20.12.2024    18412    91    29    

80

SALE! %

Нейросети Системный администратор Программист Бизнес-аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С:Документооборот 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Россия Платные (руб)

Задавайте вопросы базе 1С обычными словами: получайте данные, находите ошибки и связанные документы, проверяйте права, работайте с вложениями и контролируемо вносите изменения. Всё это работает в самой программе, а Codex и Claude подключаются по желанию.

15989 9891 руб.

30.07.2026    7750    20    4    

18

Нейросети Программист 1С:Предприятие 8 Россия Бесплатно (free)

Как связать 1С и Cursor через MCP так, чтобы AI-агент сам получал актуальную конфигурацию из информационной базы, находил нужный BSL-код, вносил изменения, загружал конфигурацию обратно и запускал 1С:Предприятие. В статье — настройка 1C: Platform Tools, 1C: Platform Tools MCP, OneScript, vanessa-runner и env.json, а также важные нюансы при работе с несколькими проектами, IPC-портами, большими конфигурациями и длительными операциями загрузки. Покажу полный практический цикл на тестовой базе без ручной выгрузки и загрузки XML через Конфигуратор.

28.08.2026    11631    rinat1c    14    

27

Нейросети Программист 1С:Предприятие 8 Бесплатно (free)

Новый UI-контур CodexTestBridge запускает штатные TestClient/TestManager и даёт ИИ-агенту семантические действия вместо координат. Результаты возвращаются по шагам, долгие операции сопровождаются heartbeat. На реальной БП 3.0 открываем и заполняем приходную накладную без записи.

26.08.2026    1849    Aleksandr    2    

9

Нейросети Программист Бесплатно (free)

Практический эксперимент по использованию ИИ при обновлении расширений 1С. Сравниваются GigaChat-2-Pro и локальный Qwen3-Coder 30B на реальных конфликтах BSL-кода. Показано, как модели анализируют изменения типовой конфигурации, где могут ошибаться даже с высокой уверенностью и почему рекомендации AI необходимо дополнительно проверять алгоритмически и в тестовой базе 1С.

24.08.2026    1377    aldar    12    

8

Нейросети Программист 1С:Предприятие 8 Бесплатно (free)

В этой статье расскажу, как реализовал с помощью LLM полноценную генерацию кода для 1С (BSL) в популярном Open Source API-клиенте Bruno.

21.08.2026    1353    malikov_pro    9    

10

Нейросети Программист 1С 8.3 Бесплатно (free)

Один проход модели по вопросу из 28 знаков стоит 631 296 умножений и 4,8 секунды. Столько берёт языковая модель на 21 920 параметров, посчитанная прямо в 1С средствами самой платформы. На ней разбираю по шагам, что стоит за каждым словом из модного словаря: токен, словарь, вектор символа, вес, слой, голова внимания, контекст, softmax, температура, KV-кэш. Отдельно про температуру - она вообще не про креативность и управляет выбором буквы уже после того, как модель закончила работу. Отдельно про галлюцинацию - показываю в цикле генерации место, куда физически невозможно вставить "не знаю". Плюс расчёт потолка для встроенного языка, замер цены размера модели и история про метод платформы, которого не существует.

20.08.2026    5474    nedomolkov.ivan    16    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Ibrogim 1895 21.07.26 16:11 Сейчас в теме
Прошу всех предлагать новые фичи или тестировать уже реализованные. Все это достаточно оперативно рассматривается и как минимум превращается в планы либо сразу идёт в разработку.
2. SAShikutkin 17 21.07.26 17:03 Сейчас в теме
(1) Как происходит работа с внешними компонентами и в целом подключаемым оборудованием?
4. Ibrogim 1895 21.07.26 17:57 Сейчас в теме
(2)
Подключаемое торговое оборудование поддерживается «из коробки»: чековые принтеры (ESC/POS), фискальные регистраторы (ККТ по 54-ФЗ, АТОЛ), эквайринговые терминалы, весы, дисплеи покупателя и сканеры штрихкода. Устройства работают через TCP или COM-порт.

Есть два режима:
- Локально — когда сервер стоит на кассе.
- Веб-клиент — на кассовом ПК запускается небольшой локальный агент, а веб-интерфейс (РМК) отдаёт ему команды печати/оплаты/фискализации. Всё защищено токеном.

Из прикладного кода оборудование вызывается простыми командами: подключить устройство, напечатать чек, открыть ящик, получить вес, оплатить картой, пробить фискальный чек.

Отдельно есть декларативные драйверы — это аналог «внешних компонент»: новую модель устройства с простым протоколом можно подключить, просто описав параметры (запрос, разбор ответа, кодировку) в настройках, без доработки и пересборки платформы.

Важное отличие от 1С: OneBase не загружает произвольные внешние DLL-компоненты. Нестандартное бинарное оборудование подключается через штатный драйвер платформы, а простые протоколы — через декларативные драйверы настройками.
5. Ibrogim 1895 21.07.26 17:59 Сейчас в теме
(2) Если будет конкретная задача по внешней компоненте, могу подумать о доработке. Ну или вы всегда можете сами доработать платформу)

А по ТО, классно будет если кто-то реальное оборудование затестит
3. user-z99999 78 21.07.26 17:57 Сейчас в теме
(1)
Предложения:
1) добавить работу с gRPC
2) работа с guid-ами 1с.
создаю новый элемент в программе и он должен улететь в программу 1с, как его потом сопоставлять?
можно ли создавать guid-ы для новых справочников, документов по правилам 1с?

3) поддержка встраивания других языков как модулей или библиотек в программу (java, python).
4) push сервер какой используется, если от google, это не надёжно
5) ИИ помощник какой? это иностранные ИИ или локальный. (требования к железу)
6) OneBase как работает на компьютере, это один процесс?
многопоточность может быть для разных задач,
чтобы долгие и тяжёлые процессы не вешали программу, пусть в фоне делают всё, как в kotline
7) работа с не реляционными базами данных, простое подключение и отображение информации из них на экранах форм.
8) WebSocket уже есть, клиент и сервер?
9) подключение разных СУБД, чтобы напрямую с ними работать.
6. Ibrogim 1895 21.07.26 18:28 Сейчас в теме
(3) Спасибо. вопросы очень хорошие. Буду отвечать по частям (как с интегралами)

1) и 8)
gRPC сейчас нет. Внешний API — REST v2 (с токенами) + SSE для live-обновлений.
могу добавить, но сначала хотелось бы увидеть реальную задачу.
WebSocket тоже пока нет - двусторонность закрыта комбинацией SSE (сервер→брраузер→сервер)
Будет реальная задача - без проблем добавлю. Стараюсь в последнее время не делать функционал сильно впрок а больше сосредоточится на реальных задачах от пользователей платформы
7. Ibrogim 1895 21.07.26 18:36 Сейчас в теме
(3)
OneBase как работает на компьютере, это один процесс?

Сейчас: да, единый Go-бинарь = один процесс, но сильно многопоточный через горутины (это и есть аналог корутин Kotlin — то, о чём вы пишете). Каждый HTTP-запрос обрабатывается в своей горутине, поэтому тяжёлый отчёт одного пользователя не морозит других. Планировщик (internal/scheduler) гоняет регламентные задания в фоновых горутинах с таймаутом и отменой; есть headless-запуск обработок (procrun).
отдельного пользовательского API «выполнить эту долгую операцию в фоне и не держать форму» (аналог 1С ВыполнитьВФоне/фоновые задания с индикатором прогресса) в DSL сейчас нет — только регламентные задания по расписанию.
Вот это хорошее предложение заведу в план: добавить фоновые задания «по требованию» с прогрессом. Фундамент (горутины, отмена, шина событий для прогресса) уже есть.

работа с не реляционными базами данных

Сейчас нет, если только у NoSQL есть REST API — из DSL можно сходить HTTP-запросом и показать результат на форме.В принципе реализуемо, но надо понять какую именно БД и зачем — под конкретный движок проще, чем «универсальный NoSQL-слой». В общем будет задача будет и движок !
23. Ibrogim 1895 22.07.26 18:30 Сейчас в теме
(3)
2)работа с guid-ами 1с.
создаю новый элемент в программе и он должен улететь в программу 1с, как его потом сопоставлять?
можно ли создавать guid-ы для новых справочников, документов по правилам 1с?


OneBase уже строит идентичность записей на UUID, ровно как 1С. Псевдо-реквизит Ссылка = UUID, справочники/документы адресуются uuid. План обмена при передаче сохраняет тот же UUID в базе-приёмнике — то есть объект в двух базах OneBase имеет один и тот же GUID, сопоставление автоматическое.

По вашим вопросам:
- «Создал элемент, он улетел в 1С — как сопоставлять?» — по GUID. Механизм 1С — тот же: узлы плана обмена + GUID ссылки. Нужен слой соответствия OneBase↔1С (правила конвертации), но фундамент (UUID-идентичность) уже есть.
- «Можно ли создавать GUID-ы по правилам 1С?» — да, можно заранее присвоить запись UUID.
3) поддержка встраивания других языков как модулей или библиотек в программу (java, python).


3) поддержка встраивания других языков

Пока нет, нужна конкретная задача, тогда посмотрим
4) push сервер какой используется, если от google, это не надёжно

Никакого Google-push нет. Live-доставка «сервер → браузер» сделана на SSE (Server-Sent Events) через собственную шину internal/realtime/hub.go — это внутрипроцессный механизм поверх обычного HTTP самого приложения. Никакой внешней зависимости, никакого FCM.
Нюанс: SSE работает, пока открыта вкладка. Настоящий mobile-push (когда приложение закрыто) — это единственное место, где без FCM/APNs (Google/Apple) не обойтись, и его сейчас нет. Для веб-/десктоп-сценариев SSE самодостаточен и надёжен.
5) ИИ помощник какой? это иностранные ИИ или локальный. (требования к железу)

Сейчас: на выбор, движок провайдеро-независимый. Настраиваются endpoint'ы вида gemini | anthropic | openai | compatible. compatible + base_url = локальная модель (Ollama/LM Studio/vLLM и т.п.) или любой self-hosted.
Требования к железу: сама OneBase ИИ не считает — только шлёт HTTP-запрос, GPU ей не нужен. Требования к железу возникают, только если вы поднимаете локальную модель, и зависят от неё (условно 8–24 ГБ VRAM под нормальную модель). Хотите независимости от иностранных облаков — ставите локальную модель, конфиг тот же.
В лайв демо подключена glm5.1 (надо кстати на 5.2 поменять будет) можете пощупать , она доступна из РФ очень неблоха )
8. jackmas 21.07.26 18:39 Сейчас в теме
Платформа отличная.
Хотелось бы на сайте найти раздел куда отсылать обнаруженные ошибки.
Например: при работе с postgresql при установке пометки удаления выдается ошибка.
искал куда выслать скрины , но так и не понял
9. Ibrogim 1895 21.07.26 19:07 Сейчас в теме
12. Ibrogim 1895 22.07.26 10:20 Сейчас в теме
(8) Баг нашел и починил
10. GarriSoft 656 21.07.26 19:47 Сейчас в теме
Только сегодня вспоминал этот проект, думал когда будет продолжение.
Спасибо!
11. Diversus 2340 22.07.26 09:42 Сейчас в теме
(9) Поздравляю! Вы создали аналог 1С:Элемент :)
Ibrogim; comptr; +2 Ответить
14. Ibrogim 1895 22.07.26 11:42 Сейчас в теме
(11) Спасибо :) Только я не за «низкий порог для рук» гонюсь — 1С:Элемент про то, чтобы человеку было проще кликать. У меня цель другая: чтобы конфигурацию писал ИИ без барьеров. Один Go-бинарь, текстовые YAML+DSL, onebase check который реально компилирует и исполняет запросы — то есть агент видит ошибку сразу, а не в рантайме. Платформа, заточенная под разработку с ИИ, а не вопреки ему.
Baronello; Boris_1c; +2 Ответить
15. Ibrogim 1895 22.07.26 11:46 Сейчас в теме
(11) Кстати, вот на днях наконец опубликовал видосик, где конфигурацию для onebase пишет ИИ за полчаса с одного-двух промптов

Скоро запишу ещё один, где это будет полный цикл. ИИ сам создаст, сам проверит. Все инструменты в платформе для этого есть.
13. akR00b 26 22.07.26 10:56 Сейчас в теме
Так держать, я думаю, что 1С уже прикинула за сколько можно будет выкупить Ваш проект)
16. jackmas 22.07.26 14:03 Сейчас в теме
(13)
Дотации на разработку никому не помешают , но если этот проект будет за деньги , то он потеряет свою привлекательность.
Это конечно мое личное мнение.
Но я вот уже подружил этот проект с BI datalens от Яндекса
и таки да это работает очень хорошо , поскольку нет надобности создавать экстракторы или приобретать их.
Boris_1c; Ibrogim; +2 Ответить
17. akR00b 26 22.07.26 14:22 Сейчас в теме
(16) ооо класс, ждем статью)
18. Ibrogim 1895 22.07.26 15:03 Сейчас в теме
(16) Очень бы хотел на это посмотреть.

Вообще есть мысль сделать страничку с реальными кейсами использования.
19. Ibrogim 1895 22.07.26 15:05 Сейчас в теме
(16) Ну а делать платформу закрытой я не планирую.
Ну а продавать отдельные конфигурации или механизмы почему бы нет, всех только призываю!
20. akR00b 26 22.07.26 16:05 Сейчас в теме
(19) для знакомства какую конфу ставить? где есть весь набор фич? в тестовой онлайн базе при проведении ПКО в ошибку вываливается,
write movement денежныесредства row 1: failed to encode args[11]: unable to encode &ui.formObjectThis{obj:(*runtime.Object)(0x722e73c0f180), entity:(*metadata.Entity)(0x722e739149a0), form:(*metadata.FormModule)(nil), refResolver:(*ui.dslRefAttrResolver)(0x722e743a7500)} into text format for text (OID 25): cannot find encode plan
21. Ibrogim 1895 22.07.26 17:55 Сейчас в теме
(20) Добрый день.
Лучше ставить конфу ПуТ , за баг с проведением спасибо, поправил, уже в лайв демо.

Платформу всегда качайте последнюю, не обязательно релиз (между релизами часто правятся баги)

Набор фич тут , там есть поиск.
22. Ibrogim 1895 22.07.26 17:56 Сейчас в теме
(20) Вот тут удобно смотреть какая платформа последняя
Прикрепленные файлы:
26. D_astana 112 24.07.26 07:21 Сейчас в теме
(16) бизнесу нужны стабильность и гарантии, а не холява. Я с большим интересом смотрю за проектом, но даже не думаю браться его изучать и тратить время, хотя он мне очень очень нравится. А причина проста, я и сам не возьмусь его руководству предлагать, пока он разрабатывается на коленке в свободное время. Никакой гарантии, что он не умрет в любое время, никакой уверенности, что он не остановит бизнесс процессы предприятия изза бага и никто на это не покладет сами знаете что. Готов ли автор заключать договора на техническое сопровождение продукта и нести юридичускую ответственность за него?))
SergeyTerentyev; +1 Ответить
27. jackmas 24.07.26 13:02 Сейчас в теме
(26)
1. Вы наверное не в том месте опубликовали этот комментарий )
2. 1С:Предприятие -- стабильность и гарантия ? не смешите меня ради бога , насос для денег.
3. Да 1С заняла свою нишу бесспорно , с этим все согласны , но впихивать эту платформу во все дырки
где надо и не надо вот это большая проблема , которая исходит от нынешних руководителей.
4. Бизнес бывает разный и это реальность которую надо учитывать
5. Что касается данного проекта , я его уже прикрутил и использую,
руководитель я сам и я разбираюсь в том что делаю , и мне это экономит денежные средства.
6. Конечно использовать в качестве ядра информационной системы данный проект еще рановато,
но я такую цель и не ставил.
7. В остальном , смотрим пункт 1.
30. Ibrogim 1895 24.07.26 15:24 Сейчас в теме
(27) Спасибо вам и всем кто пользуется, пробует, находит баги

благодаря вам система развивается и становится лучше буквально с каждым днём и каждым коммитом
28. skyadmin 105 24.07.26 13:32 Сейчас в теме
(26) Конфигурация в качестве альтернативы битрикс наверно бы зашла, особенно тем кто только задумается, или тем кто уже наигрался с битрикс. Хотя есть MCP для битрикс и он наверно тоже поправляет, но зачем платить больше?
31. Ibrogim 1895 24.07.26 15:25 Сейчас в теме
(28) Битрикс вы имеете ввиду движек для сайта?
34. skyadmin 105 24.07.26 19:05 Сейчас в теме
(27) Да, интернет магазин, в котором покупатели логинятся и делают заказы. Сделать каждому свои цены, по соглашению, там нереально сложно.
29. Ibrogim 1895 24.07.26 15:22 Сейчас в теме
(26) Платформа же открыта. если что-то не нравится а разработчик не отвечает - берёте клод или кодекс и дорабатываете платформу себе.

Стабильность и гарантии - звучит хорошо. я тоже хочу )

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

Но я не предлагаю же всем менять 1С на onebase (пока) . Я как бизнес (крайне мелкий) уже перешел на onebase, хотя до этого много лет дописывал для себя конфигурацию на 1С .
32. jackmas 24.07.26 16:26 Сейчас в теме
(26)
(29)
Я еще на что обратил внимание -- используется нативный SQL от postgresql , т.е. я с небольшими доработками могу перенести все свои запросы из разных скриптов в одно место.
И еще чего бы хотелось: возможность добавлять процедуры, функции и триггеры в postgresql ,
возможно это где то есть , но я пока не нашел,
а если нет , то наверное есть смысл попробовать через обработку ?
33. Ibrogim 1895 24.07.26 17:25 Сейчас в теме
(32) Ну только селекты наверно. переписав на внутренний адинэсный sql

Суть то такая же как в 1С, платформа превращает наши запросы в настроящие

И еще чего бы хотелось: возможность добавлять процедуры, функции и триггеры в postgresql

Тут бы конкретики побольше. сейчас этого нет и это сделано специально. В OneBase логика (что происходит при записи и проведении документа) живёт в модулях платформы, а не в базе. Если завести триггер прямо в Postgres, он сработает в обход платформы — мимо проведения, прав доступа, аудита. Поэтому вместо триггеров используют хук «ПриЗаписи», а вместо процедур — функции в модуле.

вобщем тут все как в 1С
35. jackmas 24.07.26 20:29 Сейчас в теме
(33)
Не могу сказать, что это проблема -- отсутствие возможности внесения процедур , всегда есть pgadmin , тот функционал , который существует , уже достаточно для выполнения рутинных задач.
Да, по началу не совсем привычный интерфейс.
Да, постоянно при работе сравниваешь с платформой 1С, типа там это работает , а здесь, не так.
Но, потом привыкаешь и работаешь.
И опять же , проект молодой , но он найдет своего потребителя.
Одного прошу -- не останавливайтесь, продолжайте.
36. D_astana 112 26.07.26 07:46 Сейчас в теме
(29) Вот именно при минимальных издержках. Если говорить не про фран то бизнесу минимизировать издержки выгоднее в софте платном. Мы наверное про разные уровни бизнеса говорим. Я про тот где цена простоя 5 минут дороде годовой цены софта. А вы предлагаете брать ии и пилить его днями самим)) я просто ответил на комментарий, что закрытый софт погасит инерес. Многим эта открытость даром не нужна.
37. jackmas 26.07.26 09:36 Сейчас в теме
(33)
(36)
Ну если вы имеете ввиду платный софт относительно платформы 1С:Предприятие , то вы батенька сильно погорячились про 5 минут.
Каждое обновление платформы -- это рулетка, повезет - не повезет, какие расширения вылетят сразу или надо подождать. Какие функции не отработают.
Обновление типовой конфигурации , это тоже краш тест на выносливость.
И вроде ты везде всем платишь, и 1С и дорогущим программистам 1С,
а вот оно все стоит, бухи бесятся, манагеры в шоке.
И начинаешь искать альтернативу , платную или бесплатную уже не имеет значения.
Собираешь все ИТ подразделения и пытаешься решить проблему.

Я что хочу сказать, если у вас платный софт -- это не всегда гарантия и стабильность.
38. D_astana 112 26.07.26 10:08 Сейчас в теме
(37) давайте честно вы рискнете перевести завод с 1с на поделку 1 человека по выходным или предпочтете остаться на платной 1с со всеми ее недостатками? Лично я, ни за какие деньги не соглашусь.
39. jackmas 26.07.26 10:51 Сейчас в теме
(33)
(38)
Ну вот вы опять все смешали.
Я выше писал , что 1с заняла свою нишу на рынке и конкурировать в этой сфере там не реально,
были попытки Инфин, Высший сорт , Парус еще как то пытается ,
это все что касается работы в конфигурациях Бухгалтерия (разных вариантов),
Склад , УТ , Кадры , ну может быть ERP, хотя здесь существует уже множество и платных и бесплатных решений.
Здесь без вариантов.

CRM -- ну точно не 1с, ни разу не жалел что отказался от них.
Но помимо этого существует столько разных задач.
И там не всегда 1с можно считать единственно верным решением.

Ну и конечно "завод переводить на поделку" никто не собирается.

Одно из решений куда я прикрутил -- мониторинг энергетических объектов и резервных источников, прореживание данных , вывод отчетов. Все работает на postgresql. Платные решения тоже присутствуют.
Меня результат устраивает, даже если кто то делает это по выходным )
43. Dimanchik00 5 29.07.26 20:28 Сейчас в теме
(39) Соглашусь, для неучетных решений - должно найти свое место. Ну и надо развивать свое комьюнити, так как даже открытое ПО, но которое развивает только один человек - рисково.
40. Ibrogim 1895 26.07.26 13:41 Сейчас в теме
(38)
1. завод пока никто не предлагает переводить на onebase хотя технически для этого препятствий теоретически нет.
2.
поделку 1 человека по выходным
Видно, что вы ещё мыслите в прежней парадигме. мир изменился и вы скоро увидите множество в том числе платного софта написанного сверхмалыми командами (даже не написанного а срежессированного)
47. sikuda 686 06.08.26 09:59 Сейчас в теме
(40)
вы скоро увидите множество в том числе платного софта написанного сверхмалыми командами (даже не написанного а срежессированного)

Да все по классике:
Прикрепленные файлы:
tree-swing.webp
41. Ibrogim 1895 26.07.26 13:43 Сейчас в теме
(36) Сейчас ведуться работы по переводу именно такого бизнеса на onebase. Подробности смогу (или нет) сообщить примерно через пол года, т.к. сам процесс внедрения занимает много больше чем текущий возраст платформы
42. Ibrogim 1895 26.07.26 13:48 Сейчас в теме
(36) и да, издержки на покупку ПО для бизнеса это практически ничто (ну разве что корп. версия сервер немного заметна, у кого есть те поймут)
Для бизнеса важны постоянные издержки, например ФЗП там где из за древней архитектуры и закрытости нельзя (или сложно) применять ИИ в разработке

Так что да, бизнес бывает разный. Но для всех видов бизнеса самое губительное - не смотреть по сторонам )
24. Boris_1c 39 23.07.26 11:31 Сейчас в теме
Очень крутой проект
25. Ibrogim 1895 23.07.26 12:23 Сейчас в теме
(24) Спасибо
zavedeev; jackmas; +2 Ответить
44. zavedeev 31.07.26 00:53 Сейчас в теме
Автор молодец!
vadeem_13; Ibrogim; +2 Ответить
45. Ibrogim 1895 31.07.26 01:00 Сейчас в теме
46. Ibrogim 1895 31.07.26 01:02 Сейчас в теме
Сегодня допилил S3-бэкенд хранения вложений и платформенный движок тестирования конфигураций.
Сама платформа давно покрывается автотестами
Rafael-87; +1 Ответить
48. support 4484 18.08.26 22:04 Сейчас в теме
А внешние отчеты и обработки будут?))
49. Ibrogim 1895 19.08.26 00:21 Сейчас в теме
(48) Уже дано есть )
три коммита от 3 июня
Прикрепленные файлы:
50. Ibrogim 1895 19.08.26 00:26 Сейчас в теме
(49)
ну и коллега агент мне тут подсказывает :

- Живут в базе, а не в версионируемой конфигурации — грузятся/выключаются/удаляются в рантайме, без пересборки и передеплоя конфигурации (internal/ui/server.go:485-504).
- Формат — либо «голый» YAML, либо переносимый бандл *.obform: manifest (author, version, min_platform) + form. Обработка — единый YAML с полем code и исходником .proc.os (internal/extform/bundle_processor.go:14). Экспорт обратно в .obform есть у всех трёх → перенос между базами штатный.
- Подхват без рестарта: после загрузки reg.SetExternalProcessors(...) атомарно подменяет набор (internal/runtime/registry.go:982). При коллизии имени с обработкой конфигурации приоритет у конфигурации, в лог — warning.
- В списке разделов видны с пометкой «(внешняя)» / «(внешний)», запускаются обычным путём обработок; права RBAC (processor/<Имя>/run) применяются как к своим. Регламентное задание тоже может ссылаться на внешнюю по имени — scheduler.runProcessor резолвит через reg.GetProcessor.
- Входят в универсальный бэкап (internal/backup/universal.go:109).

Модель доверия (обработки же исполняют произвольный DSL): загружать может только админ; свежезагруженная/обновлённая — недоверенная, её видит и запускает только админ. Админ жмёт «Доверенная» → появляется у всех. Флаг сбрасывается при каждом обновлении содержимого (repo_processors.go:61-63). Каждый запуск пишется в аудит (extprocessor.run), загрузка/включение/удаление — тоже.

Чего нет, если сравнивать с БСП

- Нет привязки внешней обработки к объекту как команды — аналога «Дополнительных отчётов и обработок» с видами ЗаполнениеОбъекта / СозданиеСвязанныхОбъектов и кнопкой в форме документа. Обработка живёт только в общем списке. Привязка к объекту есть лишь у печатных форм — поле document:.
Для отправки сообщения требуется регистрация/авторизация