8.х Передать в запрос параметры Дату и Время отдельно

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

  1. TopicStarter Overlay
    XXL
    Offline

    XXL Опытный в 1С Команда форума

    Регистрация:
    22 янв 2007
    Сообщения:
    1.159
    Симпатии:
    19
    Баллы:
    29
    Добрый день.
    Есть регистр, в котором два измерения - первое тип Дата, состав даты Дата, второе тип Дата, состав даты Время.
    Запросом нужно выбрать записи из этого регистра, где данные измерения больше текущего времени.
    Как передать в запрос параметры отдельно дату, отдельно время?
  2. TriviumFan
    Offline

    TriviumFan Опытный в 1С Заблокирован

    Регистрация:
    19 мар 2013
    Сообщения:
    92
    Симпатии:
    15
    Баллы:
    29
    Код:
    Запрос.УстановитьПараметр("Дата", НачалоДня(ТекущаяДата()));
    Запрос.УстановитьПараметр("Время", ТекущаяДата() - НачалоДня(ТекущаяДата()));
    
  3. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Зачем?
    В смысле зачем отдельно время передавать? Передавайте полностью текущую дату.
    Посмотрите функции работы со временем в запросе. Вам пригодятся НАЧАЛОПЕРИОДА, и РАЗНОСТЬДАТ.
  4. TopicStarter Overlay
    XXL
    Offline

    XXL Опытный в 1С Команда форума

    Регистрация:
    22 янв 2007
    Сообщения:
    1.159
    Симпатии:
    19
    Баллы:
    29
    Функции посмотрю.
    Потому как если вместе передавать, то не отбирается ничего.

    Как передать только дату уже написали, только время вот так

    Код:
    Дата('00010101') + (ТекущаяДата() - НачалоДня(ТекущаяДата()))
  5. TriviumFan
    Offline

    TriviumFan Опытный в 1С Заблокирован

    Регистрация:
    19 мар 2013
    Сообщения:
    92
    Симпатии:
    15
    Баллы:
    29
    Это тоже самое, что ТекущаяДата() - НачалоДня(ТекущаяДата()) -Shamefullyembarrased-
  6. TopicStarter Overlay
    XXL
    Offline

    XXL Опытный в 1С Команда форума

    Регистрация:
    22 янв 2007
    Сообщения:
    1.159
    Симпатии:
    19
    Баллы:
    29
    (ТекущаяДата() - НачалоДня(ТекущаяДата())) возвращает число 58 891
  7. TriviumFan
    Offline

    TriviumFan Опытный в 1С Заблокирован

    Регистрация:
    19 мар 2013
    Сообщения:
    92
    Симпатии:
    15
    Баллы:
    29
    А...пардон) разность дат ведь в секундах)
  8. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Код:
    ДОБАВИТЬКДАТЕ(<ПолеДата>, СЕКУНДА, РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(<ПолеВремя>, ДЕНЬ), <ПолеВремя>, СЕКУНДА)) КАК ДатаВремя
  9. TopicStarter Overlay
    XXL
    Offline

    XXL Опытный в 1С Команда форума

    Регистрация:
    22 янв 2007
    Сообщения:
    1.159
    Симпатии:
    19
    Баллы:
    29
    Тоже как вариант, только надо в условие прописывать

    Код:
    ДОБАВИТЬКДАТЕ(ПолеДата, СЕКУНДА, РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ПолеВремени, ДЕНЬ), Поле
    Времени, СЕКУНДА)) >= &ТекДата
  10. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Да, естественно.

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