|
Произвольный запрос в динамическом списке справочника | ☑ | ||
---|---|---|---|---|
0
Drac0
02.03.12
✎
12:26
|
День добрый. Пытаюсь сделать форму подбора для справочника. В список должны попадать элементы справочника, по которым либо нет записей в определенном периодическом регистре, либо значение в этом регистре равно конкретному числу.
Попытался наваять, но работает смешно: если сделать запись в регистре по одному объекту, то он убирается из итогового списка, а остальные остаются для подбора. Если сделать два и больше, то пропадают все :) Не подскажите, где можно посмотреть решение подобной задачи? Или где ознакомится с материалом? [CODE] ВЫБРАТЬ СправочникАвтомобили.Ссылка, СправочникАвтомобили.ВерсияДанных, СправочникАвтомобили.ПометкаУдаления, СправочникАвтомобили.Предопределенный, СправочникАвтомобили.Родитель, СправочникАвтомобили.ЭтоГруппа, СправочникАвтомобили.Код, СправочникАвтомобили.Наименование, СправочникАвтомобили.Автор, СправочникАвтомобили.Дата, СправочникАвтомобили.Модель, СправочникАвтомобили.VIN, СправочникАвтомобили.ТипТС, СправочникАвтомобили.КатегорияТС, СправочникАвтомобили.ГодВыпуска, СправочникАвтомобили.НомерДвигателя, СправочникАвтомобили.НомерШасси, СправочникАвтомобили.НомерКузова, СправочникАвтомобили.ЦветКузова, СправочникАвтомобили.Мощность, СправочникАвтомобили.ТипДвигателя, СправочникАвтомобили.ПТС, СправочникАвтомобили.ДатаПТС, СправочникАвтомобили.Комментарий, СправочникАвтомобили.РабочиОбъем, СправочникАвтомобили.Марка, СправочникАвтомобили.ТипАвтомобиля, СправочникАвтомобили.Состояние, СправочникАвтомобили.ИзЗаказа, СправочникАвтомобили.Обшивка, СправочникАвтомобили.ОрганПТС, СправочникАвтомобили.ГосНомер, СправочникАвтомобили.СписокОпций.( Ссылка, НомерСтроки, Опция, Стандарт, Цена ) ИЗ Справочник.Автомобили КАК СправочникАвтомобили Левое СОЕДИНЕНИЕ (ВЫБРАТЬ ОсмотрТССрезПоследних.Автомобиль.Ссылка КАК АвтомобильСсылка ИЗ РегистрСведений.ОсмотрТС.СрезПоследних КАК ОсмотрТССрезПоследних ГДЕ (ОсмотрТССрезПоследних.Статус = 1 ИЛИ ОсмотрТССрезПоследних.Статус = 2)) КАК ВложенныйЗапрос ПО СправочникАвтомобили.Ссылка <> ВложенныйЗапрос.АвтомобильСсылка.Ссылка [/CODE] |
|||
1
Drac0
02.03.12
✎
12:31
|
чую тут та еще фигня у меня написана, надо разгрести эту кашу
|
|||
2
hhhh
02.03.12
✎
12:37
|
(0) вы просто неправильно понимаете СрезПоследних. Там как сделано: сначала делается срез, остается только последняя запись и у нее проверяются ваши статусы.
А вы думаете наоборот, что сначала проверяется статус =1 или 2, а потом берется срез последних. ТО есть вы думаете, что снизу вверх запрос фигачит. Поэтому получается смешной результат. |
|||
3
Drac0
02.03.12
✎
12:39
|
(2)Да, нет. Думаю так, как вы говорите. Делается срез, получаю ресурсы и по значению этого ресурса уже отсеиваю. Разве не так?
|
|||
4
Drac0
02.03.12
✎
12:43
|
(2) Но ИМХО, у меня вообще сильно все неправильно. Думаю, надо для всех автомобилей получить значение в регистре в вычисляемую колонку, которое может быть 0, 1, 2 или NULL, а потом уже условие на значение в этой колонке
|
|||
5
hhhh
02.03.12
✎
12:49
|
(3) ну если у автомобиля последний ресурс был 0, он у вас вообще не попадет в отчет. Или вам так и надо.
|
|||
6
Mickeleangelo
02.03.12
✎
12:55
|
ПО СправочникАвтомобили.Ссылка <> ВложенныйЗапрос.АвтомобильСсылка.Ссылка
Надо наоборот. Сначала соединять по равенству, а потом фильтровать по статусам. |
|||
7
Drac0
02.03.12
✎
13:15
|
(6) Это я уже понял. Исправляю.
|
|||
8
Drac0
02.03.12
✎
13:19
|
Текущий вариант:
ВЫБРАТЬ СправочникАвтомобили.Ссылка, СправочникАвтомобили.VIN, СправочникАвтомобили.ИзЗаказа, ВложенныйЗапрос.Статус ИЗ Справочник.Автомобили КАК СправочникАвтомобили ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ОсмотрТССрезПоследних.Статус КАК Статус, ОсмотрТССрезПоследних.Автомобиль.Ссылка КАК АвтомобильСсылка ИЗ РегистрСведений.ОсмотрТС.СрезПоследних КАК ОсмотрТССрезПоследних) КАК ВложенныйЗапрос ПО СправочникАвтомобили.Ссылка = ВложенныйЗапрос.АвтомобильСсылка ГДЕ ВложенныйЗапрос.Статус = 0 ИЛИ ВложенныйЗапрос.Статус = NULL Теперь список пуст всегда. Дальше надо разбираться... |
|||
9
Drac0
02.03.12
✎
13:20
|
Кстати, NULL можно использовать в этом случае?
|
|||
10
Drac0
02.03.12
✎
13:30
|
Тэкс, элементы с 0 попадают, а вот NULL не учитываются.
|
|||
11
Drac0
02.03.12
✎
13:38
|
Хех, надо было есть NULL. И все работает :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |