После того как влили собственно справочник номенклатуры, т.е. просто обозначения и наименования тех объектов, с которыми работает система. Ну и обвесили всё это классификатором и параметрами, описывающими характеристики этих объектов. Порешали (уж как получилось) возникшие проблемы, самими себе созданные неуёмной деятельностью во благо народонаселения. Можно, так сказать, углубить и усугубить.
Начинаем лить спецификации. С дополнительным набором элементов, описывающих свойства позиций этих спецификаций. Различные зона, позиция, формат и прочие примечания. А так как спецификация - это список номенклатуры, то сначала вливается она, а уже затем состав.. В общем всё похоже. Но есть и отличия.
Главное отличие спецификации от номенклатуры заключается в том что, список этот (состав, спецификация, перечень элементов и т.п. названия разные) разный для разных временных отрезков одного и того же объекта. Как бы сейчас сказали - меняется на протяжении жизненного цикла. Поэтому надо на каждое такое изменение иметь отдельное описание.
Рождено новое понятие - "Версия". Которая в свою очередь описывается обозначением, наименованием, а также дополнительным набором атрибутов: срок ввода в действие, до какого действует, условие применения, с использованием задела или без такового, и так далее. Пока даже и не углубляемся в значения этих слов, а тупо воспроизводим просто значения в базе. Начнешь вдаваться - унесет в пучины реального производства. А там тяжко - в производстве этом. Ну да это я отвлекся.
Встает один простой вопрос - а как определить, что эти самые спецификации вливаются для того, чтобы отобразить это самое изменение, или же просто ранее было влито что-то непотребное, ошибочное? Да никак, собственно автоматически это не сделать. Значит выводим диалог - а будьте любезны указать - что лить, а что не лить. Неохота указывать? Спору нет - делаем кнопку "Выбрать всё" и плодить версии на каждое вливание. Ну и не заниматься всякими изысками типа сопоставлять номенклатуру с тем, что есть в базе, а тупо создавать такую, которая есть в спецификации. И лить. Автоматически... Чтобы самО.
В результате так все и делали - жали эту кнопку и шли по своим делам, а прога пусть работает. А что? Зато быстро. Как в той басне про машинистку: «Печатаю слепым методом. 2000 знаков в минуту. Но такой бред получается!». Так и с этим литьем автоматическим. Глядя на плоды работы своей же чудо программы хотелось убрать этот режим вообще навсегда, да и базу эту удалить и забыть. Но нет. Так нельзя. А как же пожелания пользователей?
В общем ситуёвина один в один как со значениями параметров номенклатуры. После загрузки надо менять то, что налилось, на то, что надо на самом деле. Сделали режим "Замена номенклатуры" одной на другую. Во всех версиях. Отлично. Можно приступать к выверке налитого.