Имя: Пароль:
1C
1С v8
прошу вашу помощь с запросом.
0 zippygrill
 
10.04.12
15:40
Ести регистр ПродажиОбороты. как обично :)
один из регистраторов это документ ЧекККМ. Понятно что у того документа ести таб.часть Товары, Оплата, и т.д.
Так вот, хочу получить номенклатуру из продажиОбороты а также видОплаты.
Пробовал левое соединение с табчасть Оплата, но при выводе ВидОплаты NULL.
Пробовал вложенном запросом, тоже самое.
подскажите правильный путь :)
1 zippygrill
 
10.04.12
15:41
*обычно
2 DrShad
 
10.04.12
15:41
свой текст запроса в студию
3 rbcvg
 
10.04.12
15:41
покажи, как пробовал
4 zippygrill
 
10.04.12
15:42
мне прям стыдно :) сейчас
5 DrShad
 
10.04.12
15:42
соврал что пробовал?
6 zippygrill
 
10.04.12
15:43
это с вложеным запросом.

ВЫБРАТЬ
   ВложенныйЗапрос.ВидОплаты КАК ВидОплаты,
   ПродажиОбороты.Регистратор КАК Регистратор,
   ПродажиОбороты.ПериодДень КАК ПериодДень,
   ПродажиОбороты.Номенклатура КАК Номенклатура,
   ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот,
   ПродажиОбороты.КоличествоОборот КАК КоличествоОборот
ИЗ
   РегистрНакопления.Продажи.Обороты(&НачалоПериода {(&НачалоПериода)}, &КонецПериода {(&КонецПериода)}, Авто, ) КАК ПродажиОбороты
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           ЧекККМОплата.ВидОплаты КАК ВидОплаты,
           ЧекККМТовары.Номенклатура КАК Номенклатура,
           ЧекККМТовары.Ссылка КАК Ссылка
       ИЗ
           Документ.ЧекККМ.Товары КАК ЧекККМТовары
               ПОЛНОЕ СОЕДИНЕНИЕ Документ.ЧекККМ.Оплата КАК ЧекККМОплата
               ПО ЧекККМТовары.Ссылка = ЧекККМОплата.Ссылка) КАК ВложенныйЗапрос
       ПО ПродажиОбороты.Регистратор = ВложенныйЗапрос.Ссылка
ГДЕ
   ПродажиОбороты.Номенклатура.ВидНоменклатуры = &ВидНоменклатуры
ИТОГИ
   СУММА(СтоимостьОборот),
   СУММА(КоличествоОборот)
ПО
   ОБЩИЕ,
   ВидОплаты,
   Регистратор,
   ПериодДень,
   Номенклатура
7 zippygrill
 
10.04.12
15:43
(5)нет
8 DrShad
 
10.04.12
15:48
(7) ВЫБРАТЬ
           ЧекККМОплата.ВидОплаты КАК ВидОплаты,
           ЧекККМТовары.Номенклатура КАК Номенклатура,
           ЧекККМТовары.Ссылка КАК Ссылка
       ИЗ
           Документ.ЧекККМ.Товары КАК ЧекККМТовары
               ПОЛНОЕ СОЕДИНЕНИЕ Документ.ЧекККМ.Оплата КАК ЧекККМОплата
               ПО ЧекККМТовары.Ссылка = ЧекККМОплата.Ссылка

что показывает?
9 zippygrill
 
10.04.12
15:51
(8)вид оплаты для каждого регистратора и номенклатуры.
10 Medved_1
 
10.04.12
15:52
(6) м.б. попробовать соединять по регистратору?
11 Medved_1
 
10.04.12
15:52
пардон... туплю к вечеру
12 zippygrill
 
10.04.12
15:53
(11) :)
13 DrShad
 
10.04.12
15:54
(9) поставь в (8) условие по ссылке и посмотри результат
14 Medved_1
 
10.04.12
15:56
что ещё бросается в глаза - во вложенном запросе при наличии нескольких строк и в товарах и в оплатах, вы получите декартово произведение обоих таблиц...
15 zippygrill
 
10.04.12
15:56
(13) И ЧекККМОплата.Ссылка = ЧекККМТовары.Ссылка ?
16 zippygrill
 
10.04.12
16:01
ой ЧекККМОплата.Ссылка = &МояСсылка
результат пустой
17 Medved_1
 
10.04.12
16:01
предложение:
соединить виртуальную таблицу регистра с документном по "регистратор-ссылка", но ТЧ "Оплаты" получить во внутреннюю (т.е. вложенную) таблицу
18 zippygrill
 
10.04.12
16:02
+(16) там еще торчал отбор по вид номенклатуры. результат ести.
19 zippygrill
 
10.04.12
16:02
(17) твой пример
20 Medved_1
 
10.04.12
16:05
ещё:
1. "ЧекККМОплата.Ссылка = &МояСсылка" заменить на "ПродажиОбороты.Регистратор = &МояСсылка" или (что лучше и правильнее (т.к. на экзамене за такое как у Вас - моментом кол и вон отсюда)) поставить в отбор в виртуальную таблицу регистра.

2. При закрытии кассовой смены ЧекиККМ преобразуются в один документ - отчет за кассовую смену :) "&МояСсылка" - точно ещё присутствует в БД?
21 zippygrill
 
10.04.12
16:11
22 Medved_1
 
10.04.12
16:13
"ВЫБРАТЬ
|    ПродажиОбороты.Регистратор,
|    ПродажиОбороты.ПериодДень,
|    ПродажиОбороты.Номенклатура,
|    ПродажиОбороты.СтоимостьОборот,
|    ЧекККМ.Оплата.(
|        ВидОплаты,
|        Сумма
|    )
|ИЗ
|    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Авто, &МояССылка) КАК ПродажиОбороты
|        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЧекККМ КАК ЧекККМ
|        ПО ПродажиОбороты.Регистратор = ЧекККМ.Ссылка
|ГДЕ
|    ПродажиОбороты.Номенклатура.ВидНоменклатуры = &ВидНоменклатуры"
23 Medved_1
 
10.04.12
16:16
грубо и навскидку. экспериментируй
24 zippygrill
 
10.04.12
16:19
25 Medved_1
 
10.04.12
16:23
:) ну и?
1. регистратор не ЧекККМ - в результате вложенная таблица будет пустой.
2. Соединяй с "отчетом о розничных"
3. обходи результат запроса и анализируй...

думайте, товаристчЪ :)
26 Medved_1
 
10.04.12
16:24
коьякдолжен будешь :)
27 Medved_1
 
10.04.12
16:24
*коньяк
28 zippygrill
 
10.04.12
16:40
(27) )))
2 + 2 = 3.9999999999999999999999999999999...