Имя: Пароль:
1C
1С v8
Не работает левое соединение
0 kible
 
13.07.12
14:46
День добрый! К остаткам номенклатуры присоединяю цены, но при формировании запроса Типцен и Цена равны NULL

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


В чем проблема?
1 izekia
 
13.07.12
14:47
вот зачем сразу на соединение валить?
2 kible
 
13.07.12
14:48
(1) цены указаны
3 izekia
 
13.07.12
14:48
во первых ВЫРАЗИТЬ(ТиповойОстатки.Субконто1 КАК ...)
4 Hillsnake
 
13.07.12
14:49
период скорее всего
5 Irbis
 
13.07.12
14:49
(0) Судя по описанию как раз работает. И Null в левом соединении не признак что оно не работает.
6 izekia
 
13.07.12
14:49
в массиве субконто что? можно код?
7 gosn1ck
 
13.07.12
14:49
массив субконто не верно передан
8 Hillsnake
 
13.07.12
14:50
(7) да точно !
9 gosn1ck
 
13.07.12
14:50
а что за конфа? почему к регистру БП обращаемся?
10 izekia
 
13.07.12
14:50
(4) не, период тут ни при чем
11 ironkrab
 
13.07.12
14:52
(10) А если на эту дату цен нет?
12 ironkrab
 
13.07.12
14:53
(0)А номенклатуру выводит ?
13 izekia
 
13.07.12
14:53
(11) да сдается мне, что это текущая дата, и соответственно все там есть
14 kible
 
13.07.12
14:55
Всем спасибо! Извиняюсь год в документе установка цен перепутал.
15 izekia
 
13.07.12
14:57
(14) как ты мог
16 kible
 
13.07.12
14:58
(15) Пятницаааааааа
17 andrewks
 
13.07.12
14:58
"В чем проблема?"

проблема в том, что условие
ТиповойОстатки.Субконто1 = ЦеныНоменклатурыСрезПоследних.Номенклатура
не выполняется
18 izekia
 
13.07.12
15:00
(17) садись - два
19 andrewks
 
13.07.12
15:02
(18) ещё скажи, что я не прав
20 izekia
 
13.07.12
15:02
(19) да нет, ты что, это я тебя так похвалил
21 andrewks
 
13.07.12
15:09
(20) странный ты
22 izekia
 
13.07.12
15:09
ну почему по-твоему это условие не будет выполняться?
23 Ненавижу 1С
 
гуру
13.07.12
15:14
(22) ну если бы оно выполнялось, то наверное цены были бы, логично?
24 izekia
 
13.07.12
15:15
(23) => (14)
25 andrewks
 
13.07.12
15:15
(22) потому, что не нашлось ни одной пары записей, для которой бы оно выполнилось.
26 hhhh
 
13.07.12
15:16
(22) ну сказали ведь: если субконто1 склады, а субконто2 номенклатура.
27 andrewks
 
13.07.12
15:16
(24) и что? это не означает, что таблица ЦеныНоменклатурыСрезПоследних пустая. а, даже если и так, то сути это не меняет - пары записей, для которой выполняется условие, нет. в данном случае просто вообще пар таких не будет
28 izekia
 
13.07.12
15:19
(27) давайте без демагогии
29 Ненавижу 1С
 
гуру
13.07.12
15:20
(28) все правильно - условие не выполняется, другое дело, что возможно соединяемое множество оказалось заведомо плохим
30 izekia
 
13.07.12
15:24
(29) не бывает плохих множеств, бывают плохие программисты
31 Ненавижу 1С
 
гуру
13.07.12
15:24
(30) ну я же не буквально ))
32 andrewks
 
13.07.12
15:24
(28) без демагогии: в срезе последних у тебя три записи:
Тапки 20р
Сланцы 30 р
Чешки 40 р.

а тебе нужно получить цены для таблицы остатокв

Ботинки  100 шт
Сапоги  200 шт.

условие равенства по номенклатуре не выполняется, следовательно, получаешь NULL
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн