8.х Срез последних значений на дату из другого запроса

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

  1. TopicStarter Overlay
    skv_79
    Offline

    skv_79 Опытный в 1С

    Регистрация:
    10 июл 2013
    Сообщения:
    204
    Симпатии:
    3
    Баллы:
    29
    Добрый день!
    Гляньте пожалуйста запрос, нужно выбрать последние записи из регистра сведений по значению периода из другой таблицы. Все ведь правильно?

    Код:
    ВЫБРАТЬ
        ЗначИнжСрезПоследних.Инж,
        ЗначИнжСрезПоследних.Знач КАК Знач,
        РегистрЗаданийИнженеровОбороты.Ответственный,
        МАКСИМУМ(ЗначИнжСрезПоследних.Период) КАК Период,
        КОЛИЧЕСТВО(РегистрЗаданийИнженеровОбороты.Период) КАК Период1
    ИЗ
        РегистрНакопления.РегистрЗаданийИнженеров.Обороты(, , День, ) КАК РегистрЗаданийИнженеровОбороты
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначИнж КАК ЗначИнжСрезПоследних
            ПО РегистрЗаданийИнженеровОбороты.Период > ЗначИнжСрезПоследних.Период
                И РегистрЗаданийИнженеровОбороты.Ответственный = ЗначИнжСрезПоследних.Инж
    ГДЕ
        ЗначИнжСрезПоследних.Инж ЕСТЬ НЕ NULL
    
    СГРУППИРОВАТЬ ПО
        ЗначИнжСрезПоследних.Инж,
        РегистрЗаданийИнженеровОбороты.Ответственный,
        ЗначИнжСрезПоследних.Знач
    И еще вопрос, где-то давно слышал, что в каких-то таблицах оборотов к выбранному периоду нужно выбирать секунду, т.к. это особенность платформы, но вот сейчас быстро не могу найти где слышал... это так никто не знает?
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    Никаких секунд ни в каких таблицах оборотов добавлять не нужно.

    Вам еще раз необходимо сделать соединение с таблицей оборотов, чтобы выбрать нужные данные, ограниченные датой из РегистрСведений.ЗначИнж
    skv_79 нравится это.
  3. TopicStarter Overlay
    skv_79
    Offline

    skv_79 Опытный в 1С

    Регистрация:
    10 июл 2013
    Сообщения:
    204
    Симпатии:
    3
    Баллы:
    29
    Понятно, а секунду вообще когда-либо дополнительно в 1С нужно выбирать или это у меня глюк в голове? Просто засело, что типа особенность самой платформы 1С...
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    В данном случае - у вас должно быть соединение по равенству периодов. В любом случае, секунды для оборотов не добавляются, если это не оговорено заданием.
  5. TopicStarter Overlay
    skv_79
    Offline

    skv_79 Опытный в 1С

    Регистрация:
    10 июл 2013
    Сообщения:
    204
    Симпатии:
    3
    Баллы:
    29
    Почему по равенству? Сначала выбираю все записи из регистра сведений, которые раньше периода из таблицы оборотов РН, а затем группировкой нахожу максимум... тем самым последняя запись из регистра сведений на дату периода оборотов. Разве не так? Про секунду все понял...
  6. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    Так, но далее вы должны сделать соединение с таблицей оборотов, одно из условий соединения - равенство периодов в таблицах.
    skv_79 нравится это.
  7. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Поле период секунда надо добавлять в выборку, когда выводите отчет на основе построителя или скд с детализацией до регистратора.
    skv_79 нравится это.

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