powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как хранить "переодический" реквизит?
9 сообщений из 9, страница 1 из 1
Как хранить "переодический" реквизит?
    #32192510
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по аналогии с 1С. там есть Переодический реквизит, т.е. на конкретную дату можно получить значение реквизита.
Касательно Access: хотелось бы иметь "переодическое" поле. Кто делал, поделитесь способами реализации.
...
Рейтинг: 0 / 0
Как хранить "переодический" реквизит?
    #32192523
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно хранить историю изменений любой записи в любой таблице?
...
Рейтинг: 0 / 0
Как хранить "переодический" реквизит?
    #32192592
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну может и так... но не любой записи, а записи у которой изменилось определённое поле. (это поле(я) известны заранее).
хотелось бы услышать кто как хранит или как можно хранить.
когда-то я сделал подобное, но реализация самому себе не очень понравилась.
...
Рейтинг: 0 / 0
Как хранить "переодический" реквизит?
    #32192607
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Таблица с полями: дата/время, юзер, имя таблицы, имя поля, ключ записи, старое значение, новое значение.
...
Рейтинг: 0 / 0
Как хранить "переодический" реквизит?
    #32192629
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хранить историю изменений реквизита. Фактически таблица из ключа, ссылки на реквизит, временная метка, значение (значения) реквизита.
В документах вместо ссылки на реквизит - ссылка на таблицу истории.
В справочнике реквизитов изменяемые величины не хранить. Вместо них использовать последнее (стало быть текущее) значение из истории. Хотя можно и ввести денормализацию и хранить ссылку на текущее значение, а то и его само. Это уж как удобнее будет.
Вкратце видимо так. При желании можно наворотить еще кучу дополнительных полей.
...
Рейтинг: 0 / 0
Как хранить "переодический" реквизит?
    #32192665
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Владимир Саныч
Таблица с полями: дата/время, юзер, имя таблицы, имя поля, ключ записи, старое значение, новое значение.

а дальше как?.. как обращаться?

2Лох позорный
В документах вместо ссылки на реквизит - ссылка на таблицу истории.

на название таблицы?


вобщем смысл понятно. теперь вопрос как выбирать данные?
1) создать функцию ЗначениеНаДату(ключЗаписи, дата) и вставлять её во все запросы (имхо медленно будет)
2) запросами ... но как?... т.е. не совсем себе представляю как выбрать значение на дату запросом (select top 1 * from History sort by ChangeDate; ) ? так что ли?
...
Рейтинг: 0 / 0
Как хранить "переодический" реквизит?
    #32192690
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
По-моему, у Лоха это разработано подробнее.
...
Рейтинг: 0 / 0
Как хранить "переодический" реквизит?
    #32192774
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на название таблицы?
На строчку в таблице со значениями.

как выбирать данные?
Исторические данные выбираются простым объединением. Например, шапка документы джойнится с таблицей значений.
Если вместо исторических данных надо подставить данные за конктретную дату - то можно создать вьюху, на вход - дата, на выходе - значения реквизитов на эту дату. Эту вьюху и объединять с шапками документов по ссылке на реквизит.
Кстати, в моем предыдущем посте строка " В документах вместо ссылки на реквизит - ссылка на таблицу истории " ошибочная. Не вместо, а вместе.

запросами ... но как?...
Конечно запросами.
Один запрос отбирает нужные даты для каждого реквизита
Код: plaintext
1.
2.
3.
Select PropertyID, Max(ChangeDate) as Max_ChangeDate
From PropertyValues
Where ChangeDate<prm_Date
Group By PropertyID

Другой - собсно нужные значения
Код: plaintext
1.
2.
3.
Select PropertyValues.* 
From PropertyValues Inner Join [Запрос1]
           On PropertyValues.Property.ID=[Запрос1].PropertyID And
                ProperyeValues.ChangeDate=[Запрос1].Max_ChangeDate
...
Рейтинг: 0 / 0
Как хранить "переодический" реквизит?
    #32192883
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=) спасибо!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как хранить "переодический" реквизит?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]