POS Могзон – это специализированная программно‑аппаратная платформа, используемая в розничных точках продаж для управления кассовыми операциями, складскими остатками и взаимодействия с внешними сервисами. Одним из ключевых элементов любой POS‑системы является адресация компонентов (частей) внутри системы. В данной статье мы подробно разберём, что такое «адрес части», как он формируется в POS Могзон, какие правила следует соблюдать и как правильно использовать эту информацию в практике.
Содержание
- Что такое адрес части?
- Обзор POS Могзон
- Формат адреса части в Могзон
- Примеры адресов
- Как определить адрес нужной части
- Практическое использование адресов
- Типичные ошибки и их устранение
- Лучшие практики
Что такое адрес части?
В контексте POS Могзон адрес части – это уникальный идентификатор, позволяющий системе и разработчикам однозначно указать конкретный элемент (модуль, компонент, таблицу, поле) в структуре программного обеспечения или в базе данных.
Адрес части используется:
- Для обращения к данным из скриптов и внешних интеграций;
- При настройке прав доступа и ролей пользователей;
- В процессе отладки и логирования;
- Для построения отчётов и аналитики.
Обзор POS Могзон
POS Могзон – это платформа, построенная на модульной архитектуре. Основные слои системы:
- Ядро (Core) – отвечает за обработку транзакций, управление сеансами и взаимодействие с оборудованием.
- Модуль данных (Data Module) – реализует работу с базой данных (SQL‑сервер, PostgreSQL, SQLite).
- Бизнес‑логика (Business Logic) – набор скриптов и правил, определяющих расчёты скидок, налогов, бонусов.
- Интеграционный слой (Integration Layer) – API, веб‑сервисы, подключение к ERP и CRM.
Каждый из этих слоёв состоит из частей (модулей, таблиц, функций), которым присваивается собственный адрес.
Формат адреса части в Могзон
Стандартный адрес части в POS Могзон имеет иерархическую структуру, разделённую точками (.). Общий синтаксис выглядит так:
Система.Подсистема.Компонент[Идентификатор].Элемент Где:
- Система – всегда
POS(корневой уровень). - Подсистема – один из модулей:
Core,Data,Logic,UI,Integration. - Компонент – конкретный объект внутри подсистемы (например,
Transaction,Product,Customer). - Идентификатор – необязательный параметр в квадратных скобках, позволяющий указать конкретный экземпляр (например,
[12345]– номер транзакции). - Элемент – поле, метод или подмодуль (например,
Amount,Save,Template).
Пример полного адреса:
POS.Data.Product[987].Price В этом примере:
- Корневая система –
POS; - Подсистема данных –
Data; - Компонент –
Product(товар); - Идентификатор –
987(конкретный товар); - Элемент –
Price(цена).
Примеры адресов
| Назначение | Адрес | Описание |
|---|---|---|
| Получить сумму текущей транзакции | POS.Core.Transaction[Current].TotalAmount | Обращение к полю TotalAmount текущей (активной) транзакции. |
| Обновить статус заказа | POS.Integration.Order[456].SetStatus('Shipped') | Вызов метода SetStatus у заказа с ID 456. |
| Получить список всех активных кассиров | POS.Data.Cashier[All].IsActive | Фильтрация по полю IsActive у всех записей кассиров. |
| Записать лог события | POS.Core.Logger.Write('Payment processed') | Вызов метода Write в подсистеме Core. |
Как определить адрес нужной части?
Существует несколько способов получить корректный адрес:
- Документация – официальное руководство POS Могзон содержит таблицу всех компонентов и их адресов.
- Интерактивный справочник – в админ‑панели есть раздел «Адреса компонентов», где можно искать по названию.
- Отладочный режим – включив
DebugMode, система выводит в журнал полные пути к вызываемым элементам. - API‑метод
GetAddress(objectName)– позволяет программно запросить адрес по имени объекта.
Практическое использование адресов
В скриптах бизнес‑логики
Для доступа к данным внутри скриптов используется функция GetValue(address) и SetValue(address, value):
// Получаем цену товара
var price = GetValue('POS.Data.Product[321].Price');
// Устанавливаем новую цену
SetValue('POS.Data.Product[321].Price', 199.99);
При работе с внешними API
Внешние сервисы передают запросы в виде JSON, где один из полей – address. Пример запроса к API Могзон:
{
"action": "read",
"address": "POS.Data.Customer[789].Balance"
}
В правилах доступа (RBAC)
Для ограничения доступа к определённым частям используется список разрешённых адресов в профиле роли:
Role: Cashier
AllowedAddresses:
⎻ POS.Core.Transaction[Current].AddItem
⎻ POS.Core.Transaction[Current].RemoveItem
⎻ POS.Data.Product[All].Price
Типичные ошибки и их устранение
- Ошибка «Address not found» – обычно вызвана опечаткой или использованием устаревшего адреса. Проверьте регистр букв и наличие квадратных скобок.
- Ошибка «Access denied» – пользователь не имеет прав на указанный адрес. Добавьте нужный адрес в профиль роли.
- Неправильный тип данных – попытка записать строку в числовое поле. Убедитесь, что тип значения соответствует типу элемента.
- Конфликт идентификаторов – одинаковый ID в разных подсистемах. Используйте полные пути (включая подсистему), чтобы избежать неоднозначности.
Лучшие практики
- Всегда указывайте полную иерархию – даже если в текущем контексте часть пути очевидна, полное указание упрощает отладку.
- Не используйте «магические» числа – храните ID в переменных с понятными именами.
- Документируйте кастомные адреса – если вы добавляете новые компоненты, запишите их адреса в отдельный справочник.
- Проверяйте права доступа – перед выполнением операции проверяйте, что текущий пользователь имеет нужный
AllowedAddress. - Логируйте обращения к критическим адресам – это поможет быстро находить причины сбоев.
- Обновляйте справочник при миграциях – при изменении схемы БД или структуры модулей старые адреса могут стать недействительными.
Адрес части в POS Могзон – это фундаментальный механизм, позволяющий точно и однозначно обращаться к любому элементу системы. Понимание структуры адреса, умение быстро находить нужный путь и соблюдение лучших практик значительно повышают эффективность разработки, администрирования и поддержки POS‑решения.
Помните, что правильный адрес — это не только техническая деталь, но и средство обеспечения безопасности и стабильности работы вашей торговой точки.