8.х Как получить последнее значение ресурса при 3 измерениях

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

  1. TopicStarter Overlay
    Лакорд
    Offline

    Лакорд

    Регистрация:
    30 май 2016
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Есть периодический РегистрСведений с 3 измерениями (Направление, ТипОплаты, Продолжительность) и 1 ресурс (Цена). Подскажите, пожалуйста, как получить значение цены на текущую дату при определенной комбинации измерений?
  2. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.750
    Симпатии:
    509
    Баллы:
    204
    Отбор ставьте, ну и СрезПоследних()
  3. TopicStarter Overlay
    Лакорд
    Offline

    Лакорд

    Регистрация:
    30 май 2016
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Я все со своим вопросом. Никак не могу побороть. Ай нид хелп... [​IMG]

    Функция ПолучитьСтоимость(НашаДата,НашеНаправление,НашТипОплаты,НашаДлительность)

    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекДата", НашаДата);
    Запрос.УстановитьПараметр("Направление", НашеНаправление);
    Запрос.УстановитьПараметр("ТипОплаты", НашТипОплаты);
    Запрос.УстановитьПараметр("Продолжительность", НашаДлительность);
    Запрос.Текст = "ВЫБРАТЬ
    |СтоимостьЗанятий.Направление,
    |СтоимостьЗанятий.ТипОплаты,
    |СтоимостьЗанятий.Продолжительность,
    |СтоимостьЗанятий.Цена
    |ИЗ
    |РегистрСведений.СтоимостьЗанятий.СрезПоследних(&ТекДата, Направление=&Направление И ТипОплаты=&ТипОплаты И Продолжительность=&Продолжительность) КАК СтоимостьЗанятий";
    ЗначениеСтоимости = Запрос.Выполнить().Выбрать();

    Возврат ЗначениеСтоимости.Цена;

    КонецФункции

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

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    В данном случае отборы необходимо использовать через конструкцию ГДЕ, а дату среза устанавливать через параметры виртуальной таблицы
  5. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    После
    Код:
    ЗначениеСтоимости = Запрос.Выполнить().Выбрать();
    добавьте
    Код:
    ЗначениеСтоимости.Следующий();
    Лакорд нравится это.
  6. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    почему?
  7. TopicStarter Overlay
    Лакорд
    Offline

    Лакорд

    Регистрация:
    30 май 2016
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Спасибо!!! Все заработало
  8. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    потому что, задав отбор в параметрах виртуальной таблицы, ты получишь последнее значение по комбинации измерений и оно, совсем не факт, что будет последним состоянием на запрашиваемую дату.
  9. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    ммм..
    1) а зачем нам в данном случае значение, которое будет получено не по комбинации измерений?
    2) давай пример данных в которых запрос из п.3 вернет разный результат с параметрами ВТ и с ГДЕ.
  10. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    Ага, стал разбираться, должно работать в обоих случаях.....ладно, оставим пока тему, возможно, приведу пример 2 разных результатов запроса к РС....
  11. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Разный результат может оказаться при наложении фильтра на ресурсы регистра сведений.
    При наложении фильтра на измерения результат будет одинаков.

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