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

1С:Предприятие ::

Метки: 

Ошибка сравнения на поля несовместимых типов

Я
   falselight
 
23.10.17 - 15:05
Решил использовать границу за место даты в периоде запроса.
Выходит ошибка. Подскажите можно это как то исправить?
Или нельзя применять границу для сравнения с датой документа,
выбирая в запросе документы?

{ВнешнийОтчет.СтатистикаЗаказовКлиента.Форма.ФормаОтчета.Форма(70)}: Ошибка при вызове метода контекста (Выполнить)
        Рез = Запрос.Выполнить();
по причине:
{(9, 50)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
 неограниченной длины и поля несовместимых типов.
ЗаказКлиентаДополнительныеРеквизиты.Ссылка.Дата <<?>>МЕЖДУ &НачДата И &КонДата


        //

        Граница_1 = Новый Граница(НачалоДня(ПериодОтчета.ДатаНачала), ВидГраницы.Включая);
        //

        Запрос.УстановитьПараметр("НачДата",  Граница_1);
        //

        Граница_2 = Новый Граница(КонецДня(ПериодОтчета.ДатаОкончания), ВидГраницы.Включая);
        //

        Запрос.УстановитьПараметр("КонДата", Граница_2);
        //
 
 
   igork1966
 
1 - 23.10.17 - 15:25
(0) Потому что такой тип параметра можно использовать в виртуальных таблицах регистра
   SpellKeeper
 
2 - 23.10.17 - 15:26
Во-первых, при использовании границы в условии получаются данные разных типов. Из документа берется тип Дата и сравнивается с типами Граница. По ходу запрос это не понимает.
Во-вторых, в данном случае, по-моему, использование Границы бессмысленно. Т.к. устанавливаются начало и конец дня, и конкретно это условие и так включит моменты начало и конец дня в выборку. Т.е. будут захвачены все документы с датой начала периода и все документы с датой конца периода.

Границу хорошо применять в выборках из виртуальных таблиц регистров. Например, нужно получить остатки на момент перед проведенным документом.
Как получить этот момент? Если указать дату документа, то запрос захватит движения данного документа. Если указать -1 сек, то можно потерять документы, которые попали в ту же секунду, но все-таки стоят по времени до нужного документа.
Вот в этом случае Граница очень подходит. Указываем в первом параметре МоментВремени документа, а во втором Исключая. Получаем правильный ответ.
   igork1966
 
3 - 23.10.17 - 15:29
(1) + 
ЗаказКлиентаДополнительныеРеквизиты.Ссылка.Дата МЕЖДУ НачалоПериода(&НачДата, День) И КонецПериода(&КонДата, День)
   falselight
 
4 - 23.10.17 - 15:44
Ясно. Ну или так тогда КонецДня(Дата2)
   falselight
 
5 - 23.10.17 - 15:45
(3) НачалоПериода(&НачДата, День) И КонецПериода(&КонДата, День)

А что это за новые методы????
   Филиал-msk
 
6 - 23.10.17 - 15:46
(5) Браво, Андрей!
   Lexey_
 
7 - 23.10.17 - 16:01
(5) свежак, вчера только подвезли, до Новосибирска еще не добрались


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