Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Проверка заполнения даты с условием в запросе

Проверка заполнения даты с условием в запросе
Я
   palima
 
15.03.19 - 07:52
Здравствуйте. Помогите пожалуйста решить следующую проблему. Как в запросе оформить условие вида если документссылка.дата1 заполнена, то результат запроса будет дата1, а если не заполнена, то результат запроса будет документссылка.дата2. Через выбор? Честно гуглила и пыталась сделать, но пока безуспешно, хелп...
 
 
   SleepyHead
 
1 - 15.03.19 - 07:54
ВЫБОР КОГДА ДокументСсылка.Дата1=ДатаВремя(1,1,1) ТОГДА ДокументСсылка.Дата1 ИНАЧЕ ДокументСсылка.Дата2 КОНЕЦ


P.S. Фотку выложи.
   Filippov
 
2 - 15.03.19 - 08:07
(1) <>
   SleepyHead
 
3 - 15.03.19 - 08:13
(2) Тихо, сначала фотка, потом реальный код!
   palima
 
4 - 15.03.19 - 08:43
(3) корыстные
Вот еще вопрос... 
ВЫБОР КОГДА ДокументСсылка.Дата1=ДатаВремя(1,1,1) ТОГДА ДокументСсылка.Дата1 ИНАЧЕ ДокументСсылка.Дата2 КОНЕЦ КАК ВыбДата

До этой доработки у меня была одна дата, и я использовала выражение "ГДЕ ДокументСсылка.Дата1 МЕЖДУ &ДатаНач И &ДатаКон)"
А как мне теперь сейчас это сделать?
Попробовала ГДЕ ВыбДата МЕЖДУ &ДатаНач И &ДатаКон)" , но ругается на то, что поле ВыбДата не найдено...
   catena
 
5 - 15.03.19 - 08:45
(4)Либо в ГДЕ повторять всю эту конструкцию, либо сперва в ВТ заименовать ее и потом отдельно ГДЕ на уже выбранную дату.
   unregistered
 
6 - 15.03.19 - 08:47
(4) > корыстные.

> Вот еще вопрос.

А ты борзая. Жаль модераторы ещё спят. Я бы вообще банил за помощь тем, у кого нет фотки в личке.

(5) Ох уж эта женская солидарность. Будь она неладна.
   palima
 
7 - 15.03.19 - 08:53
ВЫБРАТЬ
    УправленческийОстатки.Субконто1.Ссылка КАК Ссылка,
    УправленческийОстатки.Субконто1 КАК ОС,
    УправленческийОстатки.Субконто1.Код КАК ИнвНомер,
    //было

    //УправленческийОстатки.Субконто1.ДатаВвода КАК ДатаВвода,

    //стало:    

    ВЫБОР
        КОГДА УправленческийОстатки.Субконто1.ДатаРазделения = ДАТАВРЕМЯ(1, 1, 1)
            ТОГДА УправленческийОстатки.Субконто1.ДатаВвода
        ИНАЧЕ УправленческийОстатки.Субконто1.ДатаРазделения
    КОНЕЦ КАК ВыборДаты,
    УправленческийОстатки.СуммаОстаток КАК ВосстановительнаяСтоимость,
    УправленческийОстатки.СуммаОстаток + ЕСТЬNULL(УправленческийОстатки1.СуммаОстаток, 0) КАК ОстаточнаяСтоимость,
    УправленческийОстатки.Субконто1.ГоссобственностьИнвентарныйНомер КАК ИнвНомерПоРеестру,
    УправленческийОстатки.Субконто1.ГоссобственностьНаименованиеОбъекта КАК НаимОбъекта,
    УправленческийОстатки.Субконто1.ГоссобственностьКодОбъекта КАК КодНазначенияОбъекта,
    УправленческийОстатки.Субконто1.ГоссобственностьКодСостоянияОбъекта КАК КодСостоянияОбъекта,
    ИЗ
    (ВЫБРАТЬ
        ОсновныеСредства.Ссылка КАК Ссылка
    ИЗ
        Справочник.ОсновныеСредства КАК ОсновныеСредства
    ГДЕ
        ОсновныеСредства.Ссылка В(&СЧ)

        //конструкцию ниже нужно заменить на ВыборДаты....

        И ОсновныеСредства.ДатаВвода МЕЖДУ &ДатаНач И &ДатаКон
        
        И ОсновныеСредства.Владелец = &ВыбВладелец
        И ОсновныеСредства.ГоссобственностьИнвентарныйНомер <> &ГИН
        И ОсновныеСредства.ГоссобственностьКодОбъекта <> &ГКО
        И ОсновныеСредства.ГоссобственностьКодСостоянияОбъекта <> &ГКСО) КАК ВложенныйЗапрос
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки(&ВыбДата, Счет В ИЕРАРХИИ (&Сч01), , Владелец <> &ВыбВладелецЦентр) КАК УправленческийОстатки
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки(&ВыбДата, Счет В ИЕРАРХИИ (&Сч02), , Владелец <> &ВыбВладелецЦентр) КАК УправленческийОстатки1
            ПО УправленческийОстатки.Субконто1 = УправленческийОстатки1.Субконто1
        ПО ВложенныйЗапрос.Ссылка = УправленческийОстатки.Субконто1

    УПОРЯДОЧИТЬ ПО
        ИнвНомер
   SleepyHead
 
8 - 15.03.19 - 08:58
(6) Как хорошо, что ты не модератор, а (5) модератор :)
   palima
 
9 - 15.03.19 - 09:01
(7) или это условие нужно было делать во вложенном запросе?
   catena
 
10 - 15.03.19 - 09:11
(9)
 ВЫБОР
        КОГДА УправленческийОстатки.Субконто1.ДатаРазделения = ДАТАВРЕМЯ(1, 1, 1)
            ТОГДА УправленческийОстатки.Субконто1.ДатаВвода
        ИНАЧЕ УправленческийОстатки.Субконто1.ДатаРазделения
    КОНЕЦ между &ДатаНач И &ДатаКон
 
 Рекламное место пустует
   catena
 
11 - 15.03.19 - 09:12
И хорошо бы типизировать Субконто1, а то может сплохеть базе...
   unregistered
 
12 - 15.03.19 - 09:38
(10) Правильнее так.

 ВЫБОР
   КОГДА ВЫРАЗИТЬ(УправленческийОстатки.Субконто1 КАК Справочник.ОсновныеСредства).ДатаРазделения = ДАТАВРЕМЯ(1, 1, 1)
   ТОГДА ВЫРАЗИТЬ(УправленческийОстатки.Субконто1 КАК Справочник.ОсновныеСредства).ДатаВвода МЕЖДУ &ДатаНач И &ДатаКон
   ИНАЧЕ ВЫРАЗИТЬ(УправленческийОстатки.Субконто1 КАК Справочник.ОсновныеСредства).ДатаРазделения МЕЖДУ &ДатаНач И &ДатаКон
 КОНЕЦ

Только этот код не решает проблему автора. У автора другая задача и решает она её через *опу.
Запрос надо переписывать полностью.
   catena
 
13 - 15.03.19 - 09:41
(12)Почему так правильнее? Я не про типизацию, а про само условие.
   unregistered
 
14 - 15.03.19 - 09:51
(13) Читабельнее (ИМХО). Но это не главное.
Важнее именно типизация, чтобы не прилетело NULL в логический оператор МЕЖДУ.

О вообще повторюсь - это фигня по сравнению с той кашей, что изложена в (9). Там переписывать всё надо.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует