Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Дата в запросе к справочнику

Дата в запросе к справочнику
Я
   Aneumo
 
08.02.18 - 04:15
Есть запрос к справочнику, у справочника есть поле "Дата". Пользователь на форме вводит дату, создается запрос с условием поиска  ГДЕ Справочник.ФизЛицо.Дата  = ВведеннаяПользователемДата;

При запуске и вводе даты, возврат пустого запроса, если убрать условие с датой, то все стабильно выводит. Вопрос в следующем - в каком виде формировать дату, что бы запрос её корректно обрабатывал.
PS Вводимая дата в справочнике точно есть.

Сам запрос
Запрос.Текст =  "ВЫБРАТЬ 
                    |    ФизЛицо.Наименование,
                    |    ФизЛицо.ДатаРождения,
                    |ИЗ
                    |    Справочник.ФизическоеЛицо КАК ФизЛицо
                    |ГДЕ
                    |    ФизЛицо.Наименование = """ + ФИОТекст + """
                    |    И 
            |   ФизЛицо.ДатаРождения = """+ Формат(ДатаРождения,"ДФ=dd.MM.yyyy; ДЛФ=D") +  """";
 
 
   Aneumo
 
1 - 08.02.18 - 04:20
Версия 1С 8.3 для обучения программированию
   mehfk
 
2 - 08.02.18 - 04:31
Вдумайся, для чего нужна эта конструкция
Формат(ДатаРождения,"ДФ=dd.MM.yyyy; ДЛФ=D")

   Aneumo
 
3 - 08.02.18 - 04:34
(2) для чего нужна понятно - для приведения того что ввел юзер из дата + время, к формату день.мес.год
что я упускаю?
   H A D G E H O G s
 
4 - 08.02.18 - 04:38
(0) Язык запросов, фактически, русско-лингвистическая калька с языка запросов ms sql (SQL92), в котором вы, разработчик такой, не побоюсь этого слова, передовой системы сбора и обработки информации, которую вы не постыдились представить на научно - практической конференции "по новым компьютерным технологиям и защите компьютерных программ", должны быть как рыба в воде.
   Aneumo
 
5 - 08.02.18 - 04:40
в отладчике запрос принимает вид, к примеру,  ФизЛицо.ДатаРождения = "01.01.2018";

я не могу найти формат даты, который бы возвращал мне не пустой запрос, он мне, со сравнением существующей в справочнике даты, возвращает пустую выборку, и я не могу понять как тут организовать сравнение введенной даты с полем справочника
   Wit77
 
6 - 08.02.18 - 04:44
(5) Формат() - возвращает строковое представление даты. Таким образом в запросе ты сравниваешь значение типа "Дата" со значением типа "Строка". Конечно выборка будет пустая.

вместо формата тебе надо использовать конструкцию, которая будет возвращать значение типа "Дата" - тогда все будет работать корректно.
   Aneumo
 
7 - 08.02.18 - 04:45
(6) Ок, понял, спасибо огромное
   Wit77
 
8 - 08.02.18 - 04:48
(7) еще момент - не совсем корректно вставлять условие склейкой текста запроса.
Нужно использовать параметры, например:
ФизЛицо.Наименование = &ФИОТекст

как и что дальше - думаю разберешься сам.
   catena
 
9 - 08.02.18 - 06:10
(6)Ага, прямо в текст запроса.
   Chameleon1980
 
10 - 08.02.18 - 06:14
НачДня
 
 Рекламное место пустует
   Chameleon1980
 
11 - 08.02.18 - 06:17
блин т.е. типа:

"ВЫБРАТЬ
|    ФизическиеЛица.Ссылка,
|    ФизическиеЛица.ДатаРождения
|ИЗ
|    Справочник.ФизическиеЛица КАК ФизическиеЛица
|ГДЕ
|    НАЧАЛОПЕРИОДА(ФизическиеЛица.ДатаРождения, ДЕНЬ) = НАЧАЛОПЕРИОДА(&ДатаРождения, ДЕНЬ)";
   Mankubus
 
12 - 08.02.18 - 06:19
(11) дата рождения итак всегда будет началом дня, это лишнее
   Chameleon1980
 
13 - 08.02.18 - 06:21
да блин. я для примера :)
   Chameleon1980
 
14 - 08.02.18 - 06:22
какой справочник под руку попался

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