Зачем нужно и какие плюсы?
Это нужно, чтобы вынести часть бизнес-логики 1С во внешний контур – высоконагруженные процессы, процессы, требующие отклика 27/7 и просто та логика, которая не нужна в учетных системах или не нужна в тех разрезах которые требуются (адресное хранение, серии, марки и т.д.). Либо просто что-то надо вынести наружу, а 1С не надо наружу показывать.
NodaLogic это клиент-серверная система с автономным мобильным фронтом, учетными механизмами и веб-клиентом, изначально ориентированная на создание и поддержку с помощью LLM полностью, архитектура и семантика которой, заточена не только на то, чтобы ИИ было просто создавать решения one-shot, но и чтобы бизнес-решения и интерфейсы были понятные, поддерживаемые и масштабируемые.
Не в последнюю очередь это достигается крайне компактной и простой логикой решений и интерфейсов. Естественно, и сервер, и клиент, и мобильная платформа - это единое решение на одной семантике.

Основная идея такая: сейчас нейросети могут сгенерить сколько угодно кода на любом языке, но как это понимать, поддерживать и масштабировать? Как строить бизнес-логику, процесс и интерфейсы бизнес приложений на таком коде? Нужно описывать решение, интерфейсы, логику понятное дело на простом и универсальном языке. NodaLogic предлагает решение, состоящее из «узлов» - каждый узел это инкапсулированные данные и методы. Т.е. решение состоит из таких нервных клеток с маленькими обработчиками с простенькой логикой (сейчас только на Python, но это не принципиально). Пример ниже не совсем отражает суть, потому что он очень прост, будут другие.
При этом это просто классы, по сути ООП. Можно зайти в отладчик и посмотреть, как работает. Я не против систем, в которых пользователь тянет стрелочки между блоками (и в NL такое будет), но только с одним условием – заканчиваться все должно понятным кодом.
Примеры систем, которые можно делать – WMS разной степени навороченности, MES, CRM и т.д.
Система новая, только развивающаяся, много от нее пока ждать не стоит. То что уже может будет показано в примере к этой статье.
Платформа бесплатная и опенсоурсная. Я - автор. В каком то смысле эта платформа продолжение моей же SimpleUI, но в переосмысленном виде, без старых ошибок.
Можно работать в облаке https://nmaker.pw/, но лучше поднять у себя, скачав с GitHub по ссылке в конце статьи
Пример простейшего учетного решения для склада

Так выглядит на мобильном устройстве
Так выглядит в веб-клиенте
Пример представляет из себя клиент серверное решение в документно-ориентированном стиле, т.е. воспроизводит работу не с процессами, а с документами, ссылками, проведением и т.д., как 1С. Это не обязательный сценарий с NodaLogic, о чем я расскажу дальше, это просто пример "по-полной", можно было сделать и сильно попроще, в зависимости от целей.
Описание задачи:
- На сервер приходят документы из 1С: Приемки, Отгрузки (допустим ЗаказПоставщику, ЗаказКлиента), с ними: Товары (Номенклатура+Штрихкоды,Артикулы) , Склады
- С документами можно работать в веб-клиенте как с обычными документами – добавлять, менять и т.д.. Есть пользователи, рабочее место. Все как в 1С
- Строки документов являются самостоятельными объектами, каждый клиент, мобильное устройство может работать со своей строкой независимо, изменения стекаются на сервер
- На сервере ведется учет остатков товаров и формируются отчеты
- Сервер регистрирует изменения в группах, подключенных через WebSocket мобильных клиентов
- В мобильном клиенте происходит работа как вручную с документами, так и с помощью сканера (аппаратного или программного), фиксируют факт, при необходимости добавляют строки и т.д.
- По возможности идет отправка изменений в сервер (в виде обновленных данных). Если связи нет, то отправляет потом
- картинка
- 1С периодически забирает с сервера обработанные документы
Что получилось и как устроено, лучше посмотреть на видео, в динамике (у кого не работает YouTube, вот ссылка на Яндекс-диск https://disk.yandex.ru/i/bsrmxlKRlWGWjg):

Вот схема решения. Изображенная структура узлов существует на сервере и та же самая конфигурация на мобильном клиенте. RecieptPosition - строки документа, на них вся активность, RecieptDocument - корневой документ (и отгрузка и приемка), Warehouse - склад как ссылка и по совместительству - хранилище транзакций и итогов (как РегистрНакопления в 1С)
Этот пример - не единственный вариант, который можно использовать.
Укрупненно показал другие варианты архитектуры решений. Наш вариант - №1. Возможно, чаще для 1С будет №2. Тут все гибко – можно использовать только мобильную платформу, другие транспорты для данных, другое хранение как на сервере, так и на мобильном устройстве, да и логику необязательно делать на узлах.

Модуль связи

Это не готовое решение, а конструктор наподобие 1С: Конвертация данных 2.
Это расширение имеет особенности:
- Можно поставить на любую конфигурацию, нет зависимостей
- Не требует поднимать веб-сервер со стороны 1С. Это и плюс, и минус. Минус в том, что с сервером изменения приходили бы оперативнее
Работать с ним так:
1. Подключиться и скачать конфигурации с сервера NodaLogic. В случае изменений в конфигурациях также надо обновить.
2. Создать правила выгрузки и загрузки, используя отборы СКД для справочников и документов. В каждом правиле мы имеем МассивОбъектов, который используем как основу выгрузки, делаем JSON наподобие этого. И даем его функции выгрузки запроса. Ничего сложного, шаблон формируется автоматически
Пример JSON, который уходит на API NodaLogic:
Пример обработчика, чуть переделанного из шаблона:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| УНИКАЛЬНЫЙИДЕНТИФИКАТОР(Источник.Ссылка) КАК _id,
| Источник.Наименование КАК name,
| Источник.Артикул КАК code,
| ШтрихкодыНоменклатуры.Штрихкод КАК barcode
|ИЗ
| Справочник.Номенклатура КАК Источник
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
| ПО Источник.Ссылка = ШтрихкодыНоменклатуры.Номенклатура
|ГДЕ
| Источник.Ссылка В(&МассивОбъектов)";
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
Таблица = Запрос.Выполнить().Выгрузить();
МассивДляJSON = Новый Массив;
Для Каждого СтрокаТЗ Из Таблица Цикл
СтруктураСтроки = Новый Структура;
СтруктураСтроки.Вставить("_id",СокрЛП(СтрокаТЗ._id));
СтруктураСтроки.Вставить("name",СокрЛП(СтрокаТЗ.name));
СтруктураСтроки.Вставить("code",СокрЛП(СтрокаТЗ.code));
СтруктураСтроки.Вставить("barcode",СокрЛП(СтрокаТЗ.barcode));
МассивДляJSON.Добавить(СтруктураСтроки);
КонецЦикла;
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, МассивДляJSON);
РезультатВыгрузки = ЗаписьJSON.Закрыть();
//Дла классов можно взять из Правило.Получатель.UrlPost для датасетов - Правило.Получатель.url
ОтправитьЗапрос(Правило.Получатель.url, РезультатВыгрузки,Правило)
И также видео по этому модулю:
Ссылки
GitHub, чтобы развернуть локально (конструктор+сервер+веб-клиенты): https://github.com/dvdocumentation/nodalogic
Облако, чтобы попробовать сразу (конструктор+сервер+веб-клиенты): https://nmaker.pw/
ТГ-канал платформы: https://t.me/thinknodes_ru
Приложение в GooglePlay (мобильная платформа): https://play.google.com/store/apps/details?id=com.dv.noda и RuStore: https://www.rustore.ru/catalog/app/com.dv.noda
Проверено на следующих конфигурациях и релизах:
- 1С:Комплексная автоматизация 2, релизы 2.4.8.63
Вступайте в нашу телеграмм-группу Инфостарт