Матрица соответствий
Матрица соответствий – это правило, по которому данные одной таблицы переносятся в другую: какое поле исходной таблицы попадает в какое поле целевой.
Например, матрица order to prod order задает, какие поля заказа копируются в производственный заказ при его создании, а Order 1c order – как поля заказа SimpleMES сопоставляются с полями документа 1С.
Сама матрица данные не переносит. Ее используют:
- рабочие процессы – например, при создании производственного заказа из заказа и шаблона ПЗ;
- ERP интеграции – при выгрузке заказов в 1С и при файловом обмене.
Работа с матрицей начинается с выбора двух таблиц. После сохранения записи на форме появляется виджет, в котором для каждого поля исходной таблицы выбирается поле целевой.
Для пары таблиц можно создать только одну матрицу соответствий, в любом направлении. Если матрица для таблиц А и Б уже есть, матрицу для Б и А создать нельзя
Основные термины
| Термин | Определение |
|---|---|
| Таблица 1 | Исходная таблица, из которой берутся данные |
| Таблица 2 | Целевая таблица, в которую переносятся данные |
| Сопоставление | Пара полей: поле Таблицы 1 и поле Таблицы 2, в которое переносится его значение |
Сведения
Наименование: Матрица соответствий
Системное имя: mes_mapping_tables
Класс: конфигурационные данные
Колонки таблицы
| Название | Тип колонки | Название колонки |
|---|---|---|
| Информация | Text | information |
| Матрица соответствий ID | String | mapping_matrix_id |
| Активно | True/False | active |
| Таблица 1 | Reference | table_1 |
| Таблица 2 | Reference | table_2 |
| Матрица соответствий | String | mapping_matrix |
| Политика защиты | Choice | policy |
| Приложение | Reference | application_id |
| ID | Big Integer | sys_id |
| Когда создано | Date/Time | sys_created_at |
| Кем создано | Reference | sys_created_by |
| Когда изменено | Date/Time | sys_updated_at |
| Кем изменено | Reference | sys_updated_by |
Логика работы с матрицей соответствий
- Создайте запись в списке Матрица соответствий раздела Конфигурация.
- Заполните Матрица соответствий ID и Матрица соответствий, выберите Таблицу 1 и Таблицу 2.
- Нажмите Сохранить – на форме появится виджет сопоставления полей.
- В виджете выберите для нужных полей Таблицы 1 поля Таблицы 2. Подробнее – в разделе Сопоставление полей.
- Нажмите Сохранить – сопоставления сохранятся.
После сохранения матрицы Таблицу 1 и Таблицу 2 изменить нельзя. Чтобы связать другие таблицы, создайте новую матрицу
Поля формы
| Поле | Обязательно | Описание |
|---|---|---|
| Матрица соответствий ID | Да | Уникальный идентификатор матрицы соответствий |
| Матрица соответствий | Да | Название матрицы соответствий |
| Информация | Нет | Дополнительная информация |
| Активно | Нет | Признак активности записи |
| Таблица 1 | Да | Исходная таблица, из которой берутся данные. Не может совпадать с Таблицей 2 |
| Таблица 2 | Да | Целевая таблица, в которую переносятся данные |
Сопоставление полей
Виджет сопоставления появляется на форме после сохранения матрицы. В нем по строке на каждое поле Таблицы 1, включая поля, унаследованные от родительских таблиц:
- в первой колонке – поле Таблицы 1. Поля типов Choice и Template в виджет не попадают;
- во второй колонке выбирается поле Таблицы 2, в которое переносится значение. Если поле не выбрано, значение не переносится.

Во второй колонке доступны только поля, совместимые по типу с полем первой колонки:
| Тип поля Таблицы 1 | Доступные поля Таблицы 2 |
|---|---|
| Reference | String, Reference и List на ту же таблицу |
| List | String, Reference и List на ту же таблицу |
| String | String, Reference, List, Decimal, Big Integer, Text |
| Big Integer | String, Reference, List, Text |
| Остальные типы | Поля того же типа |
Чтобы изменить сопоставление, выберите во второй колонке другое поле. Чтобы удалить сопоставление одного поля, очистите вторую колонку в его строке. Изменения применяются после нажатия Сохранить или Сохранить и выйти.
Поле связанной записи
Если поле Таблицы 1 типа Reference или List сопоставлено с полем типа String или Big Integer, под строкой появляется дополнительное поле. В нем выбирается поле связанной записи, значение которого будет перенесено.

Если дополнительное поле появилось, оно обязательно. Пока она не заполнена, сопоставления не сохраняются, а незаполненное поле подсвечивается красным.
Очистка сопоставлений
Кнопка Очистить внизу формы удаляет все сопоставления матрицы. Сама матрица и выбранные таблицы остаются.
- Нажмите Очистить – откроется окно подтверждения.
- Подтвердите очистку – вторая и третья колонки виджета очистятся.
Сопоставления удаляются сразу после подтверждения, без нажатия Сохранить. Восстановить их можно только заново выбрав поля в виджете
Как матрица переносит данные
Когда рабочий процесс или интеграция применяет матрицу к записи Таблицы 1, в Таблице 2 создается новая запись. Ее поля заполняются по сопоставлениям: значение каждого поля Таблицы 1 переносится в выбранное для него поле Таблицы 2.
Связи сущности
- Серые блоки – сущности, которые ссылаются на матрицу соответствий.
- Подпись на стрелке – поле, в котором хранится ссылка.