Имя: Пароль:
1C
1С v8
Получить закупочную цену в запросе
0 Admin_Net_1C
 
30.01.13
12:18
Народ, подскажите плиз что не так дела.
Задача есть документ Ввод остатков сосбвенных товаров, необходимо для каждой номенклатуры из табличной части получить закупочную цену на выбранную дату. В случае, если на указанную дату цена не зарегистрирована, то должна попадать цена из табличной части документа.
Делаю следующий запрос:

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

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

УПОРЯДОЧИТЬ ПО
   ВводОстатковТовары.НомерСтроки

Все получается, но в случае, если на указанную дату по данной номенклатуре цена не зарегистрирована, то данная строка документа в результат запроса не попадает.
Подскажите, что я делаю не так?
1 Галахад
 
гуру
30.01.13
12:20
Левое.
2 Wobland
 
30.01.13
12:20
не левое соединение делаешь
3 Лефмихалыч
 
30.01.13
12:25
а еще надо сравнивать период регистра с передаваемой датой, иначе вот это условие соблюдено не будет: "В случае, если на указанную дату цена не зарегистрирована, то должна попадать цена из табличной части документа"
4 hhhh
 
30.01.13
12:26
(0) а вот это зачем??

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

разве бывает в документе две одинаковые номенклатуры, и чтобы номера строк у них тоже совпадали?
5 Admin_Net_1C
 
30.01.13
12:28
(1) (2) спасибо, понял
(4) по идее не должно быть, но точно не уверен, т.к. документы ввода остатков сформированы при переносе. А если не бывает, то тогда нужно строку:
ВводОстатковТовары.НомерСтроки
в секцию ВЫБРАТЬ запроса поместить с каккой нибудь функцией (МАКСИМУМ, МИНИМУМ), так?
6 GLazNik
 
30.01.13
12:32
(5) Нет. Нужно убрать нафиг сгруппировать и убрать все минимумы и максимумы... лишние они
7 Admin_Net_1C
 
30.01.13
12:37
(5) ок, понял
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn