Как это работает и зачем нужно
Допустим вы хотите отправить любой документ или справочник внешним контрагентам, подрядчикам, у которых нет доступа к корпоративной 1С. Либо своим сотрудникам, у которых может не быть связи с вашей 1С временами (плохая связь, нет интернета). Причем не печатную форму или какой-то PDF, а именно сам документ с активными полями, табличными частями – чтобы с ним можно было работать – вносить данные, с тем чтобы потом закачать, например, данные в этот же документ со стороны 1С. Причем работать на мобильном устройстве оффлайн.
Это может быть, например, заказ, который надо собрать, заявка покупателя, акт на монтаж, упаковочный лист, задание/задача, сбор марок и т.п.
Обработка делает следующее:
Ее можно вызвать из любого ссылочного объекта. (*не все формы имеют подключаемые обработки заполнения, но обработку можно просто открыть как внешнюю и указать в ней любой объект)
Так выглядит настройка "из чего будут состоять объекты" - поля, таблицы, что в обложке.

Так выглядит результат

Она генерит по умолчанию UI/UX, как это будет выглядеть в NodaLogic - обложка, представление, форма документа. Это похоже на формы по умолчанию в 1С. Тут смысл тот же, но вы выбираете поля, которые будут в форме и в обложке. Это хранится в ХранилищеОбщихНастроек все. Для этого не надо разбираться в NL вообще – просто отметить галками то, что нужно. Галками выбираешь, что должно быть редактируемо в форме, а что – просто для отображения. Можно поменять класс вручную (но для этого уже надо разбираться в NodaLogic либо обратиться к LLM).
Если там используются другие ссылочные типы, то если там сгенерили для них класс (либо вручную поменяли), то возьмет его, если нет – это будет минимальный класс (дата, номер или наименование для справочника).
Сгенерированные формы не обладают особым изяществом, просто функциональные формы. Еще раз отмечу – классы можно править. Самое важное - они готовы выполняться локально там, куда их пошлют, онлайн только по желанию, это исполняемые объекты со всем необходимым - и данными, и логикой.
Далее она упаковывает все в один JSON вместе с данными и шлет в чат NodaLogic как сообщение-узел.
Как видно, оно приходит с обложкой и в него можно провалиться (не в сообщение в смысле, а в узел - в NL объекты называются «узлы») . Можно работать в форме и нажимать Сохранить (там много вариантов, можно сделать и автосохранение в принципе).
Не обращайте внимание, что это чат. Оно приходит и существует как обычный объект-узел - хранится, у него могут быть локально-выполнимые обработчики, т.е. он живет свою лучшую жизнь на том устройстве, куда его забросили. Просто конкретно эта реализация обмена – в виде сообщений-чатов, на мой взгляд это соответствует задаче.

Отправить можно как одному отправителю так и группе – чат в NL поддерживает группы.
На самом деле когда вы шлете сообщение – узел в NodaLogic она сначала закачивает сам узел (если есть реккурентно-связанные узлы то их тоже) в отдельную ссылку и далее в сообщение отправляется уже ссылка на этот JSON (он может быть довольно увесистый, поэтому там докачки, прогрессы, гарантия доставки, все как положено) и дальше уже система работает с этой ссылкой – при сохранении обновляет объект в ней.
Из предыдущего пункта следует,что раз она обновляет, то можно, обратившись по ссылке, получить данные назад. Для этого в обработчике есть кнопка и она скачивает данные из измененного объекта, передает в обработчик. Обработчик писать уже самому – это на стороне 1С.

Но это еще не все. У этого узла есть собственный чат (я этого называю «дискуссии по узлу») и между 1С и получателем можно переписываться, например, уточнять детали задания. Все настройки бизнес логики и коммуникаций хранятся в ХранилищеОбщихНастроек, никаких справочников, расширений. Никакого http-сервера для связи с устройствами и внешних данных.
Коммуникация проходит через nmaker.pw, но это опенсорс платформа, ее можно скачать с GitHub и развернуть у себя.

Примечание 1. Реализованный метод обмена, когда все что надо пакуется в один объект – это способ взаимодействия с получателями, у которых нет NodaLogic и у вас также не используется сервер NodaLogic, объекты пролетают мимо как сообщения. Т.е. это способ коммуникации, где кроме учетки в NL ничего больше не надо. В NodaLogic можно выделить кусок бизнес-логики из 1С и вести часть учета там, например, тот же учет заявок и (или) складской. Полноценный учет, это тоже платформа бизнес-логики, как и 1С. И тогда не надо генерировать Ui/UX – он уже будет в системе, а в поле _class будет просто ссылка на класс. Но конкретно кейс в этом коммуникаторе предполагает, что никакого отдельного учета в NL не ведется, нет ни сервера, ни мобильных клиентов. Т.е. это такой частный случай, где объекты NodaLogic рождаются в самой 1С и дальше уже путешествуют по каналам связи. Общий случай - когда можно поделиться документом, который ведется в NodaLogic
Примечание 2. Не везде подходит такой стиль обмена - ручной, не особо оперативный. Это легко трансформировать в автоматический обмена заданиями, не обязательно через чат.
Еще из особенностей - клиентом поддерживаются ссылки. Из клиента можно кидать картинки, он может и принимать из 1С, но не реализовано - с 1С пока только текст. Картинки массово протаскивать лучше через сам документ - там можно настроить качество, размеры и это более аккуратно.

Как работать?
1. Подключаете через Дополнительные отчеты и обработки
2. Открываете в объекте, который надо выгрузить.
3. Понадобится логин/пароль NodaLogic, зарегистрироваться можно тут https://nmaker.pw/ либо из приложения NodaLogic, ссылка в конце поста
4. Также надо 1 раз отметить, какие реквизиты шапки и табличных частей пойдут в форму и обложку
5. Нажать "Сгененировать класс по выбранным реквизитам". Тут его можно и менять, донастраивать под себя, но это отдельная история.
6. Нажать Сохранить настройки – они будут подгружаться для этого типа объектов при открытии.
7. После этого можно отправлять получателю или группе. Для группы надо указать имя группы в формате group:<group_id>
8. И переписываться в чате. Чат работает по кнопке Обновить просто. Там можно подключить обработчик ожидания, он отключен.

И наконец осталось загрузить объект. Тут все просто по кнопке Загрузить отправляется запрос, данные узла приходят в структуру ВходящиеДанные в том виде в котором уходили
Например, получатель написал что-то в Комментарий
Мы пишем в обработчике и считываем это. Табличные части – аналогично. Это уже все на стороне 1С.
Важный для понимания момент №1

Генератор по вашим галочкам генерирует класс в виде JSON (в NodaLogic конфигурация - JSON) по правилам разметки NL по которым есть документация, примеры и т.д. По кнопке Сохранить он сохраняется и используется при выгрузке (берет не каждый раз с галочек, а берет именно с закладки Класс). Его можно править, делать все что угодно вручную или с помощью LLM, потом сохранить, и он будет браться отсюда.
Важный момент для понимания №2
У объекта могут быть связанные другие объекты (а у тех в свою очередь - другие и т.д.). Так вот, у них так же можно настроить и сохранить класс! По умолчанию система берет минимальный, но это легко настроить - просто зайдите в него, укажите нужные галки и сохраните.
Локальное развёртывание сервера (если требуется)
По дефолту это все работает через nmaker.pw, но NodaLogic вместе с сервером сообщений можно скачать с GitHub (ссылки в конце статьи) и развернуть у себя. Тогда сообщения, хостинг объектов и все необходимое будет храниться на вашей стороне. В будущем добавится шифрование, тоже на вашей стороне.
Каналы доставки
Доставка работает через FCM-push и дублируется через pending-запросы к серверу. Доставка доставляет сообщения на все устройства пользователя. Если по какой то причине пуш будет заблокирован, потянув ленту вниз или перезапустив приложение сообщения конечно будут доставлены. Почему FCM может быть заблокирован? Всякое бывает.
Что дальше?
Возникают вопросы:
- а можно ли привязать сканер?
- можно ли выбирать и сканировать что-то из справочника, который выходит за рамки данных документа, например товар, которого нет в документе/документах или вообще отдельный справочник?
- а можно ли собирать фотки (имеется ввиду не в чате а в самом документе) и получать их?
- можно ли сделать форму более красивой или другой?
Все это можно, но тут уже надо разбираться в NodaLogic и переделывать классы, а я обещал, что мы будем только нажимать галочки и кнопки. Т.е. можно продолжить этот «сгенерированный» пример, чтобы дополнить его нужным функционалом. Если эта статья понравится, могу развить тему и написать продолжение по этим и другим вопросам.
Эта обработка «3 в 1» - можно генерировать классы, которые можно потом вставить в свою конфигурацию, синхронизация документов и мессенджер. Т.е. как минимум она полезна, чтобы начать.
Важно отметить, что данная реализация - объекты "объекты все в одном" все таки не совсем полноценная конфигурация NodaLogic. Это скорее частный случай. Но тем не менее все, что я написал выше, можно вытянуть из подобного подхода. Чем отличается подход "полноценная конфигурация" от подхода "объекты-все-в-одном"? Во-первых они автоматически самоорганизуют серверный слой бизнес-логики и хранения и веб-клиент, нужен он или нет - решать вам, во-вторых, в конфигурации есть общие объекты, такие как "Общие события", например, разделы, индексы. Ну и так по мелочи. На самом деле одно другому не мешает, как я говорил, самая сложная штука в этой обработке - это генератор форм узлов (*который, кстати, можно еще подрихтовать под себя, чтобы он делал визуальный стиль, как вам надо)
Полезные ссылки
Еще публикации на Инфостарт по NodaLogic:
//infostart.ru/1c/articles/2614496/
//infostart.ru/1c/articles/2635403/
Статья по NоdaLogic более менее актуальная: https://habr.com/ru/articles/1011090/
GitHub, чтобы развернуть локально (конструктор+сервер+веб-клиенты): https://github.com/dvdocumentation/nodalogic
Примеры в GitHub в Samples, сама NodaLogic живет там же.
Приложение в 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
Вступайте в нашу телеграмм-группу Инфостарт