06 нояб. 2025 г.·7 мин

Разработка EAM/CMMS для ТОиР: модель активов без дублей

Разработка EAM/CMMS для ТОиР: как описать оборудование и узлы, вести счетчики наработки, ППР, заявки на ремонт и запчасти без дублирования данных.

Разработка EAM/CMMS для ТОиР: модель активов без дублей

Почему EAM/CMMS часто не работает из-за дублей

Дубли в EAM/CMMS быстро превращают систему во «вторую реальность», где данные не совпадают с тем, что происходит в цехе. Люди перестают доверять экрану и возвращаются к звонкам, мессенджерам и Excel.

Проблема не только в том, что одно и то же оборудование заведено дважды. Дубли тянут за собой заявки, ремонты, нормативы ППР и номенклатуру запчастей. Одна бригада закрывает работу на «Насос 1», другая - на «Насос №1», а склад списывает деталь на третью карточку с почти тем же названием.

ТОиР чаще «зависит» от качества справочников, чем от интерфейса. Если база активов и MRO-номенклатура собраны без правил, никакая красивая форма заявки не спасет: планирование дает лишние работы, отчеты врут, счетчики наработки не сходятся.

Обычно болит одно и то же: неполная структура (есть агрегат, но нет узлов), разные названия у одинаковых объектов, отсутствие единого кода и понятных ключей. Это особенно заметно, когда EAM/CMMS делается сразу под несколько площадок или подразделений.

Быстрый признак, что система «держится на данных», а не на энтузиазме отдельных людей:

  • у одного объекта оборудования одна карточка и один уникальный код
  • доля дублей в оборудовании и номенклатуре стремится к нулю и измеряется регулярно
  • 90-95% заявок создаются с привязкой к правильному объекту и месту установки
  • ППР формируется из шаблонов без ручного копирования «похожих» работ
  • в отчетах сходятся наработка, простои, затраты на ремонт и списания

Когда это под контролем, уже можно спокойно обсуждать мобильные обходы, интеграции, BI и все остальное. Без базы данных система будет выглядеть внедренной, но фактически не будет управлять ТОиР.

С чего начать: цели, границы и владельцы данных

Если вы начинаете разработку EAM/CMMS для ТОиР, сначала договоритесь о терминах. В разных цехах под «оборудованием» могут понимать разное: кто-то считает только агрегаты, кто-то добавляет узлы, инструмент, оснастку и даже ИТ-стойки. Без общего определения система быстро обрастает дублями и «серым» учетом.

Полезный прием - описать 3 уровня, которые вы точно будете вести в первой версии. Например: объект (площадка или участок) - актив (станок, насос, серверная стойка) - узел (двигатель, редуктор). Все остальное либо идет отдельными справочниками, либо не входит в контур ТОиР.

Дальше задайте границы: какие активы входят, а какие нет (инженерные сети, транспорт, офисная техника, ИТ). Частая ошибка - включить «все сразу», а потом выяснить, что по транспорту уже живет отдельная система, а по ИТ есть свои регламенты и инвентаризация.

Третий шаг - назначить владельцев данных. Не «ответственных за проект», а тех, кто отвечает за качество конкретных справочников и фактов:

  • эксплуатация: структура оборудования, история работ
  • склад: номенклатура, остатки
  • бухгалтерия: инвентарные номера, стоимость
  • ИТ: интеграции, доступы

Чтобы первая версия не развалилась, заранее зафиксируйте минимальный набор процессов и отчетов, которые должны работать «из коробки»: ППР по ключевым активам, заявки на ремонт со статусами, учет ремонтных работ (время, материалы, причина), склад MRO (выдача, возврат, списание), базовые отчеты (просроченные ППР, топ отказов, расход запчастей, простои).

Простой пример: на насосной станции один отдел называет агрегат «Насос 1», другой пишет «Н-1», склад ведет «насос в сборе», а бухгалтерия хранит инвентарник. Если в начале не решить, какой идентификатор главный и кто его владелец, в системе появятся четыре «разных» насоса, и ни один отчет не сойдется.

Модель оборудования: иерархия объектов, активов и узлов

Чтобы разработка EAM/CMMS для ТОиР не превратилась в склад дублей, начните с простой иерархии. Она должна отвечать на два вопроса: где это находится и что именно обслуживаем.

Минимальный набор сущностей обычно такой:

  • объект (площадка, цех, станция)
  • локация (помещение, зона, позиция)
  • актив (единица оборудования с паспортом и историей)
  • узел (ремонтопригодная часть актива)
  • компонент (часть узла; иногда совпадает с запчастью)

Главная ошибка - смешивать локацию и актив. Локация может существовать без оборудования (например, «Насосная N1, помещение 2»), и туда можно перемещать активы. Актив - это то, у чего есть серийный номер, паспорт, история ремонтов и ответственность. Если записывать «насос» и как место, и как оборудование, вы почти гарантированно получите два разных «насоса» в данных.

С узлами тоже важно не переборщить. Узел нужен, когда вы реально планируете работы и учет по частям: отдельные ППР, свои счетчики, типовые дефекты, отдельные запчасти. Если различие не меняет обслуживание, достаточно атрибута в паспорте (например, «мощность», «тип уплотнения», «класс защиты»).

Связи в модели лучше держать простыми: один актив - много узлов; один актив - несколько счетчиков (моточасы, пробег, циклы); один актив - набор документов (паспорт, инструкция, схемы). Тогда документы и счетчики не придется дублировать на каждом узле, если они относятся ко всему оборудованию.

Заложите обслуживание по уровням заранее. Например, на уровне объекта могут быть общие обходы и проверки среды (температура, утечки в помещении), а на уровне актива - регламент по конкретному насосу. Это снижает количество «одинаковых» работ и при этом сохраняет точность там, где она нужна.

Паспорта и справочники: что хранить, чтобы не плодить сущности

Дубли почти всегда начинаются с «паспорта»: один и тот же насос заводят как «Насос №3», «Pump-3», «НЦ-50» и «Инв. 000123». Чтобы этого не было, сначала договоритесь о правилах идентификации: один объект - один код, и этот код не меняется всю жизнь актива.

Рабочая схема простая: код (инвентарный или техномер) уникален и используется везде, а имя читаемо для людей и строится по шаблону (тип + место + номер). Сразу определите, кто выдает код и кто имеет право создавать новые записи.

Паспорт актива хранит только то, что нужно для эксплуатации и учета. Обычно окупается такой минимум:

  • производитель, модель, серийный номер
  • дата ввода в эксплуатацию и статус (в работе, резерв, списан)
  • местоположение и владелец (подразделение)
  • критичность и ключевые параметры (мощность, производительность, напряжение)

Все, что повторяется, лучше уносить в справочники. В справочнике типов фиксируют «общее»: тип оборудования, обязательные параметры, типовые узлы, рекомендуемые ППР, типовые запчасти и расходники. Тогда при создании нового актива вы выбираете тип, и система подсказывает структуру и обязательные поля вместо того, чтобы порождать новые сущности руками.

Документы тоже не стоит размазывать по заявкам и копировать заново. Обычно хватает одного хранилища вложений с привязкой к типу (инструкция, схема, паспорт) и к конкретному экземпляру (акт ввода, фото шильдика). В заявке лучше ссылаться на документ, а не загружать копию повторно.

Замена узлов и модернизации должны сохранять историю. Не «переписывайте» насос, когда поменяли двигатель: закройте старый узел датой снятия, создайте новый узел с серийным номером и привяжите его к тому же активу. Так вы видите, что именно работало в период, и не ломаете аналитику по отказам и запасам.

Счетчики наработки: настройка и правила расчета

Счетчики наработки отвечают на простой вопрос: когда делать работу, если календаря недостаточно. Это один из главных источников точного ППР, но только если договориться о правилах и не смешивать разные смыслы в одном поле.

Сначала определите тип счетчика для каждого актива или узла: моточасы для двигателя, километры для транспорта, циклы для пресса, расход (например, кубометры) для фильтров, разовые показания (давление, температура) для контроля состояния. Принцип один: один счетчик - один смысл и одна единица измерения.

Правила валидности

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

  • показания обычно не убывают (кроме замены счетчика или узла)
  • есть разумная частота снятия (смена, день, неделя)
  • есть допуск на скачки (например, не больше X часов в сутки)
  • задано, кто вводит и кто подтверждает
  • любая корректировка хранится как отдельное событие с причиной

Источники показаний лучше разделить: ручной ввод мастером, автоматическая загрузка из АСУ/SCADA, импорт из приборов учета, телеметрия. Даже при автоматике оставьте возможность ручного ввода с пометкой «вручную».

Наработка после ремонта и ошибки

После капитального ремонта или замены узла часто нужен расчет «наработка с момента». Делайте это не обнулением истории, а событием «замена/ремонт» и новым стартовым значением для узла.

Если пришли пропуски или ошибочные значения, не стирайте их молча. Рабочая схема:

  • пометить запись как «ошибка» и исключить из расчета
  • добавить корректирующую запись
  • пересчитать интервал по последнему и следующему валидному значению
  • блокировать ППР, если данных слишком мало, чтобы им доверять

ППР: как планировать работы и не утонуть в шаблонах

Рабочие станции для аналитики
Подберем рабочие станции под BI, анализ отказов и инженерные расчеты.
Уточнить конфигурацию

ППР в EAM/CMMS не должен превращаться в бесконечный каталог «похожих» регламентов. Лучше начать с набора правил, которые покрывают 80% работ, а остальное закрывать заявками и разовыми заданиями. Это почти всегда дает результат быстрее, чем попытка описать все сразу.

Есть три базовых типа ППР:

  • календарные - для проверок и регламентов «раз в месяц/квартал»
  • по наработке - когда износ зависит от часов, циклов, пробега
  • смешанные - «не реже раза в N дней, но и не позже чем через X часов наработки»

Шаблоны работ: меньше, но точнее

Шаблон ППР должен быть понятным и повторяемым. Если он слишком детальный, его начнут копировать и править, и дубли появятся снова.

Обычно достаточно, чтобы шаблон содержал: операции и критерии приемки (что считать выполненным), роли и нормы трудозатрат, требования по безопасности, материалы и запчасти (если норма стабильна), ожидаемое окно простоя.

План-график: формировать и «замораживать»

План удобно собирать автоматически на период (например, месяц), а затем фиксировать. Это защищает от постоянных пересчетов из-за мелких правок в справочниках.

Практичные правила:

  • план на период утверждается ответственным и после этого не пересоздается
  • новые ППР после «заморозки» попадают в следующий период (или отдельным согласованным добавлением)
  • переносы фиксируются причиной: простой, сезонность, вывод в ремонт
  • для длительных простоев календарный счетчик можно приостанавливать, а по наработке он и так не растет

Чтобы ППР не жил отдельно от реальности, каждое плановое задание должно превращаться в заявку/наряд, а закрытие - требовать факт: что сделали, сколько времени ушло, что списали со склада, какие дефекты нашли. Если по факту работа постоянно расширяется, это сигнал: шаблон надо уточнить, а часть задач вынести в отдельный сценарий ремонта, а не плодить новые «почти такие же» ППР.

Заявки и ремонты: понятный поток от обращения до закрытия

Заявка, наряд и факт работ - простыми словами

Заявка - сообщение о проблеме или потребности: «течет», «шумит», «нужно проверить». Ее может создать любой сотрудник, который заметил отклонение.

Наряд (заказ-наряд) - поручение выполнить конкретную работу: что сделать, где, кем и когда. Наряд появляется после проверки заявки и планирования.

Факт работ - что реально сделали: какие операции, сколько времени, какие материалы и запчасти ушли, чем закончилось.

Статусы и ответственность

Чтобы поток не превращался в переписку, хватает простых ролей и статусов:

  • инициатор: создает заявку и заполняет минимум (актив, симптом, локация, при необходимости фото)
  • диспетчер: проверяет правильность объекта, убирает дубли, ставит приоритет, направляет мастеру
  • мастер: решает, нужен ли выезд/диагностика/наряд, какие ресурсы и сроки
  • склад: подтверждает наличие и выдачу материалов и MRO-запчастей под наряд

Приоритет и критичность лучше задавать короткой шкалой, иначе люди будут спорить о градациях: низкий, средний, высокий, авария.

При закрытии фиксируйте результат одинаково: причина отказа (из списка, а не текстом), выполненные работы, трудозатраты, материалы, простой. Тогда история по активу и узлу становится полезной.

Пример: оператор создает заявку «насос N-01 вибрирует». Диспетчер видит похожую заявку, объединяет, ставит высокий приоритет. Мастер открывает наряд на диагностику узла «подшипниковый узел», резервирует подшипник на складе, после замены закрывает наряд с причиной «износ» и фактическим временем. В следующий раз вы увидите, что именно этот узел выходит из строя чаще, а не просто «насос ломается».

Учет запчастей MRO: структура, остатки и привязка к работам

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

Учет MRO часто ломается не из-за склада, а из-за справочника номенклатуры. Если одну и ту же деталь заводят как «Подшипник 6205», «6205-2RS» и «Подшипник 25х52», вы не видите реальных остатков, а закупки становятся гаданием. Решается это не «дисциплиной на складе», а правилами создания карточек и жесткими ключами.

Начните со структуры карточки: одно изделие - одна запись, варианты описываются атрибутами. Минимум, который реально уменьшает дубли: уникальный код (внутренний артикул) и нормализованное наименование, производитель/исполнение (если важно), единица измерения и упаковка (шт, уп, кг), аналоги и разрешенные заменители, совместимость с узлами/оборудованием.

Единицы измерения и упаковка важнее, чем кажется. Если на складе хранят «упаковка 10 шт», а списывают «штуки», система должна знать пересчет. Тогда «1 уп» не превращается в «1 шт», и остатки перестают прыгать.

По складам не усложняйте. Часто достаточно трех уровней: склад, зона, ячейка. Детализация нужна там, где реально ищут руками и где есть ответственность. Если ячейки не маркируются, лучше не делать вид, что они есть.

Чтобы закупки были предсказуемыми, задайте min-max и точку заказа, а под наряд используйте резервирование. Важно, чтобы резерв автоматически снимался при закрытии наряда или возврате.

Остатки совпадают с реальностью только когда одинаково строго оформляются списание и возвраты. Простой пример: слесарь взял ремкомплект, но использовал не все. Возврат оформляется в тот же день и привязывается к наряду, иначе «съедаются» остатки и потом появляются срочные заявки на закупку того, что уже лежит на полке.

Пример на практике: обслуживание насосной станции без дублей

Насосная станция как объект учета одна, но внутри у нее несколько активов: 3 насоса (P-101, P-102, P-103) и общий шкаф управления (CU-01). Частая ошибка - заводить «насосная станция» как актив, а потом еще раз как место, а потом как оборудование в заявках. Лучше сразу договориться: объект (локации) отдельно, активы отдельно.

Пример иерархии для P-101: актив «Насос P-101», узел 1 «Электродвигатель», узел 2 «Торцевое уплотнение». Для актива задан счетчик «Моточасы», источник - показания оператора раз в смену или импорт из АСУ. ППР задается типовыми шаблонами: «Ежемесячный осмотр», «ТО по моточасам 500 ч», «Замена уплотнения по состоянию».

Путь данных без лишних сущностей:

  • заявка: «Повышенная вибрация P-101» (обязательные поля: актив, локация, симптом, дата)
  • диагностика: причина «износ подшипника», рекомендация, фото/замер
  • наряд: операции и трудозатраты, фиксация счетчика на момент начала и конца
  • запчасти: списание 2 подшипников и смазки со склада с привязкой к наряду
  • закрытие: код отказа, что сделано, что заменено, простой

Дубли чаще всего появляются в трех местах: активы заводят «как попало» (P-101 и «Насос 1»), узлы создают заново в каждой заявке, запчасти живут под разными названиями. Работают простые правила: уникальный код актива, узлы как часть типовой структуры, единый справочник MRO с нормализованными наименованиями и единицами.

На выходе получается понятный отчет: «P-101: 3 ремонта за квартал, 14 часов простоя, топ причина - подшипники». И рядом: «ТО по 500 моточасам: выполнено 5 раз, просрочено 1 раз, средняя длительность 2,3 часа».

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

Дубли появляются не из-за «плохих пользователей», а из-за отсутствия простых правил: как назвать объект, где брать эталонные данные и что считать уникальным. Если вы планируете разработку EAM/CMMS для ТОиР, заложите антидубль-логику сразу. Иначе она начнет ломать ППР, заявки и склад.

Уникальные ключи и «единственный источник правды»

Сначала определите, по чему система должна понимать: «это уже есть». Лучше поддержать несколько уровней уникальности:

  • для единицы оборудования: серийный номер (если есть) + площадка/цех
  • для позиции без серийника: инвентарный номер или внутренний код
  • для узла: код узла + родительский актив + позиция (например, «P-101 - Подшипниковый узел - левый»)
  • для справочников: жесткие коды (а не названия) для типов, моделей, производителей
  • для документов: уникальный номер заявки/наряда по заданной маске

Дальше сделайте справочник типов и каталог моделей «единственным источником правды». Пользователь должен выбирать тип и модель из списка, а не вводить руками «насос», «насосик», «насос 2». Свободный текст оставляйте только для комментариев.

Миграция и контроль после запуска

При переносе данных сначала чистят и нормализуют: приводят регистр, единицы измерения, формат серийников, убирают лишние пробелы, заполняют пропуски. Затем ищут совпадения по правилам (точное совпадение и «похожее» по связке атрибутов). Полезно помечать записи статусом «кандидат в дубль» и отправлять на короткую ручную проверку владельцу данных.

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

  • новые активы без серийника или кода
  • узлы без привязки к родителю
  • одинаковые модели с разными названиями
  • заявки, созданные на «похожее» оборудование
  • запчасти с одинаковым артикулом, но разными единицами измерения

Простой пример: если два мастера добавили «Насос Grundfos CR 10» и «GRUNDFOS CR10», ППР начнет дублироваться, а склад будет списывать разные позиции. Уникальные ключи и справочники решают это без лишней бюрократии.

Пошаговый план: от модели данных до запуска в цехе

Поставка и ввод в эксплуатацию
Организуем производство, доставку и ввод в эксплуатацию под ваши сроки.
Согласовать поставку

Чтобы проект не превратился в бесконечную настройку, держите фокус на простом: сначала договориться о данных и правилах, потом автоматизировать. Начните с пилота на одном участке, где есть типовые поломки и понятные счетчики (насосы, компрессоры, конвейер).

  1. Зафиксируйте, как у вас проходит ТОиР сегодня: кто подает заявку, кто согласует, кто выполняет, кто закрывает. Часто хватает одной страницы текста и списка ролей.

  2. Соберите перечень оборудования и приведите его к единому справочнику типов. Заранее договоритесь: что считается активом, что узлом, а что расходником.

  3. Постройте иерархию (объект - актив - узлы) и заведите паспорта. Оставьте только нужные атрибуты: серийный номер, место установки, критичность, привязка к участку.

  4. Настройте счетчики и правила наработки. Решите, откуда берется значение (вручную, из АСУ ТП, из сменных показаний) и что делать с пропусками и сбоями.

  5. Создайте 10-20 шаблонов ППР для самых частых работ и прогоните их на пилоте 2-4 недели, чтобы увидеть лишние поля и повторяющиеся сущности.

После этого настройте поток заявок: статусы, обязательные поля, причины отказа, правила закрытия. Например, нельзя закрыть ремонт без факта трудозатрат и списания запчастей или комментария, почему списание не требуется. Так вы закрепляете дисциплину данных еще до масштабирования.

Чеклист и следующие шаги: как закрепить результат

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

Короткий чеклист перед стартом:

  • утверждена иерархия активов и локаций без лишних уровней
  • назначен владелец данных (справочники, паспорта, коды, изменения)
  • определены ключи уникальности (серийный номер, инвентарный номер, внутренний код, код позиции MRO)
  • настроены счетчики наработки и правила расчета (что считаем, откуда берем, как часто обновляем)
  • прописан единый поток работ: заявка - диагностика - наряд - списание запчастей - закрытие

Чаще всего ломает проект не функционал, а дисциплина данных. Типовые ошибки: слишком глубокая иерархия (в ней никто не ориентируется), «все в свободный текст» (потом невозможно искать и строить отчеты), отсутствие владельца данных (никто не чистит дубли и не следит за качеством).

Быстрые проверки перед пилотом можно сделать за день: найдите дубли по серийникам и инвентарникам, проверьте пустые паспорта (нет модели, мощности, производителя), посмотрите счетчики наработки (нули там, где должна быть жизнь). Если на этом этапе убрать хотя бы 80% мусора, пользователи начнут доверять системе.

Во второй итерации обычно добавляют аналитику отказов, интеграции (ERP/склад, SCADA/АСУ ТП, закупки, кадровые роли), мобильный ввод для осмотров, нормирование и управленческую отчетность (доступность, MTBF/MTTR, выполнение ППР).

Следующие шаги лучше закрепить ответственными и датами: кто ведет справочники, кто подтверждает модель, кто обучает бригадиров. Если параллельно нужно закрыть инфраструктуру (серверы, рабочие места, поддержка и интеграции), это удобно делать через системного интегратора. Например, GSE.kz (gse.kz) может помочь с серверной инфраструктурой, развертыванием и сопровождением, а также с интеграциями в корпоративный контур.

FAQ

Почему в EAM/CMMS так быстро появляются дубли оборудования?

Чаще всего дубли появляются из-за отсутствия единого правила идентификации: люди вводят «как привыкли», а система не умеет понять, что это один и тот же объект. Начните с требования «один актив — один неизменный код» и ограничьте право создавать новые карточки, иначе дубли будут размножаться быстрее, чем вы их чистите.

Какой идентификатор лучше сделать главным: название, инвентарник или серийный номер?

Берите за основу уникальный код, который не меняется всю жизнь актива: инвентарный номер или внутренний техномер. Название делайте человеко-читаемым по шаблону (тип + место + номер), но не используйте название как ключ, потому что его все равно будут писать по-разному.

Какая ошибка в модели данных чаще всего ломает учет ТОиР?

Когда смешивают «где находится» и «что обслуживаем». Локация может быть пустой или меняться, а актив должен хранить паспорт и историю работ, поэтому это разные сущности. Если «насосная» заведена и как место, и как оборудование, система почти неизбежно начнет считать их разными объектами и плодить двойные карточки.

Когда нужно заводить узлы, а когда хватит атрибутов в паспорте?

Делайте узел только там, где вы реально хотите планировать и учитывать работы отдельно: свой ППР, свои дефекты, свои запчасти или счетчик. Если различие не влияет на обслуживание, лучше хранить это как параметр в паспорте (например, мощность или исполнение), иначе вы перегрузите структуру и усложните ввод данных.

Кто должен отвечать за качество данных в EAM/CMMS?

Назначьте владельца данных на каждый ключевой справочник и факт: эксплуатация отвечает за структуру и историю работ, склад — за номенклатуру и единицы измерения, бухгалтерия — за инвентарные номера и стоимость, ИТ — за доступы и интеграции. Без конкретных владельцев дубли будут «ничьими» и останутся в системе навсегда.

Как настроить счетчики наработки, чтобы они не превращались в хаос?

Разведите разные смыслы по разным счетчикам и единицам измерения: один счетчик — один смысл. Дальше включите простые проверки: показания обычно не убывают, есть разумная частота ввода и допуск на скачки. Любую корректировку фиксируйте как отдельное событие с причиной, чтобы не терять доверие к истории.

Как планировать ППР и не утонуть в сотнях шаблонов?

Начните с малого набора шаблонов, которые покрывают большую часть типовых работ, и делайте их достаточно понятными, чтобы не приходилось копировать и «чуть-чуть править». Хороший шаблон описывает ожидаемый результат и минимальный состав операций, а не пытается предугадать все варианты. Если по факту работа постоянно выходит за рамки, корректируйте шаблон или переносите часть в сценарий ремонта, а не создавайте новый «почти такой же».

Какие поля и правила закрытия заявок реально дисциплинируют данные?

Сделайте один понятный поток: заявка как сигнал, наряд как поручение, факт работ как обязательное закрытие. При закрытии требуйте одинаковый минимум данных: причина из списка, трудозатраты, материалы и простой (или явный комментарий, почему этого нет). Это быстро лечит «ремонт сделали, но в системе ничего не видно» и повышает качество аналитики.

Как уменьшить дубли в MRO-номенклатуре и сделать склад предсказуемым?

Нормализуйте карточку номенклатуры: одна деталь — одна запись, а отличия фиксируются атрибутами, а не разными названиями. Особенно важно договориться про единицы измерения и упаковку, иначе остатки будут «прыгать» из‑за пересчетов. Привязка выдачи и возврата к наряду нужна, чтобы расход был объяснимым и закупки перестали быть угадыванием.

Как правильно мигрировать данные в новую систему, чтобы не перенести мусор?

Сначала очистите и нормализуйте данные: единый формат серийников, единиц измерения, регистров, пробелов и обязательных полей. Затем используйте правила поиска совпадений и помечайте «кандидатов в дубли» для короткой ручной проверки владельцем данных. После запуска регулярно проверяйте новые записи без кода, узлы без родителя и похожие модели с разными названиями, иначе дубли вернутся.

Разработка EAM/CMMS для ТОиР: модель активов без дублей | GSE