Имя: Пароль:
1C
1С v8
как можно задать отбор по собственным полям запроса
0 LivingStar
 
13.08.12
08:36
В запросе при помощи конструкции ВЫБРАТЬ задал несколько полей со значениями да, нет. Как по ним можно устанавливать фильтр? В условии их не выбрать...

ВЫБРАТЬ
   Договоры.Владелец,
   Договоры.Ссылка,
   Договоры.УслугаНаселению,
   Договоры.ДатаОкончания,
   КвитанцииАбонентов.НомерКвитанции,
   ВЫБОР
       КОГДА КвитанцииАбонентов.НастройкаПечати = "02 Уведомление_нет_договора_на_ТО" ТОГДА
           "Да"
       ИНАЧЕ
           "Нет"
   КОНЕЦ КАК Нет_договора_на_ТО,
   ВЫБОР
       КОГДА КвитанцииАбонентов.НастройкаПечати = "04 Уведомление_Нет_договора_на_ТО_Стимул" ТОГДА
           "Да"
       ИНАЧЕ
           "Нет"
   КОНЕЦ КАК Нет_договора_на_ТО_Стимул,
   КвитанцииАбонентов.НастройкаПечати
ИЗ
   Справочник.Договоры КАК Договоры
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КвитанцииАбонентов КАК КвитанцииАбонентов
       ПО Договоры.Владелец = КвитанцииАбонентов.Абонент
ГДЕ
   (Договоры.Родитель.УслугаНаселению.Родитель <> &ВДГО
           ИЛИ Договоры.ДатаОкончания < &ДатаОкончанияДоговора
               И Договоры.ДатаОкончания <> ДАТАВРЕМЯ(1, 1, 1))
1 Гефест
 
13.08.12
08:38
руками в условие перепиши
2 Asmody
 
13.08.12
08:38
полностью повторить ВЫБОР в условии ГДЕ
3 Rie
 
13.08.12
08:39
(0) вариант 1:
ВЫБРАТЬ
  // нужные поля
ИЗ
  (
  // тут твой запрос
  ) КАК Подзапрос
ГДЕ
  Подзапрос.Нет_договора_на_ТО

Вариант 2:
// тут твой запрос
   И (ВЫБОР ... КОНЕЦ)
4 Asmody
 
13.08.12
08:39
и вместо "да"/"нет" существуют Истина/Ложь
5 Homer
 
13.08.12
08:39
через пакеты
6 ILM
 
гуру
13.08.12
08:40
Сначала выбирай Ссылки в массив где условия совпадают, потом отбор "Ссылка В" массиве из значений уже выгруженной колонки. Потом отбор применить это если в форме.
7 Asmody
 
13.08.12
08:41
за хардкодинг в запросах надо, конечно, убивать…
8 ILM
 
гуру
13.08.12
08:44
(7) Это да
9 LivingStar
 
13.08.12
08:44
(2) что это даст?
10 LivingStar
 
13.08.12
08:47
(2) вот так повторил, но пишет ошибку

ВЫБРАТЬ
   Договоры.Владелец,
   Договоры.Ссылка,
   Договоры.УслугаНаселению,
   Договоры.ДатаОкончания,
   КвитанцииАбонентов.НомерКвитанции,
   ВЫБОР
       КОГДА КвитанцииАбонентов.НастройкаПечати = "02 Уведомление_нет_договора_на_ТО"
           ТОГДА "Да"
       ИНАЧЕ "Нет"
   КОНЕЦ КАК Нет_договора_на_ТО,
   ВЫБОР
       КОГДА КвитанцииАбонентов.НастройкаПечати = "04 Уведомление_Нет_договора_на_ТО_Стимул"
           ТОГДА "Да"
       ИНАЧЕ "Нет"
   КОНЕЦ КАК Нет_договора_на_ТО_Стимул,
   КвитанцииАбонентов.НастройкаПечати
ИЗ
   Справочник.Договоры КАК Договоры
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КвитанцииАбонентов КАК КвитанцииАбонентов
       ПО Договоры.Владелец = КвитанцииАбонентов.Абонент
ГДЕ
   (Договоры.Родитель.УслугаНаселению.Родитель <> &ВДГО
           ИЛИ Договоры.ДатаОкончания < &ДатаОкончанияДоговора
               И Договоры.ДатаОкончания <> ДАТАВРЕМЯ(1, 1, 1))
   И ВЫБОР
       КОГДА КвитанцииАбонентов.НастройкаПечати = "02 Уведомление_нет_договора_на_ТО"
           ТОГДА "Да"
       ИНАЧЕ "Нет"
   КОНЕЦ
   И ВЫБОР
       КОГДА КвитанцииАбонентов.НастройкаПечати = "04 Уведомление_Нет_договора_на_ТО_Стимул"
           ТОГДА "Да"
       ИНАЧЕ "Нет"
   КОНЕЦ
11 Asmody
 
13.08.12
08:47
(9) это ничего не даст, так НАДО делать, если хочешь отбирать по значению выражения
12 Asmody
 
13.08.12
08:48
(10) там еще был ниже комментарий про Истина/Ложь
13 Гефест
 
13.08.12
08:49
(10) и где там у тебя сравнение?
14 Asmody
 
13.08.12
08:51
оно, конечно, не мешало бы уточнить, какой отбор и какое условие автор имеет ввиду
15 lapinio
 
13.08.12
08:54
1) Пакетный запрос
2)Произвольное условие или условия Подобно
и уточни какой именно отбор
16 Светлый Гений
 
13.08.12
09:00
(10)Надо сначала разобраться, как строятся условия в запросах... литературку почитать, что ли
Закон Брукера: Даже маленькая практика стоит большой теории.