8.х Запрос. "Выбор когда.." внтури НАЧАЛОПЕРИОДА()

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

  1. TopicStarter Overlay
    Pomestnik
    Offline

    Pomestnik Опытный в 1С

    Регистрация:
    10 июл 2009
    Сообщения:
    77
    Симпатии:
    0
    Баллы:
    26
    Добрый день,
    есть поле в запросе со сложным условием, используется конструкции ВЫБОР КОГДА ..
    При всех условиях на выходе Дата + время получается.
    Мне здесь же надо преобразовать дату.

    НАЧАЛОПЕРИОДА( Выбор когда.... , ДЕНЬ) - не работает
    ФОРМАТ(Выбор когда..., "ДФ=dd.MM.yyyy") - не работает...

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

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Почему не работает НачалоПериода? должно возвращать дату ? Вообще вопрос не корректен считаю. Что значит надо преобразовать дату? для начала все же объясните , что необходимо в выборке? Дата без времени?
  3. TopicStarter Overlay
    Pomestnik
    Offline

    Pomestnik Опытный в 1С

    Регистрация:
    10 июл 2009
    Сообщения:
    77
    Симпатии:
    0
    Баллы:
    26
    Вот пример кода условного.
    НачалоПериода(
    ВЫБОР
    КОГДА Документ.Реквизит1 = истина тогда
    ДОБАВИТЬКДАТЕ(Документ.Дата, ДЕНЬ,5)
    ИНАЧЕ
    Документ.Дата
    КОНЕЦ , ДЕНЬ )

    Не работает. Мне надо конечный результат конструкции ВЫБОР..КОГДА привести к началу дня.
    Конструкция очень большая, и преобразовывать каждое возвращаемое значение внутри нее не айс..
  4. Thelearning
    Offline

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

    Регистрация:
    9 сен 2010
    Сообщения:
    701
    Симпатии:
    72
    Баллы:
    54
    Так а что конкретно не работает? Ошибка какая-то или просто значение не преобразовывается? Сам условный оператор отрабатывает? Т.е. верно возвращает дату, которую потом нужно привести к началу дня?
  5. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    НУ тут либо каждый преобразовывать либо попробовать сначало все вот это Выбор Когда ВЫРАЗИТЬ т.е ВЫРАЗИТЬ(Выбор когда как ДАТА()) или тогда каждый выражать.
    Простоя так понимаю он не моежт при Выбор определить что за тип может вернуться
  6. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Может слишком мудренно)). Можно сделать временную таблицу с двумя записями Истина , Дата+5 и Ложь,Дата и связать с таблицей по документу и реквизиту.
  7. Yuriy_Alexandrovich
    Offline

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

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Как выше писали, проверьте конструкцию на предмет верного синтаксиса.
    Скорее всего где-то получается тип отличный от "дата"

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