|
Ошибка сравнения на поля несовместимых типов | ☑ | ||
---|---|---|---|---|
0
falselight
23.10.17
✎
15:05
|
Решил использовать границу за место даты в периоде запроса.
Выходит ошибка. Подскажите можно это как то исправить? Или нельзя применять границу для сравнения с датой документа, выбирая в запросе документы? {ВнешнийОтчет.СтатистикаЗаказовКлиента.Форма.ФормаОтчета.Форма(70)}: Ошибка при вызове метода контекста (Выполнить) Рез = Запрос.Выполнить(); по причине: {(9, 50)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов. ЗаказКлиентаДополнительныеРеквизиты.Ссылка.Дата <<?>>МЕЖДУ &НачДата И &КонДата // Граница_1 = Новый Граница(НачалоДня(ПериодОтчета.ДатаНачала), ВидГраницы.Включая); // Запрос.УстановитьПараметр("НачДата", Граница_1); // Граница_2 = Новый Граница(КонецДня(ПериодОтчета.ДатаОкончания), ВидГраницы.Включая); // Запрос.УстановитьПараметр("КонДата", Граница_2); // |
|||
1
igork1966
23.10.17
✎
15:25
|
(0) Потому что такой тип параметра можно использовать в виртуальных таблицах регистра
|
|||
2
SpellKeeper
23.10.17
✎
15:26
|
Во-первых, при использовании границы в условии получаются данные разных типов. Из документа берется тип Дата и сравнивается с типами Граница. По ходу запрос это не понимает.
Во-вторых, в данном случае, по-моему, использование Границы бессмысленно. Т.к. устанавливаются начало и конец дня, и конкретно это условие и так включит моменты начало и конец дня в выборку. Т.е. будут захвачены все документы с датой начала периода и все документы с датой конца периода. Границу хорошо применять в выборках из виртуальных таблиц регистров. Например, нужно получить остатки на момент перед проведенным документом. Как получить этот момент? Если указать дату документа, то запрос захватит движения данного документа. Если указать -1 сек, то можно потерять документы, которые попали в ту же секунду, но все-таки стоят по времени до нужного документа. Вот в этом случае Граница очень подходит. Указываем в первом параметре МоментВремени документа, а во втором Исключая. Получаем правильный ответ. |
|||
3
igork1966
23.10.17
✎
15:29
|
(1) +
ЗаказКлиентаДополнительныеРеквизиты.Ссылка.Дата МЕЖДУ НачалоПериода(&НачДата, День) И КонецПериода(&КонДата, День) |
|||
4
falselight
23.10.17
✎
15:44
|
Ясно. Ну или так тогда КонецДня(Дата2)
|
|||
5
falselight
23.10.17
✎
15:45
|
(3) НачалоПериода(&НачДата, День) И КонецПериода(&КонДата, День)
А что это за новые методы???? |
|||
6
Филиал-msk
23.10.17
✎
15:46
|
(5) Браво, Андрей!
|
|||
7
Lexey_
23.10.17
✎
16:01
|
(5) свежак, вчера только подвезли, до Новосибирска еще не добрались
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |