Имя: Пароль:
1C
 
Последняя запись в регистре сведений с несколькими измерениями
0 Буковка
 
11.06.24
13:49
Добрый день!
Есть регистр сведений (измерения вид цены, номенклатура).
Нужно получить последнюю запись.
Например:
01.06.24 оптовая карандаш
04.06.24 розничная карандаш

Срез последних выдает обе записи. А нужно только последнюю.
Первые 1 и сортировка по дате убыв не подходит, т к передаю массив в запрос

Заранее спасибо!
1 2S
 
11.06.24
14:00
внутренее соединение с "максимум по дате"
2 lEvGl
 
11.06.24
14:35
(0) сначала срез без видов цен, в вт, потом притянуть виды цен левым соединением по номенклатуре и периоду
не то написал в начале. был какой то вариант получить срез по одному измерению, через Где что ли...
3 Буковка
 
11.06.24
14:10
(1), (2) Спасибо!
так написала, вроде работает

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

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ЦеныНоменклатуры.РЕ_ПричинаИзмененияЦен КАК РЕ_ПричинаИзмененияЦен,
    ЦеныНоменклатуры.Номенклатура КАК Номенклатура
ИЗ
    РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Данные КАК Данные
        ПО ЦеныНоменклатуры.Период = Данные.Период
            И ЦеныНоменклатуры.Номенклатура = Данные.Номенклатура
4 trad
 
11.06.24
14:14
(3) если для двух видов цен одной номенклатуры будет одинаковый макс период, то получите задвоение
5 trad
 
11.06.24
14:17
Нужно сначала получить Ном, максПериод
Потом по этой паре получить Ном, максПериод, максВид
Потом по этой тройке уже выдернуть запись
6 Смотрящий
 
11.06.24
14:21
(3)
ВЫБРАТЬ ПЕРВЫЕ 1
    ЦеныНоменклатурыСрезПоследних.ВидЦены КАК ВидЦены,
    ЦеныНоменклатурыСрезПоследних.Период КАК Период
ПОМЕСТИТЬ втДанные
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаСреза, Номенклатура  в (&Товары)) КАК ЦеныНоменклатурыСрезПоследних

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

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

Вот так грамотнее
7 trad
 
11.06.24
14:23
(6) ВЫБРАТЬ ПЕРВЫЕ 1
Серьезно?

Из (0)
Первые 1 и сортировка по дате убыв не подходит, т к передаю массив в запрос
8 Буковка
 
11.06.24
14:29
(7)
переделала, спасибо:

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

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    МАКСИМУМ(ЦеныНоменклатуры.РЕ_ПричинаИзмененияЦен) КАК Причина,
    ЦеныНоменклатуры.Номенклатура КАК Номенклатура,
    МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период
    ПОМЕСТИТЬ ДанныеПериодПричина
ИЗ
    РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДанныеПериод КАК ДанныеПериод
        ПО (ЦеныНоменклатуры.Период = ДанныеПериод.Период)
            И (ЦеныНоменклатуры.Номенклатура = ДанныеПериод.Номенклатура)
СГРУППИРОВАТЬ ПО
    ЦеныНоменклатуры.Номенклатура
    ;
    ////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ЦеныНоменклатуры.РЕ_ПричинаИзмененияЦен КАК Причина,
    ЦеныНоменклатуры.Номенклатура КАК Номенклатура
ИЗ
    РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДанныеПериодПричина КАК ДанныеПериодПричина
        ПО (ЦеныНоменклатуры.Период = ДанныеПериодПричина.Период)
            И (ЦеныНоменклатуры.Номенклатура = ДанныеПериодПричина.Номенклатура)
9 Hmster
 
11.06.24
14:46
(0) А какая из этих будет последняя?

04.06.24 оптовая   карандаш
04.06.24 розничная карандаш