Имя: Пароль:
1C
1С v8
Не получается простейшее левое соединение в запросе
0 John83
 
20.02.12
14:42
Нужно обработать данные на основании рег. бух. и партий товаров НУ.
Но почему-то выводятся не все остатки по партиям, т.е. остаток точно есть, но в КоличествоОстаток попадает null.
Чего не правильно делаю?

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

УПОРЯДОЧИТЬ ПО
   СубконтоДт1
АВТОУПОРЯДОЧИВАНИЕ
1 John83
 
20.02.12
14:44
пробовал условие на регистратор в связи запихнуть, но там вообще бред получается
хотя что-то подсказывает, что проблема именно в этом условии
2 John83
 
20.02.12
15:50
upp
3 DosWinXP
 
20.02.12
16:29
1. Проверить типы данных в условиях соединения
2. Убедиться в наличии данных в базе, удовлетворяющих условию соединения
4 Spieluhr
 
20.02.12
16:32
В свойствах таблицы Налоговый.ОборотыДтКт поставьте условие на счет Дт или хотя бы на виды субконто номенклатура/склад
5 Wist
 
20.02.12
16:39
(0) ты в первой таблице выбираешь ВСЕ обороты регистратора по плану счетов. Например, для поступления товаров и услуг будут движения и по счетам учета взаиморасчетов. Ставь условие на СчетДт
6 John83
 
20.02.12
16:51
Регистратор - это КорректировкаЗаписейРегистров, в который вносились данные по 43, 21 счетамНУ, субконтоДт1 - всегда номенклатура, субконтоДт2 - всегда склад.
Попробовал поставить условие на тот же 43ий счет - результат тот же.
Остатки по партиям точно есть.
7 DosWinXP
 
20.02.12
16:55
Т.е. по отдельности все данные выводятся, а при ЛЕВОЕ СОЕДИНЕНИЕ - нет?
8 John83
 
20.02.12
16:59
(7) именно так и есть
если поставить внутреннее соединение, то данные получаются неполные
9 John83
 
20.02.12
17:01
данные по рег. бух попробовал сначала во вложенном запросе получить - все равно не работает...
уже моск сломал
10 DosWinXP
 
20.02.12
17:05
Тогда попробуйте упрощать - убрать по отдельности каждое из условий соединения, а если не поможет - убирать по два... других вариантов "выловить" ошибку не вижу
11 Maxus43
 
20.02.12
17:05
убирай соединение
            И НалоговыйОборотыДтКт.СубконтоДт2 = ПартииТоваров.Склад

и пробуй
12 John83
 
20.02.12
17:05
а вот если предварительно во вложенном запросе получить данные по партиям, то все начинает работать - в общем хрень непонятная
13 Maxus43
 
20.02.12
17:07
НалоговыйОборотыДтКт.СчетДт = ПартииТоваров.СчетУчета

в регистре кстати счет учета - составной... там точно счета НУ?
14 John83
 
20.02.12
17:10
пилиять...
а сначала дату в регистр по партиям и не засунул - так и знал, что опять из-за какой-нить ерунды косячит :(
15 Maxus43
 
20.02.12
17:11
(14) дык остатки там, без укзания даты вернёт текущее состояние, если точнее то дату сам подставит, причем из далёкого будущего
16 John83
 
20.02.12
17:13
(15) да в том-то и дело, что регистратор на начало года сделан
PS в очередной раз извеняюсь за беспокойство
17 Maxus43
 
20.02.12
17:22
(16) а, щас остатков нет? но когда то были?) понятно