.. NodaLogic documentation master file, created by sphinx-quickstart on Wed Nov 5 07:29:33 2025. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. Датасеты в NodaLogic =========================== Датасеты в NodaLogic – это механизм хранения справочной информации внешней системы – справочники (например товары, клиенты), документы (заявки, заказы и т.д.). Такого рода информацию объединяет то, что она только на чтение – т.е. она приходит на устройство для того, чтобы ее можно было использовать, но не изменять. Это могут быть большие объемы информации, система оптимизирована на это. Другое важно отличие датасетов – они интегрированы в платформу. Т.е. уже есть готовые UI-элементы для работы с ними. Не нужно заботится о синхронизации, о организации экранных форм – это все есть из коробки. По большей части датасеты описаны в этой статье к SimpleUI(откуда они перешли в NodaLogic) https://uitxt.readthedocs.io/ru/latest/datasets.html , а в этой статье покажу отличия. Для того чтобы работать с датасетом, необходимо в конфигурации, в разделе Датасеты, добавить датасет. В элементе описываются его имя (то, как датасет потом будет указываться в источниках данных) хеш-индексы (индексы точного поиска по значению – создаются автоматическ и), полнотекстовые индексы, а также шаблон записи, где ключи данных датасета – в фигурных скобках, также можно использовать текст и HTML-разметку. Это то, как конкретная запись датасета будет отображаться в поле ввода датасета (DatasetField) И собственно все. Система берет на себя синхронизацию и хранение. О элементах отображения (списки, поля датасетов) написано в разделе UI/UX клиента. Стоит заметить о том как устроена синхронизация: 1. Когда вы добавляете датасет, для него, также как и для класса, создается REST-API с помощью которого вы отправляете данные из внешней системы на сервер. Т.е. ваши справочники хранятся на сервере, а клиенты-устройства их скачивают. API в общем виде такое: Добавление/обновление записей ``POST /api/config//dataset//items`` .. code-block:: Python [ {"_id": "1", "field1": "value1", "field2": "value2"}, {"_id": "2", "field1": "value3", "field2": "value4"} ] Получение всех записей ``GET /api/config//dataset//items`` Delete all records ``DELETE /api/config//dataset//items`` Delete one record ``DELETE https://nmaker.pw/api/config//dataset//items/item_id`` 2. В датасете, котрый поступает на устройство, хранится GET-ссылка на api с котрой он должен скачать данные и по ней он при каждом запуске приложения обновляет датасет. Я упомянул этот момент потому, что тут хранится абсолютная ссылка и датасет на устройстве всегда будет обращаться по ней. Если вы перенесете конфигурацию на другой сервер, датасет будет все равно обращаться по той ссылке.