Задача следующая: необходимо при работе с классом "РасшЖурнал" добавить в ТП признак "Документ имеет подчинёные".
Для этого использую след. выражение:
МД = СоздатьОбъект("MetaDataWork");
ВремЗнач = Лев(МД.ЗначениеВСамуюДлиннуюСтрокуБД(СоздатьОбъект("Документ.МойДок")),6);
РасшЖурнал.ДобавитьПроизвольнуюГрафу("НПД", "Наличие ПД", , , "
|CASE
| WHEN Exists(Select TOP 1 Ссылки.ROW_ID From
| _1SCRDOC as Ссылки (NOLOCK INDEX=PARENT)
| WHERE Ссылки.MDID=0 AND Ссылки.ParentVal = '"+ВремЗнач+"'+Жур.IDDoc AND
| Ссылки.Child_Date_Time_IDDoc >= Жур.Date_Time_IDDoc)
| THEN 1 ELSE 0 END
|", "");
Сиквельный запрос джойнится с журналом документов в классе (Жур)
Так как имеется индекс, всё работает очень быстро, но, к сожалению, только для одного вида документов.
Переделав запрос в:
РасшЖурнал.ДобавитьПроизвольнуюГрафу("НПД", "Наличие ПД", , , "
|CASE
| WHEN Exists(Select TOP 1 Ссылки.ROW_ID From
| _1SCRDOC as Ссылки (NOLOCK INDEX=PARENT)
| WHERE Ссылки.MDID=0 AND SUBSTRING(Ссылки.ParentVal,7,9) = Жур.IDDoc AND
| Ссылки.Child_Date_Time_IDDoc >= Жур.Date_Time_IDDoc)
| THEN 1 ELSE 0 END
|", "");
Мы получаем рабочий запрос для любых документов НО! лишаемся индекса
И получаем неприемлимую скорость
Теперь вопрос: как получить полный идентификатор документа из БД имея только строку табл. журнала?
Или есть к-либо другие способы решения задачи?