Имя: Пароль:
1C
1С v8
как правильно записать этот Запрос
, ,
0 Сэм
 
18.03.13
20:40
пакетный запрос
первый запрос выдает номенклатуру из справочника
второй цены номенклатуры  из регистра сведений (вид и дата задается параметрами)
третий должен выбрать из первого номенклатуру из второго цену нужного вида

ВЫБРАТЬ
   Наименование КАК НаименованиеИзДок
ПОМЕСТИТЬ НоменклатураИзДокумента
ИЗ
   Справочник.Номенклатура
;

ВЫБРАТЬ
   ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
   ЦеныНоменклатурыСрезПоследних.ВидЦены КАК ВидЦены,
   ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
ПОМЕСТИТЬ ЦеныНоменклатурыДатаВид
ИЗ
   РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата1, ) КАК ЦеныНоменклатурыСрезПоследних
ГДЕ
   ЦеныНоменклатурыСрезПоследних.ВидЦены = &ВидЦены
       
;
ВЫБРАТЬ
   *
ИЗ
   НоменклатураИзДокумента КАК НоменклатураИзДокумента
   ПОЛНОЕ СОЕДИНЕНИЕ
   ЦеныНоменклатурыДатаВид КАК ЦеныНоменклатурыДатаВид
   ПО
   НоменклатураИзДокумента.НаименованиеИзДок = ЦеныНоменклатурыДатаВид.Номенклатура
ГДЕ  
   НаименованиеИзДок= &НаименованиеИзДок

По итогу первый и второй запрос готовят нужные таблицы правильно, а вот в третьей таблице полная лажа, таблицы склеиваются неправильно
1 Сэм
 
18.03.13
20:40
конфа УТ 11.1  типовая, запрос пишу а консоли запросов
2 mikecool
 
18.03.13
20:48
херня какая то
все делай одним запросом
3 NcSteel
 
18.03.13
20:50
(2) +100500
4 H A D G E H O G s
 
18.03.13
20:52
(0) Бред какой-то.
Позовите специалиста.
5 Сэм
 
18.03.13
20:54
(2) я могу все это вытянуть из второго запроса
только нужно примерно так как написал
6 mikecool
 
18.03.13
20:55
(5) так как написал - не нужно тебе
7 H A D G E H O G s
 
18.03.13
20:56
(5) А ты - упорный парень, я смотрю...
8 Speshuric
 
18.03.13
20:56
(0)
1. На кой ляд тут временные таблицы?
2. Зачем полное соединение таблицы из строк с таблицей соссылочным полем по равенству строки и ссылки?
3. Зачем полное соединение?
9 Сэм
 
18.03.13
20:57
(2) в целом нужен запрос в котором по документам реализации будет получена цена розничная и закупочная
10 Сэм
 
18.03.13
20:58
(8) я учусь, поэтому такой бред и получился
11 H A D G E H O G s
 
18.03.13
20:58
(9) Я не вижу в этом запросе документов реализации. Почему?
12 NcSteel
 
18.03.13
20:59
(9) Может быть много документов реализации в момент формировании запроса? Или запрос формируется только по одному документу?
13 Сэм
 
18.03.13
21:00
в таблице 1 просто идет перечисление номенклатуры, потом переделаю на документ
14 NcSteel
 
18.03.13
21:01
(13) Левое соединение тебе в помощь и без пакетов.
15 Сэм
 
18.03.13
21:01
(14) легко сказать))))
16 Speshuric
 
18.03.13
21:02
17 NcSteel
 
18.03.13
21:03
(15) И легко сделать. Открой любую книгу про запросы и почитай немного.
18 H A D G E H O G s
 
18.03.13
21:10
(14) Ниче не левое.
19 H A D G E H O G s
 
18.03.13
21:10
(14) Потом кричат, что все тормозит.
20 NcSteel
 
18.03.13
21:11
(19) Левое , левое.

Если цен нет в регистре , то строки документа должны не пропадать, а иначе ни кто не разберется.
21 Сэм
 
18.03.13
21:11
(17) я понимаю что писать там не много и т.д., но нету книг и гуру нету, короче жжесть
только метод научного тыка в помощь и добрый люд на форуме
22 H A D G E H O G s
 
18.03.13
21:11
ТабЧасть в ВТ, с фильтром по ссылке, потом в параметры ВТ регистра засунуть фильтр по номенклатуре из отобранной таб части и поместить в ВТ, потом 1 и 2 Вт соединить.
23 NcSteel
 
18.03.13
21:12
(22) Мля, зачем? )))) это лишнее.
24 H A D G E H O G s
 
18.03.13
21:13
(23) Как говорил кто-то
"Включите РЛС и посмотрите профайлер".
25 NcSteel
 
18.03.13
21:16
(24) Нууууу )))) про адский РЛС не спорю.
26 Сэм
 
18.03.13
21:18
(22) ага, а открыть консоль и прогнать потом сюда написать можешь? ))
27 NcSteel
 
18.03.13
21:20
(26) Еще добавь "Слабак".
28 H A D G E H O G s
 
18.03.13
21:21
Pfff
29 H A D G E H O G s
 
18.03.13
21:27
ВЫБРАТЬ РАЗЛИЧНЫЕ
   РеализацияТоваровУслугТовары.Номенклатура
ПОМЕСТИТЬ Товары
ИЗ
   Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ГДЕ
   РеализацияТоваровУслугТовары.Ссылка = &Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ЦеныНоменклатурыСрезПоследних.Номенклатура,
   МАКСИМУМ(ВЫБОР
           КОГДА ЦеныНоменклатурыСрезПоследних.ВидЦены = &ВидЦеныЗакупочная
               ТОГДА ЦеныНоменклатурыСрезПоследних.Цена
       КОНЕЦ) КАК ЦенаЗакупочная,
   МАКСИМУМ(ВЫБОР
           КОГДА ЦеныНоменклатурыСрезПоследних.ВидЦены = &ВидЦеныПродажная
               ТОГДА ЦеныНоменклатурыСрезПоследних.Цена
       КОНЕЦ) КАК ЦенаПродажная
ПОМЕСТИТЬ Цены
ИЗ
   РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
           &Дата1,
           Номенклатура В
                   (ВЫБРАТЬ
                       Товары.Номенклатура
                   ИЗ
                       Товары КАК Товары)
               И ВидЦены В (&ВидЦеныЗакупочная, &ВидЦеныПродажная)) КАК ЦеныНоменклатурыСрезПоследних

СГРУППИРОВАТЬ ПО
   ЦеныНоменклатурыСрезПоследних.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Товары.Номенклатура,
   ЕСТЬNULL(Цены.ЦенаЗакупочная, 0) КАК ЦенаЗакупочная,
   ЕСТЬNULL(Цены.ЦенаПродажная, 0) КАК ЦенаПродажная
ИЗ
   Товары КАК Товары
       ЛЕВОЕ СОЕДИНЕНИЕ Цены КАК Цены
       ПО Товары.Номенклатура = Цены.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ Товары
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ Цены
30 Сэм
 
18.03.13
21:38
(29) спасибо большое
даже не ожидал что помогут
посижу подумаю, мне будет полезно))))))))
31 NcSteel
 
18.03.13
21:40
(30) Только не спейся....)
32 Мимохожий Однако
 
18.03.13
21:48
(29)Уничтожить для очистки памяти?
33 H A D G E H O G s
 
18.03.13
21:53
(32) Уничтожить для того, чтобы SQL выполнил Drop Table раньше, чем переменная Запрос уйдет за область видимости (постобработка может затянуться) и TempDB меньше фрагментировался и рос.
34 sapphire
 
18.03.13
23:21
(33) Да ты прямо боишься, что рейз темпдб будет просто лавинообразным? :)
35 H A D G E H O G s
 
18.03.13
23:24
(34) Один раз видел, как он занимал 1.5 гига. Ну и нафига?
Мне нетрудно написать.
36 Царь
 
20.03.13
22:40
(29) как можно сделать тоже самое, но по документам за период?