Имя: Пароль:
1C
 
Запрос в качестве поля запроса
0 first_may
 
15.01.10
15:36
Добрый день!

Скажите пожалуйста, можно ли написать запрос в консоли запросов (1С:Предприятие 8.1):

ВЫБРАТЬ
Номенклатура.Ссылка,
(ВЫБРАТЬ
  ПЕРВЫЕ 1 Адр.Наименование
 ИЗ
  РегистрСведений.АдресныйКлассификатор КАК Адр) КАК ОднаЗапись
ИЗ
   Справочник.Номенклатура КАК Номенклатура

Иными словами, у меня не получается использовать запрос в качестве поля запроса?
1 Господин ПЖ
 
15.01.10
15:40
хорошие шишки
2 lxs
 
15.01.10
15:41
"охренеть"©
3 mikecool
 
15.01.10
15:42
(0) нет, привязывай подзапросы во from
4 mikecool
 
15.01.10
15:42
(1,2) чего вы? нормальное желание после анси-скл
5 Defender aka LINN
 
15.01.10
15:44
(4) Ничего нормального после чтения документации
6 mikecool
 
15.01.10
15:45
(5) я не говорю, что этого нельзя сделать
это более удобно и читаемо
7 Господин ПЖ
 
15.01.10
15:48
(4) а у меня есть нормальное желание после 1С-SQL писать ВЫБРАТЬ ПЕРВЫЕ 1 в QA... однако я сначала читаю документы
8 Defender aka LINN
 
15.01.10
15:49
(6) О_о Ты можешь сделать (0) в 1С? Продемонстируй (ТЧ не в счет)
9 first_may
 
15.01.10
15:52
я знаю, что в скл такое можно сделать, а здесь почему то ругается, может я не так его написал?
10 rsv
 
15.01.10
15:53
(9) Нельзя. Также не ищи round , rtrim и ltrim.
11 Лефмихалыч
 
15.01.10
15:56
(0) вложенные запросы можно использовать только в источниках и условиях. Живи с этим
12 first_may
 
15.01.10
16:03
а такую конструкцию никак нельзя реализовать?
13 Jaap Vduul
 
15.01.10
16:07
(12)left join
14 МихаилМ
 
15.01.10
16:23
outer join
15 first_may
 
15.01.10
16:56
а пример моего запроса можно увидеть с помощью left join?
16 73
 
15.01.10
17:09
(15) Поскольку твоя ОднаЗапись всегда одна...

ВЫБРАТЬ
   Номенклатура.Ссылка,
   ОднаЗапись.Наименование
ИЗ
   Справочник.Номенклатура КАК Номенклатура,
   (ВЫБРАТЬ ПЕРВЫЕ 1
       Адр.Наименование КАК Наименование
   ИЗ
       РегистрСведений.АдресныйКлассификатор КАК Адр) КАК ОднаЗапись
17 73
 
15.01.10
17:09
(16)+ То можно и без Join...
18 first_may
 
15.01.10
17:13
понял, спасибо
19 first_may
 
15.01.10
17:19
еще в догонку вопрос, а можно передавать параметр из основного запроса в этот второй запрос, который получает одну запись, то есть написать что то вроде следующего:

ВЫБРАТЬ
   Номенклатура.Ссылка,
   ОднаЗапись.Наименование
ИЗ
   Справочник.Номенклатура КАК Номенклатура,
  (ВЫБРАТЬ ПЕРВЫЕ 1
       Адр.Наименование КАК Наименование
   ИЗ
       РегистрСведений.АдресныйКлассификатор КАК Адр
   ГДЕ Адр.Ссылка = Номенклатура.Адрес) КАК ОднаЗапись
20 mikecool
 
15.01.10
17:22
(8) ненене, я имел ввиду (3)
21 hhhh
 
15.01.10
17:30
(19) тогда это классический Join.
22 first_may
 
15.01.10
17:43
то есть, что то вот в этом:

ВЫБРАТЬ
   Номенклатура.Ссылка,
   ОднаЗапись.Наименование
ИЗ
   Справочник.Номенклатура КАК Номенклатура
   ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 1
         Адр.Наименование КАК Наименование
     ИЗ
         РегистрСведений.АдресныйКлассификатор) КАК Адр
  ПО Номенклатура.Адрес = Адр.Ссылка
23 first_may
 
15.01.10
17:44
но так у меня не получилось то что хотелось :)
24 kiruha
 
15.01.10
17:48
Используй Максимум
25 73
 
15.01.10
17:50
На примерчик:
ВЫБРАТЬ
   Контрагенты.Ссылка,
   АдресаДоставки.Ссылка КАК Ссылка1
ИЗ
   Справочник.Контрагенты КАК Контрагенты
       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.АдресаДоставки КАК АдресаДоставки
       ПО (АдресаДоставки.Владелец = Контрагенты.Ссылка)
           И (АдресаДоставки.Ссылка В
               (ВЫБРАТЬ ПЕРВЫЕ 1
                   Справочник.АдресаДоставки.Ссылка
               ИЗ
                   Справочник.АдресаДоставки
               ГДЕ
                   Справочник.АдресаДоставки.Владелец = Контрагенты.Ссылка))
Основная теорема систематики: Новые системы плодят новые проблемы.