Перейти к основному содержанию

Правила организации списка позиций справочника при импорте из Excel

Около 1 мин

Правила организации списка позиций справочника при импорте из Excel

Так как синхронизируемые или новые позиции представляют собой список, а конечный вид справочника представляет собой дерево, то платформа Tangl использует механизм автоматического распознавания родительских и дочерних позиций и выстраивания их в дерево.

Базовые свойства позиции

У каждой позиции есть несколько обязательных свойств, которые имеют важное значение при импорте или синхронизации:

  • Код(обязательное) - полный код позиции. Как правило, состоит из нескольких модулей. Например: А.01.12-003
  • Имя(обязательное) - имя позиции.

Организация позиций при импорте в пустой справочник

При импорте в пустой справочник все позиции имеют статус новых. При этом единственным свойством, по которому их можно организовать в дерево является Код позиции.

При импорте Tangl сам раскладывает коды позиций на модули и исходя из этого определяет их соподчиненнность. При этом действуют следующие правила:

  • Разделители модулей могут быть представлены любыми знаками.
  • Порядок позиций в списке не имеет значения, так как их соподчиненность и конечный порядок определяется по кодам.
  • Если в списке присутствует позиция с кодом второго уровня (например, 12.20), но отсутствует родительская позиция с кодом первого уровня (например, 12), то дочерняя позиция не будет импортирована, а будет проигнорирована, так как система не найдет для нее родителя при соподчинении.
  • Пустые строки или строки с отсутствующими кодами или именами игнорируются.

Примерсписка импортируемых позиций:

┌─────────┬────────────┐
│Код      │ Имя        │
├─────────┼────────────┤
│01       | ST         │ //✔ Новая.
│02       | AR         │ //✔ Новая.
│         │            │ //✖ Пустая строка. Проигнорирована
│01.10    │ Walls      │ //✔ Новая дочерняя. Родитель: 01
│01.20    │ Slabs      │ //✔ Новая дочерняя. Родитель: 01
│04.10    │ Pipes      │ //✖ Новая дочерняя. Родитель: 04. Проигнорирована
└─────────┴────────────┘

Результат импорта в справочнике:

01 ST
 └─ 01.10 Walls
 └─ 01.20 Slabs
02 AR

Организация позиций при импорте в непустой справочник

При импорте в справочник, в котором уже есть существующие позиции, импортируемые позиции могут иметь статус новых или обновляемых.

Ксли импортируемая позиция отсутсвует в справочнике, то к ней применяются правила, изложенные выше плюс дополнительные:

  • Система будет искать родителя не только в импортируемом списке позиций, но и в справочнике, в который происходит импорт.
  • Если позиция с определенным кодом уже присутствует в справочнике, то поиск родителя для нее производиться не будет, так как позиция не требует организации в дереве.

Пример справочника, в который производится импорт:

01 ST
 └─ 01.10 Walls
02 AR
04 MEP

Примерсписка импортируемых позиций:

┌─────────┬────────────┐
│Код      │ Имя        │
├─────────┼────────────┤
│02       | AR         │ //✔ Существующая. Обновлена.
│         │            │ //✖ Пустая строка. Проигнорирована
│01.10    │ Walls 200  │ //✔ Существующая дочерняя. Родитель 01 найден в справочнике. Обновлена
│01.20    │ Slabs      │ //✔ Новая дочерняя. Родитель 01 найден в справочнике
│04.10    │ Pipes      │ //✔ Новая Дочерняя. Родитель для нее: 04найден в справочнике
└─────────┴────────────┘

Результат импорта в справочнике:

01 ST
 └─ 01.10 Walls 200
 └─ 01.20 Slabs
02 AR
04 MEP
 └─ 04.10 Pipes