|
Исключение товаров и харакетеристик с остатков | ☑ | ||
---|---|---|---|---|
0
sv201
08.08.13
✎
10:08
|
Добрый день
Не получается что то с запросом решить задачу, а задача следующая есть документ инвентаризация товаров со списком на складе1: Склад1: Номенклатура характеристика кол-во цена Сумма **************************************************************** Товар1 Характеристика11 5 шт. 40 руб 200 руб Товар1 Характеристика12 5 шт. 40 руб 200 руб Товар1 Характеристика13 5 шт. 40 руб 200 руб Товар1 Характеристика14 5 шт. 40 руб 200 руб Товар2 Характеристика21 5 шт. 50 руб 250 руб И на остатках на складе1: Номенклатура характеристика кол-во цена Сумма **************************************************************** Товар1 Характеристика11 5 шт. 40 руб 200 руб Товар1 Характеристика12 5 шт. 40 руб 200 руб Товар1 Характеристика13 5 шт. 40 руб 200 руб Товар1 Характеристика14 5 шт. 40 руб 200 руб Товар1 Характеристика15 5 шт. 40 руб 200 руб Товар2 Характеристика21 5 шт. 50 руб 250 руб Товар3 Характеристика31 4 шт. 40 руб 160 руб Нужно запросом сравнить товары в документе с товарами в остатках и выдать те товары которые не входят в состав документа по нашему примеру получиться вот так: Номенклатура характеристика кол-во цена Сумма **************************************************************** Товар1 Характеристика15 5 шт. 40 руб 200 руб Товар3 Характеристика31 4 шт. 40 руб 160 руб То есть необходимо исключить товары и характеристики которые не входят в список товаров документа Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ИнвентаризацияТоваровТовары.Номенклатура, | ИнвентаризацияТоваровТовары.ХарактеристикаНоменклатуры |ПОМЕСТИТЬ ТабТоваров |ИЗ | Документ.ИнвентаризацияТоваров.Товары КАК ИнвентаризацияТоваровТовары |ГДЕ | ИнвентаризацияТоваровТовары.Ссылка.Ссылка = &Ссылка | И ИнвентаризацияТоваровТовары.Ссылка.Склад = &Склад |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура, | ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры, | ТоварыНаСкладахОстатки.КоличествоОстаток |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки( | &Дата, | НЕ Номенклатура В | (ВЫБРАТЬ | ТабТоваров.Номенклатура | ИЗ | ТабТоваров КАК ТабТоваров) | И НЕ ХарактеристикаНоменклатуры В | (ВЫБРАТЬ | ТабТоваров.ХарактеристикаНоменклатуры | ИЗ | ТабТоваров КАК ТабТоваров) | И Склад = &Склад) КАК ТоварыНаСкладахОстатки"; |
|||
1
sv201
08.08.13
✎
10:08
|
данный запрос не срабатывает
|
|||
2
sv201
08.08.13
✎
11:17
|
выдает пустой результат
|
|||
3
sv201
08.08.13
✎
12:25
|
???
|
|||
4
Maxus43
08.08.13
✎
12:29
|
Соединяй таблицу остатков Левым соединением по номенклатуре и характеристике, в условии пиши ГДЕ ТабТоваров.Номенклатура есть null
|
|||
5
cw014
08.08.13
✎
12:29
|
Значит на остатках кроме этого товара и этой характеристики на эту дату больше ничего нет
|
|||
6
cw014
08.08.13
✎
12:30
|
И еще - тебе тут достаточно только характеристики выгрузить - они подчинены номенклатуре
|
|||
7
Maxus43
08.08.13
✎
12:30
|
(5)(6) не, номенклатуры есть повторяющиеся, а сравнивает он В(), т.е. списки и номенклатур и характеристик, а не конкретные номенклатуры с характеристиками
|
|||
8
Maxus43
08.08.13
✎
12:31
|
т.е. если хоть одна характеристика у номенклатуры там есть - то не отсеет
|
|||
9
cw014
08.08.13
✎
12:33
|
(7) Он тягает из ТЧ эти характеристики с номенклатурой. Если руки не из заднего места растут - характеристика принадлежит ровно той номенклатуре, которая стоит в этой строке в соответствующем поле
|
|||
10
Maxus43
08.08.13
✎
12:38
|
ну смотри. в остатках Номенклатура1, Характеристика1.
В ТЧ Номенклатура1, Характеристика1 Номенклатура1, Характеристика2 При поиске по остаткам По характеристике через В() - Будет дан положительный результат, т.к. Характеристика1 присутствует в списке из характеристика1, характеристика2 |
|||
11
Maxus43
08.08.13
✎
12:43
|
как то так
ВЫБРАТЬ ТоварыНаСкладахОстатки.Номенклатура, ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ПО ТоварыНаСкладахОстатки.Номенклатура = ПоступлениеТоваровУслугТовары.Номенклатура И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ПоступлениеТоваровУслугТовары.ХарактеристикаНоменклатуры ГДЕ ПоступлениеТоваровУслугТовары.Номенклатура ЕСТЬ NULL И ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка |
|||
12
ИсчадиеADO
08.08.13
✎
12:45
|
(11) сразу внутренним
|
|||
13
sv201
08.08.13
✎
12:46
|
вот запрос который я составил по вашим рекомендациям
ВЫБРАТЬ | ИнвентаризацияТоваровТовары.Номенклатура, | ИнвентаризацияТоваровТовары.ХарактеристикаНоменклатуры |ПОМЕСТИТЬ ТабТоваров |ИЗ | Документ.ИнвентаризацияТоваров.Товары КАК ИнвентаризацияТоваровТовары |ГДЕ | ИнвентаризацияТоваровТовары.Ссылка.Ссылка = &Ссылка | И ИнвентаризацияТоваровТовары.Ссылка.Склад = &Склад |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура, | ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры, | ТоварыНаСкладахОстатки.КоличествоОстаток |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Склад = &Склад) КАК ТоварыНаСкладахОстатки | ЛЕВОЕ СОЕДИНЕНИЕ ТабТоваров КАК ТабТоваров | ПО (ТабТоваров.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура) | И (ТабТоваров.ХарактеристикаНоменклатуры = ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры) |ГДЕ | ТабТоваров.Номенклатура ЕСТЬ NULL |
|||
14
ИсчадиеADO
08.08.13
✎
12:46
|
а пардон, надо же исключить...
|
|||
15
ИсчадиеADO
08.08.13
✎
12:47
|
(13) ты ссылку на док посеял
|
|||
16
cw014
08.08.13
✎
12:47
|
(10) Да все верно. И потому ничего не заполнит, так как на остатках нет тех позиций, которые НЕ присутствуют в ТЧ
|
|||
17
Maxus43
08.08.13
✎
12:49
|
(16) результаты запросов (0) и (13) разные, и именно (13) надо автору
|
|||
18
sv201
08.08.13
✎
12:49
|
но этот запрос выдает результат
Номенклатура характеристика кол-во цена Сумма **************************************************************** Товар1 Характеристика15 5 шт. 40 руб 200 руб (0) а должен был выдать результат Номенклатура характеристика кол-во цена Сумма **************************************************************** Товар1 Характеристика15 5 шт. 40 руб 200 руб Товар3 Характеристика31 4 шт. 40 руб 160 руб Ссылка на документ находиться во временной таблице | ИнвентаризацияТоваровТовары.Ссылка.Ссылка = &Ссылка |
|||
19
Maxus43
08.08.13
✎
12:50
|
(13) З.ы. .Ссылка.Ссылка убери, оставь одну
|
|||
20
sv201
08.08.13
✎
12:52
|
убрать я убрал но всеравно на результат не повлиял
|
|||
21
Maxus43
08.08.13
✎
12:53
|
убери
|ГДЕ | ТабТоваров.Номенклатура ЕСТЬ NULL Увидишь таблицу остатки, и то что в остатках нет Товар3 Характеристика31 |
|||
22
sv201
08.08.13
✎
12:56
|
вот именно что в остатках присутсвует
|
|||
23
cw014
08.08.13
✎
13:05
|
|ГДЕ
| ИнвентаризацияТоваровТовары.Ссылка.Ссылка = &Ссылка | И ИнвентаризацияТоваровТовары.Ссылка.Склад = &Склад Зачем тут склад? |
|||
24
Maxus43
08.08.13
✎
13:25
|
(22) добавь
|ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура, | ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры, | ТоварыНаСкладахОстатки.КоличествоОстаток, | ТабТоваров.Номенклатура, | ТабТоваров.ХарактеристикаНоменклатуры опять же без ГДЕ, увидишь резкльтирующую, тогда должно стать понятно почему |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |