Имя: Пароль:
1C
1С v8
Можно ли запросом получить нулевой остаток по регистру накопления?
,
0 snegovik
 
09.10.15
12:57
Делаю запрос по остаткам:

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


Если остаток по лицевому счету нулевой - то в выборку он не попадает. Как сделать, чтобы лицевой счет с нулевым остатком тоже попадал в выборку?
1 Гёдза
 
09.10.15
12:57
левое соединение
2 vicof
 
09.10.15
12:59
...со справочником
3 бомболюк
 
09.10.15
12:59
...тогда правое
4 aleks_default
 
09.10.15
13:00
Детализировать. Т. е. добавить измерение, по которому точно есть остаток и потом группировать.
5 vicof
 
09.10.15
13:00
...один куй
6 vicof
 
09.10.15
13:00
(4) Извращенец?
7 Гёдза
 
09.10.15
13:00
Не люблю правое соединение, хотя наверно арабы всякие любят
8 бомболюк
 
09.10.15
13:01
я его тоже никогда в жизни не пользовал ;-)
9 aleks_default
 
09.10.15
13:02
(6)В смысле? Я не в смысле добавить в регистр новое измерение, а  в смысле добавить в запрос еще поле
10 Матиус
 
09.10.15
13:02
ВЫБРАТЬ
ISNULL(КВП_ВзаиморасчетыПоЛицевымСчетамОстатки.СуммаНачисленияОстаток, 0) КАК СуммаНачисленияОстаток
ИЗ
РегистрНакопления.КВП_ВзаиморасчетыПоЛицевымСчетам.Остатки(&ТекДата, Услуга = &Услуга и ЛицевойСчет = &ЛицевойСчет) КАК КВП_ВзаиморасчетыПоЛицевымСчетамОстатки
11 1Сергей
 
09.10.15
13:03
новая профессиональная болезнь одинесника - райтджойнфобия
12 бомболюк
 
09.10.15
13:03
(10) мощно
13 vicof
 
09.10.15
13:03
(9) А если таких нет?
14 Матиус
 
09.10.15
13:04
(12) глазам больно
15 НЕА123
 
09.10.15
13:05
(13)
их, похоже нет. 0 показался бы.
16 Timon1405
 
09.10.15
13:06
(14) только зачем там изнулл?
17 Матиус
 
09.10.15
13:07
(16) чтобы не вылезло с ошибкой при сложении
18 Михаил Козлов
 
09.10.15
13:07
Можно по остаткам и оборотам: если были обороты, то покажет. Только дольше.
19 Buster007
 
09.10.15
13:11
вместо КВП_ВзаиморасчетыПоЛицевымСчетамОстатки.ЛицевойСчет КАК ЛицевойСчет напиши &ЛицевойСчет ну и условия напиши нормально
20 Матиус
 
09.10.15
13:16
>> Как сделать, чтобы лицевой счет с нулевым остатком тоже попадал в выборку?
21 Buster007
 
09.10.15
13:18
(20) что не так?
22 Матиус
 
09.10.15
13:24
(21) все не так
23 Матиус
 
09.10.15
13:24
но это к теме уже не имеет отношения
24 snegovik
 
09.10.15
13:25
(15) А разе отсутствие остатка и нулевой остаток - не одно и то же?
25 snegovik
 
09.10.15
13:26
(14) У каждого глаза разные... Мне так удобнее и привычнее.
26 Михаил Козлов
 
09.10.15
13:26
(24) Если остатка нет (=0), то в виртуальной таблице нет данных.
27 snegovik
 
09.10.15
14:01
Сделал с соединением, но почему-то в выборку всё равно не выходит:

ВЫБРАТЬ
    КВП_ВзаиморасчетыПоЛицевымСчетамОстатки.ЛицевойСчет КАК ЛицевойСчет,
    ЕСТЬNULL(КВП_ВзаиморасчетыПоЛицевымСчетамОстатки.СуммаНачисленияОстаток, 0) КАК СуммаНачисленияОстаток,
    КВП_ЛицевыеСчета.Ссылка
ИЗ
    РегистрНакопления.КВП_ВзаиморасчетыПоЛицевымСчетам.Остатки(&ТекДата, ) КАК КВП_ВзаиморасчетыПоЛицевымСчетамОстатки
        ПРАВОЕ СОЕДИНЕНИЕ Справочник.КВП_ЛицевыеСчета КАК КВП_ЛицевыеСчета
        ПО (КВП_ВзаиморасчетыПоЛицевымСчетамОстатки.ЛицевойСчет = КВП_ЛицевыеСчета.Ссылка)
ГДЕ
    КВП_ВзаиморасчетыПоЛицевымСчетамОстатки.Услуга = &Услуга
28 Buster007
 
09.10.15
14:13
(27) ГДЕ
    КВП_ВзаиморасчетыПоЛицевымСчетамОстатки.Услуга = &Услуга
29 snegovik
 
09.10.15
14:17
(28) Сюда поместить? :
РегистрНакопления.КВП_ВзаиморасчетыПоЛицевымСчетам.Остатки(&ТекДата, Услуга = &Услуга)
30 snegovik
 
09.10.15
14:32
Подскажите ещё такой момент:

Если добавляю в условие запроса следующую строку: Организация = &Организация
то конструктор запроса ругается, хотя это измерение в регистре есть:

ВЫБРАТЬ
    КВП_ВзаиморасчетыПоЛицевымСчетамОстатки.ЛицевойСчет КАК ЛицевойСчет,
    ЕСТЬNULL(КВП_ВзаиморасчетыПоЛицевымСчетамОстатки.СуммаНачисленияОстаток, 0) КАК СуммаНачисленияОстаток,
    КВП_ЛицевыеСчета.Ссылка КАК Ссылка
ИЗ
    Справочник.КВП_ЛицевыеСчета КАК КВП_ЛицевыеСчета
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.КВП_ВзаиморасчетыПоЛицевымСчетам.Остатки(&ТекДата, Организация = &Организация, Услуга = &Услуга) КАК КВП_ВзаиморасчетыПоЛицевымСчетамОстатки
        ПО (КВП_ВзаиморасчетыПоЛицевымСчетамОстатки.ЛицевойСчет = КВП_ЛицевыеСчета.Ссылка)
31 itlikbez
 
09.10.15
14:43
(30)
Организация = &Организация И Услуга = &Услуга
32 Serg_1960
 
09.10.15
14:58
(имхо) Предпочитаю не соединение справочников с остатками регистра, а "различные" измерение регистра с остатками - так мусор лишний из справочников не захватывается (записи справочников, которые никогда не были упомянуты в регистре). Имхо, однако.
33 АдинС
 
09.10.15
15:08
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.КВП_ВзаиморасчетыПоЛицевымСчетам.Остатки(&ТекДата, Организация = &Организация И Услуга = &Услуга)   - может так?
34 bolobol
 
09.10.15
15:36
(32) +100. Что бывало в регистре с тем что есть = всё и с нулевыми остатками.
35 Матиус
 
10.10.15
23:51
(28) Ему так удобнее и привычнее.
36 EvgeniuXP
 
11.10.15
00:31
(29) вот сразу видно, человек на курсы не ходил - щас тебя тут аналогичные научат и клеймо на всю жизнь :)))
37 EvgeniuXP
 
11.10.15
00:32
(32) слышал звон, да не знаю где он :)
38 EvgeniuXP
 
11.10.15
00:34
(37) к (31)
(0) беги отсюда
39 aka AMIGO
 
11.10.15
09:28
т.е. волшебным запросом хочется получить то, чего нет?
Вот, к примеру, ввели вы товар в справочник, и сразу остатки =0.. интересно.. И запрос это показал.
Извините, но какая-то ерунда..
Просто перебрать все элементы, попутно определив остаток в регистре, если нуль - сообщить..
Всего 7-10 строк кода..

Хотя..

Может быть, немного дополнить условие: если были у номенклатуры движения по регистрам, и в результате движений остаток стал нулевым - это еще можно понять.

Либо, если есть документ типа счета/заявки, опять-таки список ограничен, можно посчитать остатки, сообщить, что надо дозаказать

А выводить полный список справочника с нулём в остатках?!.. кому он нужен?
40 Web00001
 
11.10.15
09:47
(39)Ну бывает вопрос, типа нам надо посмотреть, чего нет на остатках, что бы заказать.
41 aka AMIGO
 
11.10.15
13:01
(40) Понятно..
Вполне адекватное желание.
У нескольких знакомых, работающих в одиночку не в коллективе\сети, а потому у них время открытия справочников не особенно критично, я сделал вывод остатков/резервов/свободных - прямо в форме списка справочника.
Довольны.
42 aka AMIGO
 
11.10.15
13:02
+ конечно, открываются подольше и тормозят слегка при движении, но это с лихвой перекрывается открытой информацией
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.