Цитата:
Сообщение от
kashperuk
Но мне в данном случае тоже больше нравится первый вариант.
Своего рода Date-Effective реквизиты.
Ни в коем случае. Поработай с 1С.
Во-первых, слишком мала точность таких реквизитов.
Зависимость только от даты сильно сокращает область применения таких реквизитов.
Если подумать чуть-чуть, то следующий шаг Date-Time-Effective реквизиты.
Но и у такого подхода тоже есть масса недостатков.
Что будет, если транзакция длится больше секунды?
Если часть реквизитов поменялась в одну секудну, а часть в другую секунду, а сам документ (в рамках той же транзакции) вообще через минуту?
И что будет, если таких документов, меняющих такие реквизиты, несколько?
Если подумать еще немножно, то придешь к мысли привязывать такой реквизит к dateTime И одновременно документу-операции (так сделала 1С). Но тут начинаются сложности уже с быстрыми транзакциями - что делать, если несколько документов обработались в одну секунду? Какое значение реквизита считать правильным за пределами документа, если в одну секунду сменилось несколько значений? Для обхода это проблемы возникают некие внутренние идентификаторы, которые не понятны пользователям, дебильные запреты считывать периодический реквизит за пределами документа и т.п. Но этот путь приводит к логическому тупику (как и понятие Точка актуальности).
Если же подумать хорошенько, то снова приходишь к мысли, что каждый документ-операция должен просто делать слепок всех необходимых ему данных. Что и делается в большинстве мест в Аксапте (за исключением прежде всего локализации). А мапы и объектно-ориентированное программирование должно помочь разобраться с массой полей в таблицах и в коде.
В общем, подумай хорошенько над своими желаниями - они могут исполнится.
Не надо периодических реквизитов.
Пусть будет как сейчас.
А для полного счастья нужны объектно-ориентированные группы полей в таблицах.