Имя: Пароль:
1C
1С v8
Как обединить две выборки запросом ? Или вложенные выборки ...
0 raykom
 
17.05.14
11:19
Как запросом обойти справочник контрагентов и у каждого контрика перебрать его договора ?

Есть вот такой код
ЗапросКонтр = Новый Запрос;
    ЗапросКонтр.Текст =
        "ВЫБРАТЬ
        |    Контрагенты.Ссылка
        |ИЗ
        |    Справочник.Контрагенты КАК Контрагенты
        |ГДЕ
        |    НЕ Контрагенты.ЭтоГруппа
        |    И Контрагенты.ОсновнойДоговорВзаиморасчетов.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоров.Продажа)
        |    И (Контрагенты.ФормаСобственности = ЗНАЧЕНИЕ(Перечисление.ФормыСобственности.ЮридическоеЛицо)
        |            ИЛИ Контрагенты.ФормаСобственности = ЗНАЧЕНИЕ(Перечисление.ФормыСобственности.ЧастныйПредприниматель))";
        
    РезультатЗапроса = ЗапросКонтр.Выполнить();


Нужно вот такое вложить еще

"ВЫБРАТЬ
        |   ДоговорыКонтрагентов.Ссылка
        |ИЗ
        |   Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
        |ГДЕ
        |   ДоговорыКонтрагентов.Владелец = &Владелец";


Спасибо
1 ДенисЧ
 
17.05.14
11:20
Не стыдно?
Прицепи соединением договора и выбирай...
2 PR
 
17.05.14
11:22
(0) Контрагенты ЛС Договоры
Пипец.
3 PR
 
17.05.14
11:22
(1) ДоговорЫ, колхозник :))
Не стыдно? :))
4 raykom
 
17.05.14
11:24
(1) Дак ты СПами то перстал барыжить, как жить то теперь ...
(3)Рома ) не упрекай за социальный статус, лучше помоги методологически )
5 raykom
 
17.05.14
11:26
(1)>Прицепи соединением договора и выбирай...
Левое которое ?
6 ДенисЧ
 
17.05.14
11:28
(2) ДоговорА
(5) Можно и его.
7 raykom
 
17.05.14
11:31
(6)Понятно.
Про ДоговорА - вопрос вообще то спорный, одинес вот придерживается написания через Ы, а я вообще не думал когда писал. Как привык. Как на самом то деле, реально ?
8 raykom
 
17.05.14
11:40
Ооо нашел почти готовое решение.
v8: v8: Как реализовать отчет "Взаиморасчеты с контрагентами" одним запросом?

Все таки Миста - реально помогает во многих случаях
9 PR
 
17.05.14
12:10
(7) В 1С раньше было договора, потом переделали на договоры.
Видимо, когда колхозников поувольняли :))
10 raykom
 
17.05.14
12:13
Чето не выходит каменный цветок.

Пробовал и договрА и договорЫ, а выборка все равно пустая ((
11 raykom
 
17.05.14
12:15
Может потому, что с маленькой буквы ?
12 wPa
 
17.05.14
12:17
(7) Договоры правильно
(10) соединяешь по владельцу?
13 raykom
 
17.05.14
12:18
Чето ни кто пинать не начал )))
Думал щас сразу пропишут в 86 год .
14 raykom
 
17.05.14
12:19
(12)Два я не соединял еще, так что то потролить решил, ни кто не ведется )
15 raykom
 
17.05.14
12:20
(12)Я не пойму в принципе, как организовывать соединение. Вот примеры гуглю
16 raykom
 
17.05.14
12:22
Вот так чтоли примерно ?

"ВЫБРАТЬ
   |    Контрагенты.Ссылка КАК Контрагент,
    |    ДоговорыКонтрагентов.Ссылка КАК Договор
   |ИЗ
   |    Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
   |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
   |        ПО ДоговорыКонтрагентов.Владелец = Контрагенты.Ссылка
   |ИТОГИ ПО
   |    Контрагент";
17 raykom
 
17.05.14
12:31
А потом вот так
ВыборкаКонтрагенты = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

   Пока ВыборкаКонтрагенты.Следующий() Цикл
       Сообщить(ВыборкаКонтрагенты.Контрагент);
       ВыборкаДоговоры = ВыборкаКонтрагенты.Выбрать();
      
       Пока ВыборкаДоговоры.Следующий() Цикл
             Сообщить(ВыборкаДоговоры.Договор);
       КонецЦикла;
18 hhhh
 
17.05.14
15:38
(12) правила на сегодняшний день: одинаково допускается и договоры и договора. Так что райком прав.
19 raykom
 
17.05.14
16:30
Да ... Щас выяснится что еще с маленькой буквы на самом деле надо было и в этом все проблемы )
20 Kookish
 
17.05.14
16:32
Кто-то видит в запросе группировку? ИТОГИ заменяют группировки?
21 raykom
 
17.05.14
17:11
Все видят. Сам не пришел к выводу, насколько оно тут уместно. Вот курю

Секция ИТОГИ ПО используется для получения итогов по определенным полям в разрезе других полей. Т.е. сначала в секции ИТОГИ указываем поля по которым хотим видеть суммарные значения и в обязательном порядке применяем к ним одну из агрегатных функций, далее в секции ПО необходимо указать поля в разрезе которых мы хотим видеть итоги:

В отличии СГРУППИРОВАТЬ ПО секция ИТОГИ ПО не уменьшает количество записей в результате запроса, а наоборот увеличивает, создавая древовидную структуру в узлах которой расположены срезы итогов (поля в секции ПО).

http://zapros-1c-8.ru/9-yazik-zaprosov-1c-8/9-totals
22 Kookish
 
17.05.14
17:19
(21) Меня смутило то, что Я не увидел в запросе группировок. А в обходе результата их аж две. Вот и спросил, может тут что зарыто?