8.х Регистр сведений Срез Последних

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем rar_xxx, 8 сен 2010.

  1. TopicStarter Overlay
    rar_xxx
    Offline

    rar_xxx

    Регистрация:
    8 сен 2010
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Понимаю тема заезжена много встретил таких же вопросов и решений но так и не понял как это сделать

    есть регистр сведений с изменяющимися ценами, подскажите как сделать чтобы одним запросом получить последние цены
    (пока реализовал путем перебора всей номенклатуры и по каждому значению делаю запрос, в запросе сортирую по дате и выбираю первое значение...... но если номенклатуры куча то работать это будет час а то и дольше :)
    вообще если честно не понимаю смысла СрезПоследних если делаешь запрос а он дает тебе кучу значений по одной номенклатуре
  2. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Код:
    "ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
    ЦеныНоменклатурыСрезПоследних.Цена
    ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
    &ДатаЦены,
    ТипЦен = &ТипЦен
    И Номенклатура В ИЕРАРХИИ (&Номенклатура)) КАК ЦеныНоменклатурыСрезПоследних
    </span>
    УПОРЯДОЧИТЬ ПО
    Номенклатура
    АВТОУПОРЯДОЧИВАНИЕ"
    
    </FONT></FONT></pre>
    Выборка представляет собой список цен номенклатуры в группе &Номенклатура, с типом цен &ТипЦен, на дату &ДатаЦены. Упорядоченную по наименованию номенклатуры.
  3. TopicStarter Overlay
    rar_xxx
    Offline

    rar_xxx

    Регистрация:
    8 сен 2010
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    понял свою ошибку у меня в измерениях док регистратор и дата соответственно поэтому и отбырало по одной номенклатуре все показания... понимаю вопрос зачем так но зачем то надо было именно так

    а не подскажешь как обработать запросом результат запроса и отобрать всю разную номенклатуру с условием максимальной даты

    можно пример запроса к таблице в которой допустим есть много одинаковой номенклатуры с разными ценами остатками и датами как получить таблицу в которой останеца номенклатура, цены, остатки и даты но только строчки в которых максимальная дата по каждой номенклатуре
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    дык срез последних на текущую дату даст максимальные даты для каждой номенклатуры
  5. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Непонятно. Запрос - в студию.
    На глаз - временная таблица из этого запроса, из нее выборка периода и номенклатуры с группировкой по МАКСИМУМ(Период) к которой левое соединение изначального запроса.
  6. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Эм... поправка, не так написал: с группировкой по номенклатуре, а поле МАКСИМУМ(Период).
  7. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    не надо никаких левых соединений с самим собой - срез последних даст максимальные даты.
  8. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Нет, у ТС там уже результат другого запроса:
    из РС ЦеныНоменклатуры, он остатки взять не мог.
    У меня есть подозрение что он пытается сделать: по-видимому получить остатки товара на складе на дату изменения цены.
    rar_xxx - озвучьте задачу полностью.
  9. TopicStarter Overlay
    rar_xxx
    Offline

    rar_xxx

    Регистрация:
    8 сен 2010
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    щас уже регистр поправил убрал измерениях "докРегистратор" и "Дата" прост стало интересно давно решение такой задачи
    получаем одним запросом таблицу примерно такую

    Наименование КолВо цена артикул период
    Тапки 46 | 5 | 3513 | 654 |17.09.2010
    Тапки 46 | 3 | 3326 | 653 |09.09.2010
    Тапки 46 | 6 | 3613 | 644 |01.09.2010
    Тапки 47 | 4 | 3498 | 654 |05.09.2010
    Тапки 48 | 5 | 3623 | 654 |06.09.2010

    вот как запросом из этой таблицы оставить Тапки 47, Тапки 48, но чтобы Тапки 46 остались на максимальную дату...
    вот такой вопрос или если привязаца к регистру сведений.... то как Срезом последних выбрать на максимальную дату значение например цены если в Измерениях регистра есть например дата ну либо еще что то... просто при этом в срез последних попадают все у чего разные значения измерений
  10. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Что у вас в измерениях делает дата? Если регистр переодический, там и так будет предопределеное поле Период.

    ну естественно они попадут, если у вас не задан отбор по какому-то из измерений, а как по другому?

  11. TopicStarter Overlay
    rar_xxx
    Offline

    rar_xxx

    Регистрация:
    8 сен 2010
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    ну там еще одна даата зачем то нужна была )))....... спасибо за ответ
  12. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Распишите описание ваших метаданных (если у вас не типовая), и полностью распишите задачу, что вам надо из ваших регистров в конечном итоге получить. Тогда можно будет конкретнее сказать как это сделать.
  13. GreenSH
    Offline

    GreenSH Опытный в 1С

    Регистрация:
    1 май 2015
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    26
    Гуру 1с, подскажите пожалуйста. Сижу не догоняю как сделать.
    В общем есть запрос, в котором по связи запрашиваются данные.
    Как получить последнюю внесенную дату поставки материала?

    Код:
    ВЫБРАТЬ
        МатериалыОбъемОборотОстаткиИОбороты.КоличествоПриход,
        МатериалыОбъемОборотОстаткиИОбороты.КоличествоРасход,
        МатериалыОбъемОборотОстаткиИОбороты.КоличествоКонечныйОстаток,
        МатериалыОбъемОборотОстаткиИОбороты.ИдентМат,
        МатериалыОбъемОборотОстаткиИОбороты.Материал,
        МатериалыОбъемОборотОстаткиИОбороты.ЕдИзм,
        МатериалыОбъемОборотОстаткиИОбороты.ПоставкаОт,
        МатериалыОбъемОборотОстаткиИОбороты.Титул,
        МатериалыОбъемОборотОстаткиИОбороты.Раздел,
        СрокиПоставкиМатСрезПоследних.Причина,
        ОтмененныеМатериалы.ДатаОтмены,
        СрокиПоставкиМатСрезПоследних.ДатаПоставки
    ИЗ
        РегистрНакопления.МатериалыОбъемОборот.ОстаткиИОбороты КАК МатериалыОбъемОборотОстаткиИОбороты
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СрокиПоставкиМат.СрезПоследних КАК СрокиПоставкиМатСрезПоследних
            ПО МатериалыОбъемОборотОстаткиИОбороты.ИдентМат = СрокиПоставкиМатСрезПоследних.ИдентифМат
                И МатериалыОбъемОборотОстаткиИОбороты.Материал = СрокиПоставкиМатСрезПоследних.Материал
                И МатериалыОбъемОборотОстаткиИОбороты.Титул = СрокиПоставкиМатСрезПоследних.Титул
                И МатериалыОбъемОборотОстаткиИОбороты.Раздел = СрокиПоставкиМатСрезПоследних.Раздел
                И МатериалыОбъемОборотОстаткиИОбороты.ПоставкаОт = СрокиПоставкиМатСрезПоследних.ПоставкаОт
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОтмененныеМатериалы КАК ОтмененныеМатериалы
            ПО МатериалыОбъемОборотОстаткиИОбороты.ИдентМат = ОтмененныеМатериалы.ИдентифМат
                И МатериалыОбъемОборотОстаткиИОбороты.Материал = ОтмененныеМатериалы.Материал
                И МатериалыОбъемОборотОстаткиИОбороты.Титул = ОтмененныеМатериалы.Титул
                И МатериалыОбъемОборотОстаткиИОбороты.Раздел = ОтмененныеМатериалы.Раздел
    ГДЕ
        МатериалыОбъемОборотОстаткиИОбороты.Титул = &Титул
        И МатериалыОбъемОборотОстаткиИОбороты.Раздел = &Раздел

Поделиться этой страницей