Имя: Пароль:
1C
1C 7.7
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) спасибо, поищем...
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой