| 
    
        
     
     | 
    
    
  | 
НАЧАЛОПЕРИОДА в запросе и NULL | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        CaIIIka    
     04.01.20 
            ✎
    10:36 
 | 
         
        Здравствуйте! Всех с Новым Годом!
 
        Есть простой запрос: ВЫБРАТЬ БигС.Док КАК Док, БигС.Номер КАК Номер, БигС.Дата КАК Дата, ЕстьNULL(БигС.Дата,ДАТАВРЕМЯ(0001,01,01,0,0,0)), НАЧАЛОПЕРИОДА(ЕстьNULL(NULL,ДАТАВРЕМЯ(0001,01,01,0,0,0)), ДЕНЬ) КАК Пр ИЗ (ВЫБРАТЬ NULL Док,NULL Номер,NULL Дата) КАК БигС Возвращает: Док Номер Дата Поле1 Пр NULL NULL NULL 01.01.01 0:00:00 01.01.01 0:00:00 Если поменять на НАЧАЛОПЕРИОДА(ЕстьNULL(БигС.Дата, ..... то пишет: Неверные параметры "НАЧАЛОПЕРИОДА", НАЧАЛОПЕРИОДА(<<?>>ЕстьNULL(БигС.Дата,ДАТАВРЕМЯ(0001,01,01,0,0,0)), ДЕНЬ) КАК Пр В третьем поле NULL, в четвертом поле функция прекрасно работает, в пятом с прямым указанием NULL тоже работает.... Вопрос: Чё ему надо???  | 
|||
| 
    1
    
        CaIIIka    
     04.01.20 
            ✎
    10:38 
 | 
         
        8.2.19.130     
         | 
|||
| 
    2
    
        CaIIIka    
     04.01.20 
            ✎
    10:48 
 | 
         
        В 8.3.10 аналогично. После НГ и так тяжко себя в руки взять, а тут такое :)
 
        PS Запрос не привязан к БД, можно в консоли в любой базе попробовать.  | 
|||
| 
    3
    
        ДенисЧ    
     04.01.20 
            ✎
    10:49 
 | 
         
        ЕстьNULL(NULL,ДАТАВРЕМЯ(0001,01,01,0,0,0))
 
        А зачем так?  | 
|||
| 
    4
    
        ДенисЧ    
     04.01.20 
            ✎
    10:50 
 | 
         
        И чо от от этого ожидалось?     
         | 
|||
| 
    5
    
        CaIIIka    
     04.01.20 
            ✎
    10:55 
 | 
         
        Мне нужно, чтобы работало НАЧАЛОПЕРИОДА(ЕстьNULL(БигС.Дата,ДАТАВРЕМЯ(0001,01,01,0,0,0)), ДЕНЬ)
 
        Запрос строится в цикле в зависимости от различных условий. Пустой запрос нужен для обозначения полей в объединении. Изначально было НАЧАЛОПЕРИОДА(БигС.Дата, ДЕНЬ). Работает. Но если ничего не объединялось, а был только пустой запрос, то вылезла ошибка. Поставил ЕстьNULL, тоже самое. Остальное в (0).  | 
|||
| 
    6
    
        CaIIIka    
     04.01.20 
            ✎
    10:59 
 | 
         
        Немного повторюсь: "В третьем поле NULL, в четвертом поле функция прекрасно работает, в пятом поле с прямым указанием NULL тоже работает...."     
         | 
|||
| 
    7
    
        ДенисЧ    
     04.01.20 
            ✎
    11:05 
 | 
||||
| 
    8
    
        ДенисЧ    
     04.01.20 
            ✎
    11:06 
 | 
         
        Работает без ругани...     
         | 
|||
| 
    9
    
        CaIIIka    
     04.01.20 
            ✎
    11:10 
 | 
         
        (8) Я прекрасно понимаю, что НГ не я один встречал, так что сейчас это норм. Почитайте, пожалуйста, (0) :)))
 
        Есть простой запрос... Возращает... Если поменять.... то ошибка... У Вас в (7) пункт номер 2 из (0) выполняется  | 
|||
| 
    10
    
        ДенисЧ    
     04.01.20 
            ✎
    11:13 
 | 
         
        (9) Вот именно, что НГ. Нужно думать, что требуешь от программы...
 
        http://pics.wfido.ru/img/2020-01-04_11-12-25_g3qqs.png  | 
|||
| 
    11
    
        CaIIIka    
     04.01.20 
            ✎
    11:27 
 | 
         
        (10) Ух ты... Спасибо, добрейший! В (6), вроде, логично все показалось - в поле установил NULL, потом из него дату сделал. А, оказывается, нужен был "датированный" NULL... Понятно, что тип значения в поле обозначить - не лишнее. Но ведь на выходе я свое поле делаю, на основании данных из другого поля по принципу ВЫБОР КОГДА NULL...     
         | 
|||
| 
    12
    
        ДенисЧ    
     04.01.20 
            ✎
    11:31 
 | 
         
        Хоть и говорят, что в 1с нет типизирования, но иногда оно есть.     
         | 
|||
| 
    13
    
        CaIIIka    
     04.01.20 
            ✎
    11:39 
 | 
         
        (12) Д вот... При чем конструкция
 
        ВЫБОР КОГДА БигС.Дата Есть NULL ТОГДА ДАТАВРЕМЯ(0001,01,01,0,0,0) ИНАЧЕ НАЧАЛОПЕРИОДА(БигС.Дата, ДЕНЬ) КОНЕЦ ту же ошибку выдает, ругаясь на текст после ИНАЧЕ!... Хотя тут вообще конкретно все указано. В итоге вообще ушел от ЕстьNULL, типизируя в итоговом поле НАЧАЛОПЕРИОДА(Выразить(БигС.Дата как Дата), ДЕНЬ) КАК Пр ИЗ (ВЫБРАТЬ NULL Док,NULL Номер,NULL Дата) КАК БигС Еще раз спасибо! С Уважением, и всего наилучшего!!!  | 
|||
| 
    14
    
        ДенисЧ    
     04.01.20 
            ✎
    11:54 
 | 
         
        (13) После иначе у тебя идёт НАЧАЛОПЕРИОДА(БигС.Дата, ДЕНЬ). Но нигде не сказано, какого типа БигС.Дата, и что это вообще дата. Поэтому НачалоПериода и ругается     
         | 
|||
| 
    15
    
        Flyd-s    
     04.01.20 
            ✎
    14:28 
 | 
         
        ВЫРАЗИТЬ(NULL КАК Дата) - жестокая конструкция     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |