|
1С Запрос с поздзапросом | ☑ | ||
---|---|---|---|---|
0
alexandr1
16.12.15
✎
21:37
|
Не могу решить задачу.
В программе есть дополнительный регистр сведений с контрагентом и его товаром и товар чаще всего указан как группа. Не могу соединить его с продажами. Нужно чтобы при выборе нескольких контрагентов были показаны продажи только тех товаров которые есть в регистре сведений. Запрос как пример, конечно он не работает. ВЫБРАТЬ ПродажиОбороты.Контрагент КАК Контрагент, ВЫБОР КОГДА ПродажиОбороты.Номенклатура КАК Номенклатура В Иерархии(ВложенныйЗапрос.Номенклатура) ТОГДА ПродажиОбороты.Номенклатура ИНАЧЕ 0 КАК Номенклатура, ПродажиОбороты.КоличествоОборот КАК КоличествоОборот, ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот ИЗ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, , ) КАК ПродажиОбороты, (ВЫБРАТЬ СпецТовар.Номенклатура КАК Номенклатура ИЗ РегистрСведений.СпецТовар КАК СкидкиКонтры) КАК ВложенныйЗапрос |
|||
1
sda553
16.12.15
✎
21:41
|
А в 1С разрешается указывать условие "в иерархии" в условии соединения?
|
|||
2
alexandr1
16.12.15
✎
21:41
|
(1)
Нет, где то находил что можно как то из вложеного брать. |
|||
3
sda553
16.12.15
✎
21:42
|
Если нет, то сколько уровней у справочника контра?
|
|||
4
sda553
16.12.15
✎
21:43
|
(3) уровне в справочнике номенклатуры, поправлюсь
|
|||
5
alexandr1
16.12.15
✎
21:51
|
(4) стандартно 2
|
|||
6
RomanYS
16.12.15
✎
21:54
|
ИЗ
РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, , Номенклатура В ИЕРАРХИИ (ВЫБРАТЬ СпецТовар.Номенклатура КАК Номенклатура ИЗ РегистрСведений.СпецТовар КАК СпецТовар где СпецТовар.Контрагент В (&СписокКонтрагентов)) ) КАК ПродажиОбороты |
|||
7
alexandr1
16.12.15
✎
22:18
|
(6) Выдает просто все продажи
|
|||
8
Tateossian
16.12.15
✎
22:23
|
(7) Значит, где-то есть корневой каталог в регистре спец товар
|
|||
9
alexandr1
16.12.15
✎
22:29
|
(8) Да вроде некоторых клиенты стали фильтроваться по товарам
|
|||
10
User_Agronom
16.12.15
✎
22:30
|
(0) ВЫБРАТЬ
ПродажиОбороты.Контрагент КАК Контрагент, ПродажиОбороты.Номенклатура КАК Номенклатура, ПродажиОбороты.КоличествоОборот КАК КоличествоОборот, ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот, ВложенныйЗапрос.Номенклатура ИЗ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, , ) КАК ПродажиОбороты левое соединение (ВЫБРАТЬ СпецТовар.Номенклатура КАК Номенклатура ИЗ РегистрСведений.СпецТовар КАК СкидкиКонтры) КАК ВложенныйЗапрос по ПродажиОбороты.Номенклатура = ВложенныйЗапрос.Номенклатура где пиши свое условие |
|||
11
alexandr1
16.12.15
✎
22:37
|
(10) Не выдет, номенклатура идет как группа товаров
|
|||
12
alexandr1
16.12.15
✎
22:38
|
(8) У большинства все равно проскакивает, даже если стоит один товар, выбирается 10 хотя в продажах больше
|
|||
13
User_Agronom
16.12.15
✎
22:40
|
ГДЕ Номенклатура В Иерархии(ВложенныйЗапрос.Номенклатура)
Так пробовал? |
|||
14
User_Agronom
16.12.15
✎
22:41
|
левое соединение
(ВЫБРАТЬ СпецТовар.Номенклатура КАК Номенклатура ИЗ РегистрСведений.СпецТовар КАК СкидкиКонтры) КАК ВложенныйЗапрос по Номенклатура В Иерархии(ВложенныйЗапрос.Номенклатура) |
|||
15
User_Agronom
16.12.15
✎
22:41
|
(13) Это уже поздно, чушь пишу.
|
|||
16
RomanYS
16.12.15
✎
22:45
|
(14) "В Иерархии" вроде нельзя в условии соединений.
|
|||
17
Tateossian
16.12.15
✎
22:45
|
ВЫБРАТЬ Ссылка
ПОМЕСТИТЬ ВТ ИЗ Справочник.Номенклатура ГДЕ Ссылка В ИЕРАРХИИ (ВЫБРАТЬ СпецТовар.Номенклатура Ссылка ИЗ РегистрСведений.СпецТовар ГДЕ СпецТовар.Контрагент В (&СписокКонтрагентов) ); ВЫБРАТЬ ПродажиОбороты.Контрагент КАК Контрагент, ПродажиОбороты.Номенклатура, ПродажиОбороты.КоличествоОборот КАК КоличествоОборот, ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот ИЗ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, ,Номенклатура В (ВЫБРАТЬ Ссылка ИЗ ВТ)) КАК ПродажиОбороты |
|||
18
RomanYS
16.12.15
✎
22:47
|
(0) контрагенты в РС это поставщики или те же покупатели?
Смысл регистра сведений какой? |
|||
19
alexandr1
16.12.15
✎
22:58
|
(18) Содержатся товары для клиента, по которым идет бонус ;)
|
|||
20
RomanYS
16.12.15
✎
23:01
|
(19) т.е. тебе нужен фильтр одновременно по комбинации 2 полей, в (0) ты об этом НЕпредусмотрительно умолчал
|
|||
21
alexandr1
16.12.15
✎
23:09
|
(17) Если в вт помещать, то туда попадают весь спец товар всех выбранных клиентов, нужно отдельно по каждому его собственный товар.
|
|||
22
alexandr1
16.12.15
✎
23:10
|
(20) Вообщем то фильтр по товару для каждого клиента должен быть свой
|
|||
23
RomanYS
16.12.15
✎
23:14
|
(22) об этом надо было писать в (0), лично я прочитал "контрагентом и его товаром" как "фильтр по товарам поставщиков". А оказалось речь о другом :(.
|
|||
24
RomanYS
16.12.15
✎
23:17
|
с учетом (5)
ИЗ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, , (Контрагент,Номенклатура) В (ВЫБРАТЬ СпецТовар.Контрагент, СпецТовар.Номенклатура КАК Номенклатура ИЗ РегистрСведений.СпецТовар КАК СпецТовар где СпецТовар.Контрагент В (&СписокКонтрагентов) или (Контрагент,Номенклатура.Родитель) В (ВЫБРАТЬ СпецТовар.Контрагент, СпецТовар.Номенклатура КАК Номенклатура ИЗ РегистрСведений.СпецТовар КАК СпецТовар где СпецТовар.Контрагент В (&СписокКонтрагентов) ) КАК ПродажиОбороты |
|||
25
alexandr1
16.12.15
✎
23:59
|
(24) Почти если 1 вариант то выбирает только элементы если с родителем то группы. В иерархии не работает ругается на
"В запросах операции "в" должно выбираться столько полей, сколько операндов имеет левая часть" а без не норм |
|||
26
RomanYS
17.12.15
✎
00:04
|
(25) в (24) нет "в иерархии"
|
|||
27
alexandr1
17.12.15
✎
00:08
|
(26) я вижу что нет, товар то в группах и элементах
|
|||
28
RomanYS
17.12.15
✎
00:14
|
(27) для этого там "или", ты сказал, что у тебя всего 2 уровня
|
|||
29
alexandr1
17.12.15
✎
00:16
|
(28) Блин он серый был, бесконечный уровень
|
|||
30
RomanYS
17.12.15
✎
00:21
|
(29) сделай столько "ИЛИ" сколько реально уровней ЕСТЬ в справочнике, можешь с небольшим запасом.
Или развлекайся с "в иерархии", только тогда забудь про "В" на несколько полей и соединения. Я спать. |
|||
31
alexandr1
17.12.15
✎
00:54
|
Спасибо, всем за помощь, может что придумаю
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |