Имя: Пароль:
1C
 
Запрос к временной таблице.
0 antihacker
 
18.03.16
12:16
Всем привет !

Вот запрос.

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


"сообщить" - пишет что есть одна строка. Хотя там ничего нету. Пробовал пробежаться по циклу по результатам.

                 Пока РезультатСамыйРаннийПриходСОбеда.Следующий() Цикл
                                    сообщить(РезультатСамыйРаннийПриходСОбеда.СамыйРаннийПриход);
                
                 КонецЦикла;

Но сообщить показывает пустое сообщение. Открыль регистр и проверил нет ли строки с пустыми датами. Нет там все колрнки заполнены.

Глюк 1С или мой ?
1 ДенисЧ
 
18.03.16
12:21
А если выгрузить(), потом в отладчике посмотреть?
2 Zhuravlik
 
18.03.16
12:23
Фразы ""сообщить" - пишет что есть одна строка. Хотя там ничего нету"
И
"Но сообщить показывает пустое сообщение"
противоречат друг-другу.
3 mehfk
 
18.03.16
12:24
Там NULL
4 Zhuravlik
 
18.03.16
12:26
Сначала перепиши код, чтобы было удобнее отлаживать
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
(3) От NULL избавляйся в самом запросе
5 mehfk
 
18.03.16
12:27
(4)>> От NULL избавляйся в самом запросе
Автору это скажи.
6 Zhuravlik
 
18.03.16
12:28
Имхо, если у тебя есть в конечной выборке есть поле NULL  - это уже признак того, что что-то сделано не так.
7 antihacker
 
18.03.16
12:29
Это как убрать NULL  в запросе ?
8 Zhuravlik
 
18.03.16
12:29
(5) Перепутал) (4) -> 0
9 Zhuravlik
 
18.03.16
12:30
(7) Это сделать на него проверку и вставить пустое значение типа вместо поля NULL. Если тебе по логике запроса нужны пустые значения.
10 antihacker
 
18.03.16
12:31
ДатаСобытия это Дата а не цифра или текст
11 mehfk
 
18.03.16
12:33
ИМЕЮЩИЕ    МИНИМУМ(МенеджерВТ.ДатаСобытия) ЕСТЬ НЕ NULL
12 hhhh
 
18.03.16
12:33
(1) можно прям в отладчике набрать Запрос.Выполнить().Выгрузить()
13 hhhh
 
18.03.16
12:35
(9) вот это выкинь

         МенеджерВТ = Новый МенеджерВременныхТаблиц;
             Запрос.МенеджерВременныхТаблиц = МенеджерВТ;

оно не нужно
14 Zhuravlik
 
18.03.16
12:36
(13) У него там коммент  // Текст запроса для построения временной таблицы - тс просто кусок кода приводить не стал
15 Zhuravlik
 
18.03.16
12:37
(10) Не понимаю к чему это было сказано
16 antihacker
 
18.03.16
12:42
А как можно смотреть в отладчике что содержить результат запроса ?
17 hhhh
 
18.03.16
12:44
(16) походу вот это надо копать

ГДЕ МенеджерВТ.ДатаСобытия > &ВремяПриходаСОбеда

видимо они не пришли с обеда никто.
18 Дык ё
 
18.03.16
12:45
(17) тяпница же :)
19 Zhuravlik
 
18.03.16
12:47
(16) РезультатЗапроса.Выгрузить() - вернет таблицу значений. В отладчике по f2 можно просмотреть содержимое.
20 Zhuravlik
 
18.03.16
12:53
(7) Почитай
https://its.1c.ru/db/metod8dev#content:2614:hdoc:_top:null
И вообще - почаще заглядывай на ИТС.
21 antihacker
 
18.03.16
12:56
Сделал вот реззап = Запрос.Выполнить().Выгрузить();

И где сотмреть результат ?
22 hhhh
 
18.03.16
12:59
(21) в отладчике. сделай точку останова. реззап не надо было делать. Посто в отладке там Вычислить выражение Задать Запрос.Выполнить().Выгрузить()
23 Zhuravlik
 
18.03.16
13:01
(21) гугли "Отладка 1С" http://programmist1s.ru/otladka-1s/
24 antihacker
 
18.03.16
13:32
Это глюк просто
Почему то запрос вытаскивает строку где все колонки пустые. Хотя среди выбираемых строк нет такого
25 antihacker
 
18.03.16
13:33
Только одна строка. Не больше
26 mehfk
 
18.03.16
13:46
(24) Это у тебя глюк. Смотри (3) и (11).
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан