Имя: Пароль:
1C
1С v8
Очень нужна помощь с запросом
0 Bober777
 
26.12.12
13:14
Всем привет, в запросах не силен. Помогите пож каким образом нужно построить запрос. Что бы увидеть на выходе иметь примерно следующие поля.
1 - Номенклатура
2 - Цена 1 (опт)
3 - цена 2 (розница)
4 - цена 3 (сайт розница)
5 - цена 4 (сайт опт)

<CODE>  
ВЫБРАТЬ РАЗРЕШЕННЫЕ
   ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
   ЦеныНоменклатурыСрезПоследних.Характеристика КАК Характеристика,
   ЦеныНоменклатурыСрезПоследних.ВидЦены КАК ВидЦены,
   ЦеныНоменклатурыСрезПоследних.Упаковка КАК Упаковка,
   ЦеныНоменклатурыСрезПоследних.Валюта КАК Валюта,
   ЦеныНоменклатурыСрезПоследних.Номенклатура.ЦеноваяГруппа КАК ЦеноваяГруппа,
   ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
{ВЫБРАТЬ
   Номенклатура.*,
   Характеристика.*,
   ВидЦены.*,
   Цена,
   Упаковка.*,
   Валюта.*,
   ЦеноваяГруппа.*}
ИЗ
   РегистрСведений.ЦеныНоменклатуры.СрезПоследних(КОНЕЦПЕРИОДА(&Период, ДЕНЬ), ) КАК ЦеныНоменклатурыСрезПоследних
ГДЕ
   ЦеныНоменклатурыСрезПоследних.Цена > 0
{ГДЕ
   ЦеныНоменклатурыСрезПоследних.Номенклатура.*,
   ЦеныНоменклатурыСрезПоследних.Характеристика.*,
   ЦеныНоменклатурыСрезПоследних.ВидЦены.*,
   ЦеныНоменклатурыСрезПоследних.Цена,
   ЦеныНоменклатурыСрезПоследних.Упаковка.*,
   ЦеныНоменклатурыСрезПоследних.Валюта.*}
ИТОГИ ПО
   Номенклатура ИЕРАРХИЯ
</CODE>
1 Bober777
 
26.12.12
13:15
содрал данный пример в отчете прайс лист.
2 Bober777
 
26.12.12
13:16
кстати как тут определять код в теге? какой тег должен быть?
3 DexterMorgan
 
26.12.12
13:17
СУММА(ВЫБОР КОГДА ЦеныНоменклатурыСрезПоследних.ВидЦены = &Опт ТОГДА
ЦеныНоменклатурыСрезПоследних.Цена
Иначе 0
КОНЕЦ) КАК ЦенаОпт

ну и группировка по остальным полям
4 pessok
 
26.12.12
13:18
(3) ужасы предлагаешь
(0) группировка колонок по типу цен
5 DexterMorgan
 
26.12.12
13:19
(4) А я хз если скд то ты прав, а если просто запрос у него?
6 DexterMorgan
 
26.12.12
13:21
(4) Про отчет ни слова, а фигурные скобки есть и у построителя есичо
7 pessok
 
26.12.12
13:24
(6) да это понятно :) но нужно же уметь телепатировать :)
8 MKZM
 
26.12.12
13:25
ВЫБРАТЬ
   ВложенныйЗапрос.Ссылка,
   ЦеныНоменклатурыСрезПоследних.Цена,
   ЦеныНоменклатурыСрезПоследних1.Цена КАК Цена1
ИЗ
   (ВЫБРАТЬ
       Номенклатура.Ссылка КАК Ссылка
   ИЗ
       Справочник.Номенклатура КАК Номенклатура
   ГДЕ
       Номенклатура.Ссылка В ИЕРАРХИИ(&Ссылка)) КАК ВложенныйЗапрос
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ТипЦен = &Тип1) КАК ЦеныНоменклатурыСрезПоследних
       ПО ВложенныйЗапрос.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &Тип1) КАК ЦеныНоменклатурыСрезПоследних1
       ПО ВложенныйЗапрос.Ссылка = ЦеныНоменклатурыСрезПоследних1.Номенклатура
9 DexterMorgan
 
26.12.12
13:28
(8) С чего это будет быстрее работать чем ВЫБОР КОГДА? В этом случае вообще левых соединений не будет, все выбирается из одной таблицы с последующей группировкой
10 DexterMorgan
 
26.12.12
13:29
У него кстати четыре вида цены, 4 раза соединять будешь?
11 MKZM
 
26.12.12
13:32
при возврате 20000 номенклатуры во вложенном запросе, все другое выбирается за несколько минут.
12 MKZM
 
26.12.12
13:34
Хоть 5
13 DexterMorgan
 
26.12.12
13:35
(11) Да ну нафиг, чета я не верю что 4 левых соединения работают быстрее группировки
14 DexterMorgan
 
26.12.12
13:36
И зачем вообще вложенный запрос
15 MKZM
 
26.12.12
13:36
Убеждать не буду
16 DexterMorgan
 
26.12.12
13:37
(15) Ты замер делал?
17 Всеяд
 
26.12.12
13:40
За левое соединение с виртуальной таблицей должен быть расстрел на месте.
18 DexterMorgan
 
26.12.12
13:42
(17) расстрел на мисте*?
19 pessok
 
26.12.12
13:44
(17) а как получить остатки, включая нулевые?
20 DexterMorgan
 
26.12.12
13:47
(19) Ну тут же можно обойтись
21 sapphire
 
26.12.12
13:47
(17) Ату его, ату! Линчевать немедля
22 pessok
 
26.12.12
13:49
(20) через гланды доставать, когда можно к справочника слева прицепить ТоварыНаСкладахОстатки? :)
23 Всеяд
 
26.12.12
13:52
Хинт: никто не запрещает соединяться с данными из виртуальной таблицы. А вот с самой виртуальной таблицей - нинада.
24 MKZM
 
26.12.12
13:54
"За левое соединение с виртуальной таблицей должен быть расстрел на месте."

Тогда надо расстрелять всех кто участвовал в разработках стандартных и не очень конфигураций.
25 pessok
 
26.12.12
13:54
(23) выдыхай
26 Bober777
 
26.12.12
16:02
проверю и группировки и левые соединения специально замерю))) а так спасибо за участие в ветке всем обсолютно)).
27 Bober777
 
26.12.12
16:03
я долго молчал потому что уходил и еще у меня инета не было))).
28 sapphire
 
26.12.12
16:06
(24)Да, Да, да. Их в первую очередь!
29 Axel2009
 
26.12.12
16:07
(17) чета я не понял, за что расстрел то? что замедляет?
30 DexterMorgan
 
26.12.12
16:07
(26) Отпишись, пжста, и где левое соединение добавь индекс по номенклатуре
31 sapphire
 
26.12.12
16:09
(29)
за это:
ЦеныНоменклатурыСрезПоследних.Номенклатура.ЦеноваяГруппа
32 Axel2009
 
26.12.12
16:12
(31) а в чем проблема то?
33 Bober777
 
26.12.12
16:12
(8) как код вставлять в тег?
34 pessok
 
26.12.12
16:14
это код
35 pessok
 
26.12.12
16:14
мля :) [ 1C ] [ /1С ] без пробелов
36 Bober777
 
26.12.12
16:16
[ 1C ] мля :)  спасибо[ /1С ]
37 Bober777
 
26.12.12
16:17
[ 1C ]мля :)  спасибо[ /1С ]
38 Bober777
 
26.12.12
16:17
мля :)  спасибо
39 Bober777
 
26.12.12
16:17
да че за фигня
40 Bober777
 
26.12.12
16:18
мля :)  спасибо
41 Axel2009
 
26.12.12
16:18
(39) буквы нерусские
тест
42 Bober777
 
26.12.12
16:19
мля :)  спасибо
43 Bober777
 
26.12.12
16:19
есть коннект))
44 Bober777
 
26.12.12
16:22
(3) а для чего Функция СУММА нужна?

СУММА(ВЫБОР КОГДА ЦеныНоменклатурыСрезПоследних.ВидЦены = &Опт ТОГДА
ЦеныНоменклатурыСрезПоследних.Цена
Иначе 0
КОНЕЦ) КАК ЦенаОпт
45 Axel2009
 
26.12.12
16:28
(44) чтобы агрегат отработал
46 Bober777
 
26.12.12
16:31
(45) поясни тугорогому), Для меня допустим в табличной части могут участвовать несколько одинаковых позиций номенклатуры... и у них количество разное, так что бы его суммировать в запросе применяют эту функцию. Перед тем как записи в регистре накопления сделать. А тута она зачем?
47 Axel2009
 
26.12.12
16:32
(46) затем что у тебя получается таблица вида
Н ТП1
Н ТП2
Н ТП3
вот чтобы их разделить на разные колонки и придумывают подобные выборки чтобы у тебя получилось.
Н ТП1 ТП2 ТП3
48 Bober777
 
26.12.12
16:35
(47) Крутяк, спасибо друг)