Имя: Пароль:
1C
1С v8
Туплю со срезом последних
, ,
0 Команданте
 
11.09.12
15:13
Делаю запрос
ВЫБРАТЬ
ЦеныНоменклатурыСрезПоследних.Номенклатура,
ЦеныНоменклатурыСрезПоследних.Цена
ИЗ РегистрСведений.ЦеныНоменклатурыСрезПоследних КАК ЦеныНоменклатурыСрезПоследних

Выходят дубли (подразумевается, по прочим измерениям регистра типа типа цен, ед. изм. и т.д.)
Не пойму, как сделать, чтобы вышла последняя цена без учёта прочих измерений...
Ведь в виртуальной таблице регистра накопления так и происходит..
1 zladenuw
 
11.09.12
15:14
отбор по номенклатуре во временной таблице
2 DrShad
 
11.09.12
15:14
дату укажи
3 Defender aka LINN
 
11.09.12
15:14
(0) А в виртуальной таблице регистра сведений - не происходит. Живи теперь с этим.
4 F13
 
11.09.12
15:15
(1) дубли по другим измерениям
5 Команданте
 
11.09.12
15:16
(3) ппц. 7 лет пишу запросы и только щас эту новость узнал
6 shamannk
 
11.09.12
15:16
(0) Хочешь узнать последнюю цену кирпича а дура машина не может понять какого красного или белого?
7 Команданте
 
11.09.12
15:16
(6) аха, типа того
8 F13
 
11.09.12
15:17
(0) Выбрать первые 1. Сгруппировать можно. Сделать таки отбор по измерениям. Сам выбирай.
9 Команданте
 
11.09.12
15:18
(8) группировка не поможет, потому что цены разные
выбрать первые 1 - выйдет одна номенклатура
остаётся только отбор по измерениям
(2) дата не влияет
но неужели нет способа...
10 Defender aka LINN
 
11.09.12
15:18
(9) Сам строй срез. Делов-то...
11 hhhh
 
11.09.12
15:18
(7) надо было мисту хоть иногда посещать. За семь лет здесь эту тему минимум 800 раз обсуждали, а ты где-то проспал, как медведь в берлоге.
12 zladenuw
 
11.09.12
15:18
(9) так тебе надо по определенному типу цен или средняя по всем ?
13 Команданте
 
11.09.12
15:19
(12) нужна последняя цена вне зависимости от типа цены и характеристики...
14 Команданте
 
11.09.12
15:20
цены идут по филиалам разные (тип цен)
бывают и характеристики
15 zladenuw
 
11.09.12
15:20
16 Classic
 
11.09.12
15:20
(9)
Группировку по номенклатуре и цене делай. Что вообще надо получить?
17 Команданте
 
11.09.12
15:21
(16) да делаю же, цены разные, по ним не сплющивается
18 Команданте
 
11.09.12
15:21
табличка не сплющивается при группировке по цене, цены-то разные
19 Команданте
 
11.09.12
15:21
а для цены агрегатную функцию не поставишь, ибо нужна последняя
короче, тупик
20 F13
 
11.09.12
15:22
(13) значит нужно получить макс. дату по номенклатуре и сделать соединение с регистром по этой дате, где Дата<=МаксДата.
21 Команданте
 
11.09.12
15:23
(20) да, по ходу так и придётся
22 fisher
 
11.09.12
15:23
Имхается мне, в самом деле проще самому будет срез сделать.
23 F13
 
11.09.12
15:23
(21) поправка дата=максдата
24 zladenuw
 
11.09.12
15:23
(15) ТС не видеть ссылки. там уже все разжовано
25 shamannk
 
11.09.12
15:23
ВЫБРАТЬ ПЕРВЫЕ 1
   КурсыВалютСрезПоследних.Курс,
   КурсыВалютСрезПоследних.Валюта,
   КурсыВалютСрезПоследних.Период
ИЗ
   РегистрСведений.КурсыВалют.СрезПоследних КАК КурсыВалютСрезПоследних

УПОРЯДОЧИТЬ ПО
   КурсыВалютСрезПоследних.Период УБЫВ
26 Classic
 
11.09.12
15:25
(17)
Так что получить надо?
например у тебя
01.01.01 Болт   Розничная 300
01.01.01 Болт   Оптовая   150

Че получить то надо для болта?
27 zladenuw
 
11.09.12
15:25
так и быть слямзю с той ветки :)
ВЫБРАТЬ
   МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена
ИЗ
   (ВЫБРАТЬ
       МАКСИМУМ(ЦеныНоменклатурыСрезПоследних.Период) КАК Период,
       ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура
   ИЗ
       РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, Номенклатура = &Номенклатура) КАК ЦеныНоменклатурыСрезПоследних
   
   СГРУППИРОВАТЬ ПО
       ЦеныНоменклатурыСрезПоследних.Номенклатура) КАК ВложенныйЗапрос
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
       ПО ВложенныйЗапрос.Период = ЦеныНоменклатуры.Период
           И ВложенныйЗапрос.Номенклатура = ЦеныНоменклатуры.Номенклатура
28 Blumawolf
 
11.09.12
15:26
(19) тут в (26) правильно сказали - последних много бывает, какую именно последнюю?
29 hhhh
 
11.09.12
15:28
(21) а вообще смысл какой? Допустим, по одной характеристике раньше установлена цена, а по другой на три секунды позже. И мы берем цену фактически от балды.
30 Miss1C
 
11.09.12
15:28
(11))
31 zladenuw
 
11.09.12
15:28
(28) это если только в разрезе даты. а если в секундах. то вопрос отпадает.
32 Команданте
 
11.09.12
15:28
(26) вот такая вот постановка задачи, блин
буду юзеров линейкой по пальцам бить
(27) пасибо
33 Команданте
 
11.09.12
15:29
(29) да, получается, от балды
34 zladenuw
 
11.09.12
15:29
(33) жесть
35 Команданте
 
11.09.12
15:29
(31) точно, там же по секундам
36 Classic
 
11.09.12
15:29
(32)
Так надо 300 получить или 150?
37 Classic
 
11.09.12
15:30
(35)
Та какая разница? Записи могут быть и на одну секунду с разными ключевыми полями
38 Команданте
 
11.09.12
15:30
(36) что программа решит выбросить
39 Команданте
 
11.09.12
15:30
Комрады, подскажите, пожалуйста, ещё, что я делаю не так с другой таблицей
ТАм опять же дубли!!!!! немного, но есть

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

УПОРЯДОЧИТЬ ПО
   НоменклатураНаименование
40 Команданте
 
11.09.12
15:32
вообще пора бы уже сделать новую виртуальную таблицу для таких случаев, чтобы не мучаться с максимумами и минимумами
41 zladenuw
 
11.09.12
15:34
(39) смотри как тут
(27) ВЫБРАТЬ
   МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена
42 Бледно Золотистый
 
11.09.12
15:36
(39) Дубли исчезнут, как только ты ответишь на (26)
43 Команданте
 
11.09.12
15:36
(41) понял в чём хитрость. спасибо