Имя: Пароль:
1C
1С v8
Последний документ прихода
0 1С-ница
 
04.02.13
12:31
Доброго времени суток. Есть конфигурация УТ (11.0.4.5)
Задача найти остатки номенклатуры и цену закупки из последнего документа поступления.
Цену закупки ищу таким образом:

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

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


В результате выводит все документы поступления. Что не так?
1 cw014
 
04.02.13
12:31
МАКСИМУМ(ПоступлениеТоваровУслугТовары.Ссылка.Дата) - агрегатная функция. Вычисляет тебе дату последнего поступления и разносит ее по всем сгруппированым данным
2 ДенисЧ
 
04.02.13
12:33
выбрать первые ссылка
из документ.ПоступлениеТОваровУслуг.Товары
где Номенклатура = &ном
упорядочить по ссылка.Дата УБЫВ
3 ДенисЧ
 
04.02.13
12:33
выбрать первые 1 ссылка

разумеется
4 1С-ница
 
04.02.13
12:39
В моем запросе параметр &Номенклатура для отладки введен, при реальном выполнении будет соединение с ВТ Остатки по полю Номенклатура
5 Галахад
 
гуру
04.02.13
12:44
А вообще, регистрируйте цену номенклатуры контрагента.
Там срезом последних можно обойтись.
6 DrShad
 
04.02.13
12:44
(4) все равно (2)
7 1С-ница
 
04.02.13
12:54
Вот весь запрос

ВЫБРАТЬ
   СвободныеОстаткиОстатки.Номенклатура,
   СвободныеОстаткиОстатки.Номенклатура.Артикул,
   СвободныеОстаткиОстатки.ВНаличииОстаток
ПОМЕСТИТЬ Остатки
ИЗ
   РегистрНакопления.СвободныеОстатки.Остатки(, Склад = &Склад) КАК СвободныеОстаткиОстатки
ГДЕ
   СвободныеОстаткиОстатки.ВНаличииОстаток > 0

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

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
   Остатки.Номенклатура,
   Остатки.НоменклатураАртикул,
   Остатки.ВНаличииОстаток,
   Поступления.Цена,
   Поступления.Ссылка КАК Ссылка
ИЗ
   Остатки КАК Остатки
       ЛЕВОЕ СОЕДИНЕНИЕ Поступления КАК Поступления
       ПО Остатки.Номенклатура = Поступления.Номенклатура

УПОРЯДОЧИТЬ ПО
   Ссылка УБЫВ
8 1С-ница
 
04.02.13
12:55
Поступление - временная таблица, там нет настройки Порядок
9 Classic
 
04.02.13
13:03
(8)
Пробовала?
10 1С-ница
 
04.02.13
13:10
(9) Поставила галку Первые - появилась вкладка Порядок))
11 1С-ница
 
04.02.13
13:12
Но проблему это не решает, т к ВТ поступления в этом случае возвращает самый последний документ прихода, а в нем не обязательно будет нужная номенклатура из ВТ Остатки
12 Classic
 
04.02.13
13:21
(11)
Группируй по номенклатуре с максимальным регистратором(без цены), а потом к сгруппированному опять цепляй таблицу по номенклатуре и регистратору.
Ну или коррелированным
13 1С-ница
 
04.02.13
14:43
(12) Получилось, всем спасибо))