|
v7: ЗначениеВСамуюДлиннуюСтрокуБД() в прямом запросе
| ☑ |
0
pofigos
29.05.17
✎
11:45
|
Добрый день!
Прошу помощи: Стоит задача выбрать подчиненные документы по списку документов. SUBSTRING(Подчиненные.PARENTVAL,7,9) в условии отрабатывает довольно долго по 1-му документу. Можно ли как-то выбрать по списку иначе?
|
|
1
Sserj
29.05.17
✎
11:51
|
В условии поставить MDID = ' 0' Тогда попадешь в индекс
|
|
2
pofigos
29.05.17
✎
11:55
|
(1) По условиям иду:
WHERE Подчиненные.PARENTVAL = :ВыбДокумент* AND (Подчиненные.MDID = 0)
Но это условие в запросе для одного определенного документа.
Вопрос больше стоит как выбрать документы из журнала по заданным параметрам и передать 23символьное представление в рекурсию
|
|
3
pofigos
29.05.17
✎
11:57
|
Хотелось бы что-то вроде: WHERE (Подчиненные.PARENTVAL IN(Select Val from #ВыбДокумент*)) AND (Подчиненные.MDID = 0)
|
|
4
Sserj
29.05.17
✎
12:01
|
(3) Тогда сделай ЗначениеВСамуюДлиннуюСтрокуБД для первого попавшегося документа твоего вида возмьи отуда первые 2 символа и будет тебе "2символа" + Val равно PARENTVAL. MDID это не вид а графа отбора 4 символа, для подчинненых равна именно " 0", нужна для того чтобы использовался индекс PARENT (посмотри в файле 1Cv7.DD) он построен по полям MDID,PARENTVAL,CHILDDATE,CHILDTIME,CHILDID, т.е. если не определить поле MDID движок не сможет использовать этот индекс и будет сканировать всю таблицу целиком.
|
|
5
Sserj
29.05.17
✎
12:02
|
(2) не Подчиненные.MDID = 0 а Подчиненные.MDID = ' 0' это текстовое поле.
|
|
6
Sserj
29.05.17
✎
12:05
|
+(4) а про 2 символа не посмотрел, ты же уже укладываешь в полную строку. 2 символа это я использую если с другими таблицами соединяю, а так да, они у тебя уже будут.
|
|
7
МихаилМ
29.05.17
✎
12:10
|
на этом форуме версии выбора подчиненных для 1с77
выкладывали диркс и орефков . на скорость не жаловались
|
|
8
pofigos
29.05.17
✎
12:14
|
(7) спасибо, поищем...
|
|