Возможность соединения иерархии и балансовой группы

Применение ЛЭРСа энергоснабжающими организациями часто ставит перед пользователями задачу контроля балансов на всех уровнях.
И в этом случае, если настраивается иерархия, то часто она отражает транспорт ресурса, в моей практике получается так. Т.е. отражает структуру распределения ресурса, что и частями параллельно отражается и в балансовых группах.
Получается двойная работа при описании, но самое не удобное – это серьёзные усилия по обеспечению синхронности описания балансовых групп и иерархии в процессе эксплуатации. Тут кроется источник постоянных ошибок персонала. Кроме того, оказалось визуально более понятно строить отчет по балансовой группе прямо из иерархии. Понимая ее положение в транспортной сети.
Отсюда предложение: доработать иерархию, чтобы смотреть потребление балансовой группы по узлу иерархии непосредственно из иерархии.
Т.е. я не предлагаю убрать балансовые группы, а дополнительно реализовать возможность создания балансовой группы прямо в иерархии. Для этого можно сделать соответствующую опцию в свойствах узла иерархии. И добавить назначение головного узла

Вот у нас есть узел иерархии, в который входят объекты, другие узлы со своими объектами, и так далее. Каким образом должна строится балансовая группа? Что является головными объектами, а что объектами группы?

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

Технически тут проблем особо нет. Балансовая группа - понятие виртуальное и может строится “на лету”, учитывая иерархию объектов. Но вот правила, по которым это нужно сделать, я не совсем понимаю.

Может ваше предложение и разумно, но я не понял описание. Думаю беда в терминологии. В документации есть только “корневая группа” и “подгруппа”. Понятие узла к вашей реализации я не смог применить, т.к. ветвление идет не по объекту. Вы просто добавляете в группу/подгруппу дочернюю подгруппу.

Поэтому если нужно для обсуждения все таки понять вашу модель - опишите что такое “члены узла”, “дочерние узлы” и “иерархические узлы”

Опишу, как я вижу изменения.

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

" Головные точки учета - редактируемый список точек учета считающихся головными в балансовой группе. Может быть пустым или содержать одну или несколько точек учета.

*Точки учета группы - редактируемый список точек учета считающихся дочерними по отношению к головным. Может быть пустым или содержать одну или несколько точек учета.*"

Ниже буду использовать названия головные объекты и дочерние объекты.

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

Поэтому. Все объекты группы/подгруппы - дочерние объекты. Головными объектами для подгруппы нужно назначить объект или объекты из родительской группы/подгруппы (это часть изменения).

Надеюсь. Сейчас понятно.

Ну и при просмотре потребления по группе если есть дочерние группы, то хочется видеть баланс и по дочерним группам

Описание очень сложное, так что понятно не до конца.

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

Почти все верно.

Дочерние это объекты группы в иерархии, как например, тут: для группы ТНС-1 я показал дочерние объекты

А головной/головные объекты в этом же интерфейсе нужно выбрать из вышестоящей группы иерархии

Коллеги, а тема эта в состоянии ожидания?

Да, мы её упустили. Пожалуйста, проголосуйте, чтобы она при сортировке поднималась наверх. В принципе, после пояснений от @Kvashnin стало всё достаточно понятно, но хотелось бы, чтобы все участники, для которых подходит функция, описанная здесь, об этом сказали.

@Kvashnin , всё таки, нужно ещё одно уточнение. Вы писали, что дочерними объектами балансовой группы должны стать все объекты в иерархии. Относится ли это к объектам, которые принадлежат дочерним иерархическим группам?

Например, есть иерархия

Узел_1
|
----Головной_объект_1
|
----Головной_объект_2
|
----Дочерний_узел_1
    |
    ----Дочерний_объект_1
    |
    ----Дочерний_объект_2
    |
    ----Дочерний_узел_1_1
        |
        ----Дочерний_объект_1_1
        |
        ----Дочерний_объект_1_2
  

И мы просматриваем балансовую группу для Дочерний_узел_1. Должны ли в дочерние объекты группы попасть объекты только Дочерний_узел_1, или в них нужно включить ещё и объекты из Дочерний_узел_1_1, и далее, если такие есть?

1 лайк

Не могу однозначно ответить. Я не знаю какой смысл вы вкладываете в глагол “включить“

Нужно сделать так, что бы корректно считалось балансовое уравнение.

И как я писал ранее

Я ответил?

Да обычный смысл. Я привёл пример, есть два варианта балансовой группы.

Первый

Головные объекты

  • Головной_объект_1
  • Головной_объект_2

Объекты группы

  • Дочерний_объект_1
  • Дочерний_объект_2

То есть, в объекты группы включены только объекты иерархии на первом уровне Дочерний_узел_1

Первый

Головные объекты

  • Головной_объект_1
  • Головной_объект_2

Объекты группы

  • Дочерний_объект_1
  • Дочерний_объект_2
  • Дочерний_объект_1_1
  • Дочерний_объект_1_2

То есть, в объекты группы включены объекты всех вложенных в Дочерний_узел_1 объектов.

Я не совсем понимаю, что именно вы спрашиваете.
В первом случае мне понятно, как формируется балансовое уравнение.

Во втором случае, насколько я понимаю, должна появиться вторая балансовая группа с головным объектом Дочерний_объект_1 и объектами группы Дочерний_объект_1_1 и Дочерний_объект_1_2.

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

  • первое — с головными объектами Головной_объект_1 и Головной_объект_2;

  • второе — с головным объектом Дочерний_объект_1.

Поясните, пожалуйста, ваш вопрос. Похоже, для меня это не “обычный смысл“