Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Не получается "левое соединение". (http://forums.kuban.ru/f1040/ne_poluchaetsya_levoe_soedinenie-5412363.html)

vv2304 18.02.2014 14:19

Не получается "левое соединение".
 
Отчет на СКД
ВЫБРАТЬ
ДоговорыКонтрагентов.Ссылка КАК Договор,
ХозрасчетныйОбороты.Счет,
ХозрасчетныйОбороты.Субконто2,
ХозрасчетныйОбороты.КорСчет,
ХозрасчетныйОбороты.СуммаОборотДт КАК Расход,
ХозрасчетныйОбороты.СуммаОборотКт КАК Приход
ИЗ
Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты(, , , , , , , ) КАК ХозрасчетныйОбороты
ПО (ХозрасчетныйОбороты.Субконто2 = ДоговорыКонтрагентов.Ссылка)

Надо в отчет вывести все договора, в т.ч. и те по которым небыло оборотов.
Счет 76.09, КорСчет 50.01 и 51 заданы в отборе
Если отбор установлен, тогда почему-то договора по которым нет оборотов, в отчет не попадают.

bma1 18.02.2014 14:40

соединяй не с регистром, а с уже отобранной таблицей по этому регистру (отбирай в пакетном запросе)

vv2304 18.02.2014 17:16

блин, а у Радченко похожий пример решал и все нормально :(
[img]http://s7.hostingkartinok.com/uploads/images/2014/02/c38312ed4566547151761d2096acc0db.jpg[/img]

roma n 18.02.2014 17:22

У Радченко пример по СКД?
Оптимизатор СКД умеет исполнять совсем не тот запрос, который ты наколотил в описании источника данных

vv2304 18.02.2014 17:27

[quote=roma n;34201148]У Радченко пример по СКД?[/quote]
да, по СКД.

roma n 18.02.2014 17:37

4-vv2304 > СКД штука "живая", возможно поведение на свежих релизах отличается от рассмотренного у Радченко.
В любом случае кури исполняемый запрос. Возможно, не хватает выбранных полей в настройках или каким-то полям следует назначить обязательное использование.

vv2304 18.02.2014 18:36

Похоже, что надо забросить подальше СКД, т.к. нигде нет примеров, а если и есть (как у Радченко и Хрусталевой), то почему-то некорректно работают.

bma1 18.02.2014 19:00

[quote=vv2304;34202105]то почему-то некорректно работают.[/quote]
Корректно они работают. Но только на учебной базе с маленьким объемом данных. Они не догма, а только намек на способ решения. В СКД надо тыковкой думать.

vv2304 18.02.2014 19:03

[quote=bma1;34198316] соединяй не с регистром, а с уже отобранной таблицей по этому регистру (отбирай в пакетном запросе) [/quote]
А можешь ссылку на пример дать ? Я у Хрусталевой и у Радченко смотрел, не нашел подобного.

vv2304 18.02.2014 19:08

Попробовал сделать два набора данных : по справочнику и по регистру. Затем их объединил. Та же история : попадают в отчет только те договоры по которым были обороты.

Write 18.02.2014 19:59

(0) ссылки на два примера твоего отчета в БП должны работать.
[url]http://yadi.sk/d/FHxX27MSJ8xxi[/url]
[url]http://yadi.sk/d/jEv6sRXJJ8xyw[/url]

vv2304 18.02.2014 20:48

10-Write >Спасибо огромное !
Сделал как во 2-м отчете и все получилось.

Dark_Shadow 18.02.2014 20:50

Не знаю как в СКД, но в построителе если указываешь отбор для левого соединения, то он применяется к результату запроса.
Попробуй так
ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты(, ,{КорСчет1** , , , , , ) КАК ХозрасчетныйОбороты


Текущее время: 01:57. Часовой пояс GMT +3.