Имя: Пароль:
1C
1С v8
Как не выбирать данные по условию...?
0 mikecool
 
30.05.14
09:58
Пакетный запрос
1 - выборка из документа
2 - выборка из регистра по ссылкам из первого запроса

что хочу - если нет ссылок, то и ничего не выбирать из базы, пробую:
1 - выборка из документа
2 - выборка количества ссылок КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Ссылка)
3 - выборка из регистра по ссылкам из первого запроса, где в параметрах ВТ типа что то
выбор когда (результат запроса 2) = 0 тогда ложь
иначе (измерение1, измерение2) В ( ... )
конец
написал, но не видит КОНЕЦ в этом тексте
видимо это не проканает в выборе, может есть другой вариант?
1 mikecool
 
30.05.14
10:02
или пох на такую оптимизацию? все равно ВТ будет строиться и займет по времени одинаково?
2 SeraFim
 
30.05.14
10:08
Голосовалку!
1. Пох! Если и будет выигрыш, то ничтожно мал.
Наверняка не знаю, но возможно что подобная оптимизация идет на уровне платформы/субд.
3 kosts
 
30.05.14
10:10
(0) С такой оптимизацией еще медленнее будет работать. Дергай сразу регистр. Только проиндексируй нужные поля.
Данная схема возможно нужна в тех редких случаях, когда регистры огромные, а ссылок на самом деле чаще не бывает чем бывает...
4 mikecool
 
30.05.14
10:11
пока сделал так:
[code]
ВЫБРАТЬ
    регистр.Измерение1,
    регистр.Измерение2,
    регистр.Измерение3
ПОМЕСТИТЬ ВТ
ИЗ
    РегистрНакопления.Регистр.Обороты(
            НАЧАЛОПЕРИОДА(&ДатаПараметр, ДЕНЬ),
            КОНЕЦПЕРИОДА(&ДатаПараметр, ДЕНЬ),
            ,
            ВЫБОР
                КОГДА 0 В
                        (ВЫБРАТЬ
                            ВТ_КоличествоСсылок.КоличествоСсылок
                        ИЗ
                            ВТ_КоличествоСсылок КАК ВТ_КоличествоСсылок)
                    ТОГДА (Измерение1, Измерение2, Измерение3, Измерение4) В
                            (ВЫБРАТЬ
                                НЕОПРЕДЕЛЕНО,
                                НЕОПРЕДЕЛЕНО,
                                НЕОПРЕДЕЛЕНО,
                                НЕОПРЕДЕЛЕНО)
                ИНАЧЕ (Измерение1, Измерение2, Измерение3, Измерение4) В
                        (ВЫБРАТЬ
                            ВТ_ДанныеДокумента.Поле1,
                            ВТ_ДанныеДокумента.Поле2,
                            ВТ_ДанныеДокумента.Поле3,
                            ВТ_ДанныеДокумента.Поле4
                        ИЗ
                            ВТ_ДанныеДокумента КАК ВТ_ДанныеДокумента)
            КОНЕЦ) КАК регистр
[/code]
(3) регистр оборотный, конечно фильтр по дате работает, но там хз сколько получится записей по жизни
5 mikecool
 
30.05.14
10:12
хотя - так и так - отбор записей будет происходить
так что - скорее получился спортивный интерес )))
6 mikecool
 
30.05.14
10:15
в общем - всем спасибо )
AdBlock убивает бесплатный контент. 1Сергей