Медицинская база («родители»)
«Родитель» - ещё один 1С-овский термин, который я не стала переименовывать. Это всего лишь, вот это:
… т.е ссылка но верхний узел, к которому прицеплен элемент. С таким же успехом можно назвать 1) группой (потому, что это довольно частое название) 2) ветвью (потому что справочник имеет так называемую древовидную структуру, а значит, в ней есть «корень», «ветви» и «листья»). 3) узлом (но ведь узел же!!!).
Но я сомневаюсь, что от любого из этих переименований кому-то станет легче. Потому пусть будет «родитель», порождающий «дочерние» элементы.
При корректировке это так выгладит:
Стандартного «родителя» можно менять для переноса элемента в другую группу. А вот два других «родителя» (Родитель1, Родитель2) проставляются автоматически и служат для, по возможности, быстрых выборок информации.
Мне достаточно двух страниц информации чтобы мне стало неудобно. Машина читает на порядки быстрее, но и для неё некоторые вещи неудобны. Эти древовидные структуры для неё, например, не особо удобны. Если мне нужны все точки, у которых один общий «родитель», то никаких проблем. А вот выбрать вообще все точки массажа, разбросанные по разным «веткам» этого справочника задача нетривиальная с чисто технической точки зрения. Но у меня были большие подозрения, что придётся решать эту задачу (точнее эти задачи).
Так и случилось. У меня «вдруг» возникла идея рассовать точки по скелету. Но для этого мне надо выбрать все кости, которые в этом скелете есть. А это вот такое:
… и дальше вниз там куча костей, рассованных по всевозможным группам. Благодаря придуманным и автоматически заполняемым полям Родитель1, Родитель2 у меня нет никаких проблем с выборкой этой информации. В отчете с костями и точками я просто засовываю в условие выборки конкретные коды:
Не очень удачный пример потому, что в выборке у меня коды точек, а на картинке выше коды скелета. Но суть от этого не меняется.
Засовывание таких вещей намертво в текст (а не в какие-то настройки) строго говоря не корректно. Но есть корректно, а есть целесообразно. Это будет работать если кому-то не придёт в голову зачем-то менять (???) внутренние машинные коды строк справочников, которые проставляются автоматически и обычно нигде не используются. Так вот: во- первых не надо менять эти коды. Если нужен какой-то собственный код, то его можно засунуть в характеристики:
Во-вторых, у меня только два поля «родителей». Теоретически в справочник объектов можно вводить что угодно и как угодно. Практически неудобство выборки вносит свои ограничения. Поля-то я сделала. Но вот в справочнике у меня было вначале так:
Организм
----- Органы и системы
---------Скелет
---------Мышцы
--------- и т.д
----- Точечный массаж
---------Точки
---------Каналы
---------Сосуды.
Но быстрая выборка все тех же точек, находящихся на третьем уровне (Органы->Точечный массаж->Точки) невозможна. Можно было завести «Родитель3», но не так серьёзен повод. Проще было сделать так:
… Вроде бы принципиально хуже не стало хотя и точечный массаж можно засунуть в группу «Организм» (потому что точки на теле) и уж тем более все эти кости и мышцы. Не в лекарства же! Но чисто программная специфика, механизм выборки заставил чуть-чуть подстроиться по него (без серьёзного ущерба для логики, вроде бы).
В справочник объектов можно вводить что угодно и как угодно, но если может потребоваться выборка всех элементов нижних уровней такой узел не должен быть глубже второго уровня.
|