Имя: Пароль:
1C
1С v8
Реестр накопления. Фильтр по паре измерений.
0 FearDog
 
03.08.22
17:50
Добрый день!
Ломаю голову, не могу сделать запрос по выборке отрицательных остатков в разрезе номенклатуры и состояния товара. По всей номенклатуре запрос простейший:

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


Как можно сразу фильтрануть отрицательные остатки по паре Номенклатура+СостояниеТовара?
1 FearDog
 
03.08.22
17:52
Примечание:
Проверка происходит при проведении документа. В табличной части для каждой номенклатуры указывается, товар новый или Б/У.
2 FearDog
 
03.08.22
18:01
Сам спросил, сам ответил)
Запрос = Новый Запрос("ВЫБРАТЬ
|  ОстаткиТоваровОстатки.Номенклатура,
|  ОстаткиТоваровОстатки.СостояниеТовара,
|  ОстаткиТоваровОстатки.КоличествоОстаток
|ИЗ
|  РегистрНакопления.ОстаткиТоваров.Остатки(
|    &МоментВремени,
|    Номенклатура В
|      (ВЫБРАТЬ РАЗЛИЧНЫЕ
|        РеализацияТоваровТовары.Номенклатура
|      ИЗ
|        Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары
|      ГДЕ
|        РеализацияТоваровТовары.Ссылка = &Ссылка)) КАК ОстаткиТоваровОстатки
|    ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
|      РеализацияТоваровТовары.Номенклатура КАК Номенклатура,
|      РеализацияТоваровТовары.СостояниеТовара КАК СостояниеТовара
|    ИЗ
|      Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары
|    ГДЕ
|      РеализацияТоваровТовары.Ссылка = &Ссылка) КАК ВложенныйЗапрос
|    ПО ОстаткиТоваровОстатки.Номенклатура = ВложенныйЗапрос.Номенклатура
|      И ОстаткиТоваровОстатки.СостояниеТовара = ВложенныйЗапрос.СостояниеТовара
|ГДЕ
|  ОстаткиТоваровОстатки.КоличествоОстаток < 0");
3 Йохохо
 
03.08.22
18:04
(2) в этом топике не хватало слова склад и интриги
4 alarm2020
 
03.08.22
20:02
(0) (Номенклатура,СостояниеТовара) В (ВЫБРАТЬ ...)
5 FearDog
 
13.08.22
17:40
(4) Спасибо!
6 СеменовСемен
 
13.08.22
18:11
лучше после проведения проверять остатки. саму номенклатуру брать не из документа, а из движений регистра
7 Злопчинский
 
13.08.22
18:14
(6) хреновая идея. в случае ошибки - ну например в результате ошибки ряд товаров из документа не записался по регистру... Проверять надо конечное с начальным, а не конечное по конечному...
8 СеменовСемен
 
13.08.22
19:17
(7) если он не записался, тоти остаток по ним отрицательный стать не может
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.