Имя: Пароль:
1C
1С v8
Таблица значений. Получить последнюю строку
,
0 Начинающий_13
 
13.07.16
08:39
Здравствуйте.
Имею таблицу значений (Результат запроса).

Номенклатура
Характеристика
Цена
ЦенаСтарая

Результат = Запрос.Выполнить().Выгрузить();

В ней всегда 3 последние записи периодического РС. Скажите как можно быстро получать(оставить)только последнюю запись в ТЗ по индексу(он максимальный ВСЕГДА), не хочется циклить.
1 lxs
 
13.07.16
08:43
Результат.Получить(Результат.Количество()-1)
2 lxs
 
13.07.16
08:43
правда это жуткий г0внокод)) надо в запросе это делать сразу))
3 Mankubus
 
13.07.16
08:44
(0) ВЫБРАТЬ ПЕРВЫЕ 1 УПОРЯДОЧИТЬ по УБЫВ
4 Начинающий_13
 
13.07.16
08:46
В запросе я не могу этого сделать там несколько ТЗ по связям.
5 Ёпрст
 
13.07.16
08:47
(4) продолжайте наблюдение
6 Начинающий_13
 
13.07.16
08:48
В итоговой таблице только, Можно по циклу. Можно обратно в ТЗ. Сложновато как то тогда
7 lxs
 
13.07.16
08:49
(6) "..по циклу.." - не бери такого греха на душу, сын мой (вспоминая недавнюю тему про крестного отца)))
8 ИУБиПовиц
 
13.07.16
09:00
(1) особенно прикольно это выполнить если результат пустой будет:). А нафига именно последнюю запись, а не первую или 5-ю, может все остальные и не нужно выбирать, отборы в запросе какие нить установить:)
9 novichok79
 
13.07.16
09:02
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ЦеныНоменклатуры.Период КАК Период,
    ЦеныНоменклатуры.Номенклатура КАК Номенклатура,
    ЦеныНоменклатуры.Цена КАК Цена,
    ЦеныНоменклатуры.Валюта КАК Валюта,
    ЦеныНоменклатуры.ЕдиницаИзмерения КАК ЕдиницаИзмерения
ПОМЕСТИТЬ ВТЦеныНоменклатуры
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатуры
;

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

СГРУППИРОВАТЬ ПО
    ЦеныНоменклатуры.Период,
    ЦеныНоменклатуры.Номенклатура,
    ЦеныНоменклатуры.Цена,
    ЦеныНоменклатуры.Валюта
10 ИУБиПовиц
 
13.07.16
09:03
Вообще странно, у вас случаем не по 3 характеристики к номенклатуре есть, почему всегда 3 записи то:)
11 novichok79
 
13.07.16
09:03
(9) тут точно будет последняя цена
12 lxs
 
13.07.16
09:04
(8) Умник) ну, наверное надо проверить, я ж не буду учить этому автора. И всё остальное уже обсудили. Выскочил тут)
13 novichok79
 
13.07.16
09:05
(0) делай выбор последнего индекса в таблице по аналогии с (9)
14 Ёпрст
 
13.07.16
09:07
(9) хороший код для показа радуги
15 Ёпрст
 
13.07.16
09:08
максимум по единице измерения и валюте, так вообще шедевр, впрочем, как и весь код
16 Начинающий_13
 
13.07.16
09:10
На пустой  результат есть
Результат.Количество() > 0

Три потому, что бланк имеет две формы в одной надо выводить 3 по втором 1 последнюю.

novichok79 спасибо на мысль Период РС будет минимальным это наверное и будет решением попробую сейчас
17 mistеr
 
13.07.16
09:11
(0) >3 записи
>не хочется циклить
О боже, горе от ума.

Результат.Удалить(0);
Результат.Удалить(0);

Так лучше?
18 lxs
 
13.07.16
09:12
(17) Убил
19 Начинающий_13
 
13.07.16
09:15
Вопрос решен через ПЕРИОД минимальный. СПАСИБО за участие.
20 novichok79
 
13.07.16
09:17
(14) обычно хватает максимальной цены. тут я переборщил конечно.