Имя: Пароль:
1C
1С v8
Вопрос по запросам
0 1634344
 
30.05.12
17:48
Как реализовать запрос в котором нужно выбрать документы, а затем вытащить цены реализации на позиции номенклатуры по этим документам, на даты этих документов.

Сначала делаю вложенный запрос

ВЫБРАТЬ
   РасходнаяНакладнаяСостав.Ссылка.Дата как Период1,
   РасходнаяНакладнаяСостав.Номенклатура,
   РасходнаяНакладнаяСостав.Ссылка.Номер,
   РасходнаяНакладнаяСостав.Ссылка.Склад
ПОМЕСТИТЬ ВТДок
ИЗ
   Документ.РасходнаяНакладная.Состав КАК РасходнаяНакладнаяСостав
ГДЕ
   РасходнаяНакладнаяСостав.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2
   И РасходнаяНакладнаяСостав.Ссылка.Склад = &Склад
;

/////////////////////////////////////////////

А вот как дальше совместить период из регистра ЦеныПоставщиковСрезПоследних и период1 из ВТДок, сообразить не могу :(

Что бы в результате получить  
Номенклатура, ДатаДокумента, Цена
1 le_
 
30.05.12
17:49
Б0ян оттакенный [:]||||||||||||||||||||||||||||||||[:]
2 Жан Пердежон
 
30.05.12
17:50
(0) книжки почитай что ль
3 le_
 
30.05.12
17:51
4 1634344
 
30.05.12
17:57
Спасибо за ссылку
5 1634344
 
01.06.12
08:49
Как можно сделать так что бы запрос работал корректно:
ВЫБРАТЬ
   РасходнаяНакладнаяСостав.Номенклатура,
   РасходнаяНакладнаяСостав.Ссылка.Дата,
   РасходнаяНакладнаяСостав.Ссылка,
   РасходнаяНакладнаяСостав.Ссылка.Контрагент.КатегорияЦенРозницы.Ссылка,
   РасходнаяНакладнаяСостав.ЕдиницаИзмерения,
   РасходнаяНакладнаяСостав.Ссылка.Фирма
ПОМЕСТИТЬ ВТБезЦены
ИЗ
   Документ.РасходнаяНакладная.Состав КАК РасходнаяНакладнаяСостав
ГДЕ
   РасходнаяНакладнаяСостав.Ссылка.Склад = &Склад
   И РасходнаяНакладнаяСостав.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

СГРУППИРОВАТЬ ПО
   РасходнаяНакладнаяСостав.Номенклатура,
   РасходнаяНакладнаяСостав.Ссылка.Дата,
   РасходнаяНакладнаяСостав.Ссылка.Склад,
   РасходнаяНакладнаяСостав.Ссылка,
   РасходнаяНакладнаяСостав.Ссылка.Контрагент.КатегорияЦенРозницы.Ссылка,
   РасходнаяНакладнаяСостав.ЕдиницаИзмерения,
   РасходнаяНакладнаяСостав.Ссылка.Фирма
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ЦеныНоменклатуры.Период КАК Период,
   втБезЦены.КонтрагентКатегорияЦенРозницыСсылка,
   втБезЦены.ЕдиницаИзмерения,
   втБезЦены.Фирма,
   втБезЦены.Номенклатура,
   втБезЦены.Дата
ПОМЕСТИТЬ втМаксПериод
ИЗ
   ВТБезЦены КАК втБезЦены
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
       ПО втБезЦены.КонтрагентКатегорияЦенРозницыСсылка = ЦеныНоменклатуры.КатегорияЦен
           И втБезЦены.Фирма = ЦеныНоменклатуры.Фирма
           И втБезЦены.ЕдиницаИзмерения = ЦеныНоменклатуры.ЕдиницаИзмерения

СГРУППИРОВАТЬ ПО
   втБезЦены.КонтрагентКатегорияЦенРозницыСсылка,
   втБезЦены.ЕдиницаИзмерения,
   втБезЦены.Фирма,
   втБезЦены.Номенклатура,
   втБезЦены.Дата,
   ЦеныНоменклатуры.Период

ИНДЕКСИРОВАТЬ ПО
   Период
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   втМаксПериод.Номенклатура,
   втМаксПериод.Дата,
   втМаксПериод.КонтрагентКатегорияЦенРозницыСсылка,
   ЦеныНоменклатуры.Период,
   ЦеныНоменклатуры.КатегорияЦен,
   ЦеныНоменклатуры.Цена
ИЗ
   втМаксПериод КАК втМаксПериод
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
       ПО втМаксПериод.Период = ЦеныНоменклатуры.Период
           И втМаксПериод.КонтрагентКатегорияЦенРозницыСсылка = ЦеныНоменклатуры.КатегорияЦен
           И втМаксПериод.Фирма = ЦеныНоменклатуры.Фирма
           И втМаксПериод.ЕдиницаИзмерения = ЦеныНоменклатуры.ЕдиницаИзмерения


Так как периодичность стоит пределах секунды то в результате запрос выводит позиции номенклатуры со всеми вариантами цен за данный период.

Если во втором запросе меняю ЦеныНоменклатуры.Период КАК Период на МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период то запрос соответственно выдаёт максимальную цену на данный период.

А мне нужна актуальная цена.
6 1634344
 
01.06.12
08:59
Будет ли правильно если я во втором запросе буду еще соединять и по периоду, а третий вообще уберу. Что то я вообще запутался с этим запросом
7 luckyluke
 
01.06.12
09:03
8 1634344
 
01.06.12
10:19
Посмотрел как реализовано В книге знаний, ну все же мне хочется разобраться что я сделал не правильно в этом алгоритме, во 2-й запрос я добавил    И втБезЦены.Дата >= ЦеныНоменклатуры.Период. Но все равно он работает не корректно