ias_admin пишет:Задача такая - выгружать срез актуальных документов проекта на дату. При этом выгружать только те документы, которые по состоянию на эту дату находились в статусе "в архиве". Дополнительно требуется формировать отчетность о состоянии проекта.
Актуальный документ это кто? Кто находится в бумажном обороте или тот который послужил электронным исходником для него? Соедините две ветки обсуждения. Мне кажется у вас есть шанс построить правильную систему. Многие игнорируют это, считают излишним. А мне кажется, что разделение электронных и бумажных документов единственно правильный путь.
Скажу вам честно, версии TDMS не задумывались как самостоятельные объекты. История изменений - да, но они не самостоятельны. Хотя у версии объекта есть необходимые вам даты и статус, я бы не стал делать на это ставку.
По идее ваш срез - это выборка, которая должна искать данные в версиях объектов. Чтобы искать в версиях включите любое доступное свойство версии в запрос. Результатом запроса будут именно версии объектов, включая неактивные.
Сможем ли мы сейчас построить такой запрос? Без дополнительных усилий не сможем. Дело в том, что в редакторе запросов нет возможности отдельно указывать какой идентификатор нам нужен - версии или объекта. Перейдя к поиску по версиям, мы в автоматически начинаем группировать хэндлы версий, а нужна группировка по объектам для того чтобы выполнить запрос типа HAVING (MAX). Так что без шаманства тут никак. Я попросил коллегу выполнить этот трюк (сам я боюсь). Как только ему удастся это сделать, отпишет.