Faq registry active

Материал из ANT-Inform documentation
Версия от 16:52, 26 мая 2015; Hubbitus (обсуждение | вклад) (Initial page (SUPPORT-8575))

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Актуальность связей в регистре

Проблема

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

Подобное относится также к другим связям, например РегистрСведений.УзлыУчетаПлощадок, РегистрСведений.УстановленноеИзмерительноеОборудование (реквизит Установлено), но далее мы сосредоточимся на описании прежде всего на примере ПлощадкиПоДоговору как самого важного и характерного.

Применяемая эвристика

Рассматривается как воркараунд.

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

Для выборки текущей, актуальной записи анализируются следующие параметры:

  1. Потребители помеченные удалёнными рассматриваются в последнюю очередь (Договор.ОсновнойДоговор.Владелец.ПометкаУдаления)
  2. Приоритет по статусу, выбирается с наибольшим:
    1. «Расторгнут» — 0
    2. «Завершенный» — 1
    3. «Плановый» — 2
    4. «Предварительный» — 3
    5. «В стадии заключения» — 3
    6. Остальные — 10
  3. Затем идет сортировка по дате окончания договора — предпочтение тем, у кого она больше.
  4. По дате начала договора (например, если дата окончания не указана).
  5. Период (применяется только для связи ТП с площадкой) - последняя по времени запись.

Используются всегда все признаки. Таким образом, расторгнутый договор будет проигнорирован, даже если дата окончания его больше, чем у действующего. Если есть 2 договора с одинаковым статусом (например, действующие основной и дополнительное соглашение, или ошибочно 2) — возьмется тот, у которого дата окончания больше. Если в этом случае даты окончания пустые или равны — тот, у которого дата начала больше.