Имя: Пароль:
1C
1С v8
Как переделать запрос для 1С?
0 vectorov
 
06.07.12
20:37
Доброго дня, всем.
Есть такой несложный запрос
ВЫБРАТЬ
   Контрагенты.Ссылка,
   ВложенныйЗапрос.Договор
ИЗ
   Справочник.Контрагенты КАК Контрагенты
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 1
           ДоговорыКонтрагентов.Ссылка КАК Договор,
           ДоговорыКонтрагентов.Владелец КАК Контрагент
       ИЗ
           Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
       ГДЕ Контрагенты.Ссылка = ДоговорыКонтрагентов.Контрагент) КАК ВложенныйЗапрос
       ПО Контрагенты.Ссылка = ВложенныйЗапрос.Контрагент

Не сложный он для SQL, но для 1С нельзя передать данные внешнего запроса во внутренний.
Как я понимаю проблема стандартная, подскажите кто решал, а то в инете не нашел и сам не могу придумать?
1 braslavets
 
06.07.12
20:44
Какая цель стоит?
2 probably
 
06.07.12
20:45
Я один не понял в чем проблема и сложность?
3 vectorov
 
06.07.12
20:48
Цель - выбрать из всех договоров по контрагенту только один любой.
В том что ругается на условие
ГДЕ Контрагенты.Ссылка = ДоговорыКонтрагентов.Контрагент

поле "Контрагенты.Ссылка" не найдено.
4 Пеппи
 
06.07.12
20:52
убери это условие, будет ругаться?
5 vectorov
 
06.07.12
20:54
(4) не будет.
Но итоговый результат мне не нужен.
6 ChAlex
 
06.07.12
20:58
Вообщето нужно
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
          Максимум(ДоговорыКонтрагентов.Ссылка) КАК Договор,

           ДоговорыКонтрагентов.Владелец КАК Контрагент
       ИЗ
           Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов СГРУППИРОВАТЬ ПО ДоговорыКонтрагентов.Владелец)

ну и далее по смыслу
7 Пеппи
 
06.07.12
20:59
(5) ну у тебя вложенный запрос будет состоять всего лишь из одной записи а условие в ГДЕ вообще непонятно для 1с.
8 ChAlex
 
06.07.12
21:00
(6)+ Суть в том, что первые - покатит если только по одному контрагенту, если по нескольким - то фигвам. Но все равно остается логика какой конкретно доовор нужно выбрать
9 Пыльный
 
06.07.12
21:01
Так. давай с начала 0 что тебе надо получить?
10 sprinter83
 
06.07.12
21:01
Вложенный запрос не конструктором делал?
Контрагенты.Ссылка = ДоговорыКонтрагентов.Контрагент
Во вложенном запросе нет такого значения как
Контрагенты, здесь и ошибка
Зделай с помощью конструктора.
11 vectorov
 
06.07.12
21:01
(8) Благодарю - это то что нужно
12 braslavets
 
06.07.12
21:31
(3) В таком случае, лучше делать запрос к справочнику ДоговорыКонтрагентов.
что-то вроде

ВЫБРАТЬ
ДоговорыКонтрагентов.Владелец КАК Контрагент,
Максимум(ДоговорыКонтрагентов.Ссылка) КАК Договор
ИЗ Справочник.ДоговорыКонтрагентов
СГРУППИРОВАТЬ ПО ДоговорыКонтрагентов.Владелец
13 Живой Ископаемый
 
06.07.12
21:39
2(0) внутри вложенного запроса, в вот этом месте
ГДЕ Контрагенты.Ссылка = ДоговорыКонтрагентов.Контрагент
Интерпретатор запросов не видит "Контрагенты.Ссылка", который определен во внешнем запросе.