v7: ЗначениеВСамуюДлиннуюСтрокуБД() в прямом запросе #798207


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

В этой группе 1С