Про 1С++ООП, на ночь глядя бесстыжими вочами

Автор Пиит, 05 апреля 2024, 00:58

« назад - далее »

Злоп


Пиит

Цитата: Злоп от 25 апреля 2024, 11:20... хорошо, что не тараканы ;-)
А хоть и тараканы. Если подумать, бегут же они, если пожрать неча.
Давайте надеяться, что в наших головах таки есть чего похавать ))

Пиит

Цитата: Злоп от 25 апреля 2024, 11:20хорошо, что не тараканы ;-)
А Вы знали, коллега, что любимым блюдом СэраРичардаЛьвиноеСердце был мозг сарацина?
Таким способом вероятно, арабские цифры и проникли в средневековую европу.

Пиит

Наследование данных.
Начну, как положено, с постановки проблемы, на примерах.
Не передать словами, как надоело ковыряться уже в этих типовых справочниках ТМЦ в v7.
Вот, запихали все сущности в три флакона, и радуются. В ОсновныхСредствах всё в кучу, и Здания, и Транспорт, и Калькуляторы и так далее по классификатору ЕНАОФ. Номенклатура это у нас и Товары, и Услуги, у Продукция, и какого-то хрена КомиссионныеТовары и ещё чёрти-чё. И Материалы туда же, по субсчетам типа разбиты, как будто так они станут разные, Материалы, Топливо, Спецодежда, БСО (бланки строгой отчетности) и далее по списку субсчетов.
А то, что все перечисленные элементы внутри групп - это несовместимые порой штуковины, с разной структурой и даже различным учётом, так это типа "не к нам вопросы", а к покойному Эдгару. Вот тебе, чувак, слои, ВидыТиповВидов, группы в справочниках, как хочешь, так разделяй и влавствуй. И вот в v8, та же проверенная старая схема, даже хуже, всё один флакон, по группам разнеси, и не задвай больше глупых вопросов.

А я бы сделал так.
Справочник.ТМЦ, первый наследник БазовогоПрикладногоКласса, далее следующий наследник - Справочник.ТМЦ.ОсновныеСредства, с общими характеристиками для всех ОС, как-то ИнвентарныйНомер и т.д. Далее пойдут наследники по первому коду классификатора ЕНАОФ, Здания, Транспорт, Калькуляторы и т.д., где каждого из указанных Справочников я бы наделил присущими  им свойствами, например, Здания площадью м2, этажностью и прочими контруктивные особенности, а Транспорт - Моделью, ГосНомером, ПервоначальнымПробегом и так далее.
Таким образом, на каждом уровне наследования я достигаю той самой специализации ОС не только в соответсвии с ЕНАОФ, но и житейской логикой, и даже концепцией ООП.
Точно также, Материалы наследуют ТМЦ, имеют свои общие характеристики, Цена и всё такое, а далее, по мере специализации, наделяются своими "родными" качествами, кто НормамиЗакладкиБлюд, кто СериямиИНомерамиБланков, а кто и НормамиРасходаТоплива.
Номенклатура в таком же порядке, есть ТМЦ, а дальше подразделяется на свои известные ВидыНоменклатуры, среди которых Товар мы можем по мере необходимости специализировать и дальше, для продуктов питания добавить СрокиХранения, для Ботинок Цвет и Размер и так далее в безграничном разнообразии всей товарной массы.
Всё это дерево Классов имхо Компания попыталась в V8 запихнуть в свою новую вундервафлю под названием ПланВидовХарактеристик, дескать вот вам супер-штука-дрюка, и приступайте сами "на стороне клиента" скурпулёзно составлять свои классификаторы товаров. Это я понять могу, Компания не хочет заниматься Ботинками, она предлагает нам универсальность, ту самую, про которую говорят, "для всех и ни для кого в частности". Это деловой подход.
А у нас чуток не так. У нас есть огромный Справочник.ТМЦ, чуть поменьше его потомки  ТМЦ.ОС, ТМЦ.Материалы и ТМЦ.Номенклатура, а дальше - все наследнички более мелкого калибра.
Да, напомню, любой Класс имеет свою Инкапсулированную ТаблицуБД, и таким образом мы получаем столько таблиц, сколько листьев на этом дереве с корнем Справочник.
Напрашивается логичный вопрос, а в какой из комнат нам искать наш Ботинок?
Ответ - в общем случае Ботинок валяется сразу во всех суперкомнатах, он разложен на атомы ровно в том количестве ТаблицБД, каков уровень его наследования от БазовогоКласса, включая последний.
Давайте считать, идём с конца - Ботинки - Товары - Номенклатура - ТМЦ - Справочники, итого 5. Если не считать, что мы пропустили ПромТовары и ещё чего-нибудь предметно-ориентированное.
Да именно так, в общем случае пять, если не вспомнить о том, что в ООП есть ещё третий принцип - Полиморфизм.
Я в общем-то психом себя редко считаю, и пихать все элементы всех справочников в одну таблицу рука не подымется, хотя не исключаю и такой вариант.
А вот для выбора варианта я предлагаю ввести здесь в оборот Полиморфизм данных, как Классов, так и их Реквизитов....

Злоп

С точки зрения бухучёта в его общей ипостаси - большая часть всего этого нахрен в бу не нужна. Имхо. А специфику учёта отдельных классов можно реализовать типа свойствт-значение и плугинами для обработки/учёта. При этом ещё и свои счета и субсчета можно создавать в режиме предприятия. И кстати, бля ОС в 77 существовала отдельная конфига 1с:Основные средства.
С попытка реализовать всю специфику чего бы то ни было через ахеренную череду наследования и потомков имхо ни к чему у хорошему не приведёт...

Пиит

Цитата: Злоп от 25 апреля 2024, 18:10...   И кстати, бля ОС в 77 ...

Это непременно войдёт в наши анналы, коллега, но таки дайте мне помечтать.)
С Вашего позволения, я продолжу.

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

Необходимо выбросить из головы все "плюсики", за которыми скрываются выпадающие списки реквизитов и прочих ресурсов. Отныне это только ДеревоКлассов, и за плюсиком выпадет только список наследников, и на этом всё. Когда у нас появятся, "лет чрез пятьсот", трёхмерные мониторы, у нас будет возможность поместить на экране и то и другое, например по оси ординат дерево наследников, а по оси аппликат - списки их реквизитов, или по оси абсцисс, так даже смешнее.
Но пока я ещё не собрал воедино теорию дискретных пространтсв, и придётся таки отказаться от привычного нам вида Конфигуратора. Каждый Класс требует отдельного Окна для рассмотрения его Структуры в контексте Наследования данных.

Наследование данных как принцип ООП нельзя просто взять и огульно "включить", модули и методы - это только частный случай, нужно рассмотреть правила наследования для каждого в отдельности БазовогоКласса. Вот, как пример, Структура, очевидным образом обрастает в каждом поколении всё новыми и новыми реквизитами, взять ЭлементСправочника, на первом уровне можно заложить Код и Наименование, на втором, в том же ТМЦ, добавить Цену, на третьем и последующими, в соответствии со специализацией Справочника, будут добавляться и Площадь, и Пробег и прочие свойства. По правилу наследования, нельзя изменить у Класса реквизит его Родителя, для этого нужно открыть в отдельном Окне родительскую Структуру, и там уже, внутри Отца своего, добавлять, изменять либо удалять то, что вам нужно.

И вот именно здесь и сейчас мне очень захотелось, как никогда прежде, выкопать мощи святого Эдгара* и закопать их в другом месте, но уже гораздо глубже, завернув его в саван концепции реляционных баз данных. Очень уж захотелось выбросить из проекта все таблицы, объявить Справочник как связный двунаправленных список of structure и перейти на модель БД, построенную на Лесах Бинарных Деревьев. В споре между аппологетами ООБД о применимости модели РБД у меня с собой таки нет единого мнения.

О чём это я? Да, наследование Таблиц. Таблица, как двуликая сущность, сама по себе которая содержит качества одновременно и Структуры, и Списка, является немножко занозой в стройной классификации структур данных. Но реалии таковы, что мы все сегодня априори внучата дедушки Кодда, и SQL наше всё, и даже самые смелые проекты начала века опускаются на уровень Тырнета, и вместо обмена данными в режиме реального времени, опускаются до примитивного уровня запрос-ответ. А между тем, сами изобретатели SQL приходят по-тихоньку в выводу, что реляционной модели пора уже занимать место на кладбище, и структурированному языку запросов, как ее порождению, дорога туда же...

*
Про некрофилов, многие наверняка читали в детстве хоррор Герберта Уэлса "Голова профессора Доуэля", но мне больше нравится другая аглицкая баллада, история похождения головы Оливера Кромвеля, поверьте это гораздо интереснее и поучительнее.

Злоп


Пиит

Цитата: Злоп от 25 апреля 2024, 21:36это вам в сторону баз типа NOSQL

Ну что Вы, коллега, не нужен нам берег турецкий. Мало ли чего иногда хочется, особенно когда седина в бороду. Меня частенько заносит во время дискуссии, и поэтому бываю не точно истолкован. Я вовсе не хотел обидеть дедушку Кодда. Вопрос просто не простой, концептуальный. В этом любовном треугольнике из Таблицы, Списка и Структуры, в котором Таблица имеет обоих, а те в свою очередь имеются Таблицей, кто-то явно лишний. Вот в чём дело. Я даже уверен, что Эдгар Кодд, вертя в руках этот спиннер, долго не мог сделать выбор, какой фундамент заложить в модель базы данных, Таблицу или Список&Структуру. Возможно даже, что он исследовал оба варианта. Как бы там ни было, мы имеем то, что имеем, и я таки Одинэсник, а не Амазонник, и вопрос приемственности для меня очень важен, поэтому от Таблицы как структуры данных я отказываться не намерен. Я намерен её обойти на повороте.

Приемственность это имхо очень не простая штука в развитии любого проекта, и соблюдать её чрезвычайно сложно. Вот, даже Формекс неоднократно подвергался ревизиям, что-то пропадало, что-то переименовывалось, что-то пошло изначально не так как хотелось, а потом уже поздно исправлять, потому как нарушится эта самая приемственность. Сегодня вот, обсуждали, была АтрибутХреньТакаяТо, потом пропала, на ровном месте ошибки где-то попёрли.

Я стараюсь придерживаться приемственности. Хочу нарисовать такой проект v78, в который можно было бы конвертировать любую типовую конфигурацию v7. Никто же силком не заставляет типового архитектора возводить десять этажей наследования Справочников, а базовые типы данных и прикладные объекты какие-никакие в v7 есть, и я думаю, при аккуратном подходе, такая цель может быть вполне достигнута.
 
По крайней мере, я не порождаю куролесицу в виде Ссылок-Объектов-МенеджеровСправочников.

Компания потому и отказалась от приемственности v8 с v7, что сама заблудилась в собственных хотелках, нарожала гремлинов каких-то с непонятными даже названиями, и какой тут СоздатьОбъект прикажете? Ресурсный унисекс какой-то изобрели. Даже термины, к которым относились в v7 таки более по-человечески, заглядывали в бухгалтерские учебники, консультировались с экспертами, так взяли и исчезли просто. Слово Субконто вошло в этот мир благодаря Компании, а теперь это ПланВидовХарактеристик. Ну, а РегистрыБухгалтерии чем от ПлановСчетов отличаются? Я ж не просто так про Ресурсы, это ж в УчебникеПоБухУчёту написано, что Измерителями они называются, а ресурсы это другое понятие. Так на каком языке с бухгалтером прикажете разговаривать? Где оно, предметно-ориентированное ваше?

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

Что касается SQL. SQL оперирует таблицами, на экранах мониторов таблицы, и мы все структуры данных пытаемся уместить в таблицах, а ООП то оперирует другими структурами, кодер оперирует другими абстракциями, более сложно организованными, многомерными конструкциями, а таблица то - всего лишь двумерная матрица. И вопрос, как научить SQL на запрос возвращать ответ не таблицами, а этими самыми конструкциями, не имеет пока полного ответа...

Злоп

"с понятными для юзера объектами и их свойствами."
а что сейчас для юзера непонятно, например в 77? Он ни с таблицами, ни с классами не работает. Доки, списки, отчёты. Всё. Вот не сталкивался я например по бухии, чтобы отсутствие каких-то узкоспециализированных характеристик ОС мешало вести бух.учет этих ОС. Группа ОС - для определения срока. А сколько там квадратов, всота потолков и тощина стен - это все в инженерных данных и прочих околобухгалтерских и продажных вещах, чтобы успешно торговать продукцией этих ОС (квадратами в аренду, киловатчасами и прочими)
.
?

Пиит

Цитата: Злоп от 26 апреля 2024, 04:14...  Он ни с таблицами, ни с классами не работает. ... Группа ОС - для определения срока. А сколько там квадратов, всота потолков и тощина стен - это все в инженерных данных и прочих околобухгалтерских и продажных вещах,

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

Эх, забыл про товароведов с Ботинками.

Пиит

Цитата: Пиит от 24 апреля 2024, 20:12...  Побаиваться я стал мужиков, как примут, чему научат...

Пиитеть не мешки ворочать, говорили мужчины в нашем дворе. Чайф о таких мужчинах даже куплеты спел, был такой танцевальный коллектив на Урале, ламбадушку душевно так бацал.
Когда они стали такими, те мужчины, думал я, глядя на моих сержантов из разведбата, которые на июльской жаре мотали десятку в ОЗК по стадиону в десантных кирзачах. Вот же они, красавцы, загорелые, мускулистые, альфа-самцы, прямые и жёсткие машины-убийцы в своей армейской классификации.
Нельзя сказать, что среди лицеистов таки все были зашуганными очкариками, отнюдь нет. Много было крепких ребят, которые могли и за себя постоять, и за друга спросить. Мой хороший друг и одноклассник поступал после лицея в академию МВД, тот ещё голливуд. С блатом поступал, какой-то майор, родственник у бати его там был. Не прошёл, завалили на русской литературе. Как, спросил его местный академик, звали отца Пьера Безухова по отчеству? Вот и вся академия, со своми полковниками. Так наше МВД потеряло по дороге возможный винтик в своём следственном отделе, и приобрело себе шурупа в виде отъявленного бандита и нарушителя общественного спокойствия. Тоже элита. Бригада, биты и ломаные кости оппонентов. Живой по сей день, и как полагается, бизнесмен. А тогда всякое могло случиться, на казалось бы ровном месте.
Помню одну историю, бригада его чистила бундесов на варшавке, т.е. собирала налоги и отчисления с транзитных легковых автомобилей на пограничном пункте пропуска. И вот подкатили они так к очередной тачке, и с мужичка, на вид щуплого, 50 марок вежливо попросили.  Мужичок отпираться стал, вы чево, мужики, я ж местный, семья, дети и т.п. Кому нужны твои семья и дети, не вытерпел один бандюк эти сопли, и достал из-за пазухи ножик такой, с локоть длиной, чтоб мужичок не отнимал значит рабочее время. И тут случилось то что случилось - в самое яблочко, прямо в анальное отверстие того бандюка вставил этот мужичок самурайский нож владельца, по самую диафрагму. Дискуссия таким образом была окончена, и поволокли братки, подобрав свои сопли, друга своего на белую койку. Пол года потом тому бандюку хирурги кишки перештопывали и сухожилия перевязывали, одно так и не срослось.
Спустя много-много лет я эту историю услышал однажды от другого человека, моего нынешнего хорошего друга, за ночными посиделками с чашкой чая и рассказами о бурной молодости. После армии, говорит, куда идти, время лихое, заводы стоят, семья вон, дети малые пошли, и подался машины гонять, из европ на восточное направление. Обычно, говорит, братки местных не трогали, а тут видно, не хватало им на баню с девками, и упёрлись рогами. И тут один придурок нож достал, похвастаться. Всё, пипец, доберман пошёл. И засадил этому гавнюку его гаджет по самые помидоры, осознанно засадил, спец таки. Десантура, афган, ахернадцать боевых выходов по душманским тылам со списанием с довольствия. Вот такой попался тем браткам мужичок.
Когда я открывал ногой дверь горвоенкомата, я действовал как учитель. Есть такой приём психологический, выкинуть какой-нибудь фортель, создать эффект неожиданности, привести в замешательство испытуемого. Учителя в школе таким образом привлекают внимание к важному моменту в учебном процессе. Можно хлопнуть в ладоши, ляснуть по столу линейкой, пёрнуть громко наконец, главное - возбудить кору юного мозга за партой, чтобы встрепенулся и сориентировался таки в пространстве и времени. Так было и в военкомате. Сотрудники на своей памяти наверное и не видали таких наглецов. Что-что? Служить хочу? Как-как? Родине? Замешательство уже случилось, что делать не знали. К тому же, мерцавец был не один. Сразу двое желающий защищать отечество упали на голову военкомам. Это был перебор, это уже конгнитивный диссонанс.
Да, я был не один, подбил своего сокурсника на это дерзкое дело. Серёга, тоже интересный персонаж, клички не имел, фамилия была короткой и хлёсткой, так и называли его все, по фамилии, даже жена его молодая не назвала его по другому. Хороший хлопец, вырос в таких пердях полесья, что не долетел бы туда и змей-горыныч. Имхо именно в тех краях и зародился этот сказочный герой русских сказок, по топономике речки тамошней, Горынь назывется. Мой отец тоже из тех мест, недалеко, на Лани вырос. Серёга тоже не был очкариком, он был кикбоксёром. Каким способом доплыл до Горыни этот вид искусства, остаётся загадкой, но намахался Серёга вдоволь на первом курсе, в общежитии, указывая оппонентам из спортфака, что физмат тоже сила.
Как и мою девочку, его молодую скво распределили в места отдалённые, сеять разумное-доброе, и мы такие два охламона были не-пришей-к-жене-рукав, свободны и открыты к любому общению. Так и стояли теперь, улыбаясь, перед большим начальником, зам.горвоенкома п/полковником Гумянко. Это была женщина, красивая, статная женщина, в погонах и заколках. Жалко, забыл уже её имя-отчество, но это была фемина. Улыбнулась нам, по-доброму, по-матерински так, сняла трубку и позвонила начальнику областного узла связи. Посмотри, говорит, Виталик, двух бойцов, умные, компьютеры знают, и пожелала нам удачи. Поехали мы с Серёгой собеседоваться к тому Виталику. Прям как на работу принимали, по одному в кабинет директора. Не знаю, о чём там беседовали они с Серёгой, но у меня Виталик спросил один только волнующий его вопрос, кем тебе-на приходится-на полковник Гумянко? Тётка-на, ответил я, глазом не моргнув. Ассоциация-на.
После, в отдельной штурмовой воздушно-десантной, после присяги Серёга три ночи глаз не сомкнул у толчка в расположении своего нового боевого подразделения. С железной дужкой от кровати, трое суток, убеждительно доказывал новым друзьям из класса дедов-дембелей, что физмат таки тоже сила. Не сдался, редкий случай, раскрасил не одну голубую беретку, пока не сдались боевые товарищи. Посрать наверное уже очень хотели. Хрен с тобой, сказали, выходи, что с тебя взять, годишник ведь, педагическими приёмами  владеешь, наш человек. Так Серёга пошёл вверх по военной лестнице, нанадцать прыжков и рейдов по тылам голодающих колхозов, диверсионная подготовка, и прочее. После службы не остался, долго уговаривали, пошёл в сисадмины, по банкам скитался, пока боевые качества не проявились на новом поприще. Сейчас рулит областью, в отделе безопасности одного нашего крупного госбанка, гоняет инкассаторов, бывших майоров-полковников, по технике безопасности при обращении с табельным. Всякое случается, бывает, приходится вспомнить физмат, и применить к новенькому майору педагогические приёмы.
Меня Боженька уберёг от посиделок с дедами. "Тётка" помогла. После присяги отправился я на тот самый областной узел связи, разминать пальцы на телеграфе и спать в секретке. Не жалею, побегал, попрыгал, успел сигануть с куполом разок, познал силу крепкого мужского локтя, и мужиков уже после службы не побаивался...

Злоп

"не будет думать, с какого хрена у меня в муке дизтопливо плавает, а бланки БСО лезут в строительные сметы."
если бардак то он везде будет. в дереве классов будет дизтопливо лежать. Почему? да потому что раздолбаи! завели так, ой не туда, кинули как было и в новой ветке завели правильно.

Пиит

Цитата: Злоп от 26 апреля 2024, 13:38... Почему? да потому что раздолбаи! ...

Ну, не горячитесь так, коллега.
Разве я похож на просвитера, который сначала промывает вам мозги цитатами библейских персонажей, а затем тащит вас за рукав в свою богодельню?
Мне не нужны последователи, потому как я не спаситель и не апостол.
Более того, меня не интересуют ни лайки, ни подписчики, ни количество просмотров.
Просто у меня "есть что сказать", сказать чего надумал за много лет, чего открыл для себя за время работы с v7, высказать мои оценки Компании и её новых детищ, и помечтать наконец.
Мечтать то не вредно?

Вполне даже себе представляю, как может здесь усмехнуться иной кодер, глядя на мои размышлизмы. Ну-ну, распрягай дядька своих скакунов, открывай америку, давно и без тебя всё это знаем, и сами с усами. Надеюсь, что я не похож и на наивного юношу.

Есть потребность, я уже писал об этом, весеннее обострение, я так это называю.
Более того, зная себя, думаю, до Победы ещё дотяну, а там успокоюсь.
Психотип у меня такой, загораюсь, хватает на какое-то время, а потом всё, туши свет.
Так что потерпите мои простыни, коллега, до Победы.



Пиит

Всё же странно язык устроен -
То болтается где-то годы,
То печатным шагает строем,
То вдруг вешние дарит всходы.

Аккурат перед самым маем
Выпускает мой враг побеги,
Расцветает язык тюльпаном,
Распускаясь ко дню Победы.

Лепестком поиграет алым,
Поокрепнет зелёным стеблем,
И потом неизменно вянет,
Аккурат после дня Победы.

Пиит

Цитата: Пиит от 25 апреля 2024, 19:19... взять ЭлементСправочника, на первом уровне можно заложить Код и Наименование...
Очень важная тема. Много нового. В таких случаях говорят, пропустишь - потом не наверстаешь.

Вернёмся в ТипыДанных и рассмотрим таки подробно Наследование на примере Структуры, и разложение её данных по ТаблицамБД.
Пример простой - Элемент - ТМЦ - Номенклатура - Товар - Ботинок.
Обратите ещё раз внимание, это не Справочники сейчас, это Структуры, к Справочникам вернёмся чуть позже.

Напомню, что каждых Класс этой цепи Инкапсулирован, таким образом, один несчастный Ботинок содержится сразу в пяти ТаблицаБД. Постулат РБД об избыточности я свято храню в памяти, и собственно нет никакой небходимости дублировать данные и лишние гигабайты тоже ни к чему. В каждой ТаблицеБД Ботинок представлен только своей прикладной частью, реквизитами соответствующего этой ТаблицеБД Класса.
Так Элемент будет содержание Код и Наименование, ТМЦ - Цена и ЕдИзм, и так далее, пока собственно сам Ботинок не расскажет нам про свой Цвет и Размер.

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

Давненько мы не заглядывали в фундамент Концепции, пора наконец ввести в оборот новые термины.

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

На этом месте я хотел бы определить ещё одно, новое и в то же время хорошо нам известное понятие, понятие простое, но определить его чётко имхо очень важно для последующего изложения.

Вид Объекта - это Класс, которому принадлежит Объект на последнем уровне наследования, считая от БазовогоКласса. 

Определение как определение, ничего сложного, примеры нам хорошо известны - Вид Сотрудника это Сотрудники, Вид Ботинка это Ботинки. Смысла продолжать этот ряд не вижу. Зачем это определение мне понадобилось в таком виде? А дело в том, что по факту Ботинок принадлежит физически одновременно сразу пяти разным Классам, пять ипостасей имеет этот подкованный Объект. Никто ведь не поспорит, что Ботинок это не Товар или не Элемент, это пять Объектов в одном, но в первую очередь это таки Ботинок Вида Ботинки. Логика, ептыть. И заметьте, в каждом из Классов, он имеет в наличии свой уникальный ID. Это тоже фундаментальное свойство Класса, и повторять его небходимость здесь я уже не буду. Здесь важно остатовиться, и выяснить, что из этого следует.
Имея пять разных ID в разных ТаблицахБД, Ботинок может и даже будет представлен в базе данных Ссылками на все свои запчасти, все свои ID, причём одновременно. О как. Это не шутка и не парадокс, это ссылочная целостность РБД.
Как же на практике так может случиться, что один и тот же Ботинок окажется разными частями в разных местах?
Пожалуйста, выписываем Счет на оплату, работаем в этом случае со Справочником ТМЦ. Какая ведь разница для менеджера, чего мы хотим продать, ОсновноеСредство, Материал или Товар. В такой логике работает менеджер и в v7. А у нас в v78 открывается подбор и мы видим весь список ТМЦ нашего предприятия, выбрали что надо, и таким образом, Документ Счет сохранил в себе список Ссылок на ТМЦ. Идём дальше, приходуем Товары, оператор работает со Справоником Товары, соответсвующая Операция, некий входящий Документ аля ТН, и здесь формируется список Ссылок на Товары. И так далее, вариантов бесконечное множество.
Возникает вопрос, а какой же из этих ID Ботинка является таки главным, определяющим его целиком. Очевидно, последний в Роду, ID его Вида. А чтобы в любом месте, где будет фигурировать наш Ботинок, юзер таки мог понять, что это таки Ботинок, возникает необходимость в новом фундаментальном свойстве Объекта.

Я не хотел бы превращать Род Объекта в двусвязный список, вводить в оборот Потомка, дескать это само собой напрашивается, навигационная симметрия и прочие аргументы. Не хочу. Это вопрос в целом дискуссионный, но имхо, это будет во-первых немного противоречить самой логике Наследования, а во-вторых, это будет избыточно в нашей модели. Я предлагаю ввести в оборот вместо несостоявшегося Потомка новое, необычное, но перспективное понятие, и назвать его Г'еном.

Ген - это фундаментальное свойство Объекта, вертикальное интегрированное понятие, представляет  собой Ссылку на последего потомка в цепи наследования, и назначается для всех предков Объекта одновременно.
Такая вот Видовая ссылка, Родовая метка, которая будет неотъемлимоый частью каждого предка нашего Ботинка. И в ТаблицеБД Товары, и в Номенклатуре, и так до самого БазовогоКласса.
Это и есть тот самый главный ID среди всех ипостасей, главная часть ДНК моего Рода.
Казалось бы, амёба ведь не знала, что станет когда-то Пиитом. Ну да, но я то знаю, что я не амёба, и в моём эмбрионе каждая амёба тоже знает о этом.
Таким образом, на каждом уровне наследования, и юзер, и Машина в первую очередь, будет знать, с кем имеет дело. Так, в списке ТМЦ, если менеджер захочет открыть и посмотреть данные Ботинка, Машина считает Ген Товара, и от Видовой ТаблицыБД начнёт прочтение всех данных Объекта, блокируя по мере продвижения по Родителям к БазовомуКлассу весь его Род.
Как то так.
Пора обозначить уже, что такое ID, и с чем его едят...