|
v7: Странно работает условие отбора НЕ в списке | ☑ | ||
---|---|---|---|---|
0
OnePrg
27.05.19
✎
13:36
|
Есть отчет по товарам. В оригинале выглядит вот так
http://imagizer.imageshack.com/img923/139/Fogl4Q.png Обратите внимание, что есть товары, по которым не было движения. Точнее нужно выбрать товары, которые не продавались в этом периоде, потому что могут быть перемещения. Запрос в оригинале выглядит так //{{ЗАПРОС(Сформировать) Период с НП по КП; Обрабатывать НеПомеченныеНаУдаление; Фирма = Регистр.Остатки.Фирма; Товар = Регистр.Остатки.Товар; МестоХранения = Регистр.Остатки.МестоХранения; Партия = Регистр.Остатки.Партия; Док = Регистр.Остатки.ТекущийДокумент; Сумма = Регистр.Остатки.Сумма; Кво = Регистр.Остатки.Кво; Функция СуммаНачОст = НачОст(Сумма); Функция КвоНачОст = НачОст(Кво); Функция СуммаПриход = Приход(Сумма); Функция КвоПриход = Приход(Кво); Функция СуммаПриходВ = Приход(Сумма) Когда (Док.Вид()="РасходнаяВозврат"); Функция КвоПриходВ = Приход(Кво) Когда (Док.Вид()="РасходнаяВозврат"); Функция СуммаРасход = Расход(Сумма); Функция КвоРасход = Расход(Кво); Функция СуммаКонОст = КонОст(Сумма); Функция КвоКонОст = КонОст(Кво); Группировка Товар без групп; Группировка Партия; Группировка Док Упорядочить по Док.ДатаДок; Условие (МестоХранения в ВыбСклад); Мне нужно добавить условие, чтобы выбирались товары, которых нет за этот период в расходных накладных. Формирую список значений и добавляю условие в запрос: Если ТолькоНеПроданныеТовары = 1 Тогда ТекстЗапросаПроданныеТовары = "//{{ЗАПРОС(ПроданныеТовары) |Период с НП по КП; |Товар = Документ.РасходнаяНакладная.Товар; |ТекДокумент = Документ.РасходнаяНакладная.ТекущийДокумент; |МестоХранения = Документ.РасходнаяНакладная.МестоХранения; |Кво = Документ.РасходнаяНакладная.Кво; |Функция КвоСумма = Сумма(Кво); |Группировка Товар; |Условие (ТекДокумент.Проведен()=1);"; Если ВыбСклад.РазмерСписка()<> 0 Тогда ТекстЗапросаПроданныеТовары = ТекстЗапросаПроданныеТовары + " |Условие ("+?(НеСклад=1,"НЕ(МестоХранения в ВыбСклад)","МестоХранения в ВыбСклад")+");"; КонецЕсли; Если ВыбТовар.РазмерСписка()<> 0 Тогда ТекстЗапросаПроданныеТовары = ТекстЗапросаПроданныеТовары + " |Условие ("+?(НеТовар=1,"НЕ(Товар в ВыбТовар)","Товар в ВыбТовар")+");"; КонецЕсли; Если Запрос.Выполнить(ТекстЗапросаПроданныеТовары) = 0 Тогда Возврат; КонецЕсли; спрТовары = СоздатьОбъект("Справочник.Товар"); ПроданныеТовары = СоздатьОбъект("СписокЗначений"); Пока Запрос.Группировка(1) = 1 Цикл Сообщить(Запрос.Товар); спрТовары.НайтиЭлемент(Запрос.Товар); ПроданныеТовары.ДобавитьЗначение(спрТовары.ТекущийЭлемент()); КонецЦикла; ТекстЗапроса=ТекстЗапроса+" |Условие (НЕ (Товар в ПроданныеТовары)); |"; КонецЕсли; В результате в отчет не выводятся товары, который должны выводится (тот же самый брикет торфяенной) http://imagizer.imageshack.com/img923/7089/Id9mLm.png |
|||
1
Lazy Stranger
27.05.19
✎
13:47
|
в первом запросе выборка по регистру остатков - туда попадут все товары по которым были остатки или движения
второй запрос получает информацию по товарам из накладных - естественно там будут только те товары, которые есть в накладных, для соединения со всем справочником товаров должно быть ключевое слово "ВСЕ" в группировке по товарам: "|Группировка Товар ВСЕ;" |
|||
2
Ёпрст
27.05.19
✎
14:19
|
И ..лучше не все, а все вошедшие в запрос
|
|||
3
Ёпрст
27.05.19
✎
14:20
|
ибо весь справочник, как бэ не нужен
|
|||
4
OnePrg
27.05.19
✎
15:08
|
"все вошедшие в запрос" не помогло, результата такой же
"Все" не вариант - тянет весь справчник |
|||
5
Ager
27.05.19
✎
16:22
|
Если база SQL, то условие НЕ в запросе не сработает, это глюк платформы. В этом случае нужно использовать "Принадлежит() = 1" или что-то типа этого.
|
|||
6
Builder
27.05.19
✎
16:33
|
(5) Не замечал, у меня работало нормально.
(0) Выкини все другие условия, особенно такие ненужные как |Условие (ТекДокумент.Проведен()=1); Ибо непроведенные документы не смогут сделать движения. По идее в запрос должны попасть все товары с начальным или конечным остатком по регистру. Сделай простейший запрос и постепенно добавляй условия. |
|||
7
OnePrg
27.05.19
✎
16:33
|
(5) DBF
|
|||
8
Builder
27.05.19
✎
16:44
|
+ к (6) Ааа, тут второй запрос по документам же...
А зачем тебе второй запрос? По первому запросу же если нет расхода - то и товар не продавался..... |
|||
9
OnePrg
27.05.19
✎
17:04
|
Семён Семёныч!!!!!!!
Во втором запросе, где формируется список проданных товаров, нужно было в группировке поставить "без групп". Иначе в список попадали группы товаров. Всем спасибо! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |