tanyxa написал(а):
Насчет ключа не совсем согласна, весь HR модуль работает на концепции что каждая запись существует только в каком-то периоде жизни и в ключе всегда дата начала и дата конца.
Я ни разу не видел в сапе, чтобы временно зависимые данные содержали в ключе обе даты.
Все модули с временно зависимыми данными работают только на каком-то периоде жизни, но в ключе обе даты нигде не присутствуют. Наличие одной единственной даты позволяет эту задачу успешно решать.
Самые "матерые" примеры:
ADRC (таблица адресов), в ключе только дата с.
ANLZ (временные данные основного средства), в ключе только дата по.
CSKS (МВЗ), в ключе только дата по.
Так везде, повторюсь.
tanyxa написал(а):
Вариант ПК = год хорош, но с точки зрения пользователя может возникнуть недовольство "почему я должен исправлять имя варианта 3 раза"
Ну тут как с грибком и пенечком. Зато данное решение позволяет править вызываемый отчет и вариант без удаления записи или разбивки старого интервала на новые.
Ну сделайте тогда вот так: в ключе дата с. Тогда при наступлении следующих лет ничего менять не придется.
В программе, внутри которой происходит submit, поиск нужной строки осуществляться мог бы через read первой записи во внутренней таблице комбинаций "год - отчет - вариант", предварительно считанной и отсортированной по полю "Дата с" по убыванию, при этом "дата с" должна быть <= году запуска. При таком раскладе хотя бы нет пересечения интервалов, как в изначально предложенном Вами варианте.