Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 08:30

Имеет неограниченную длину и не может участвовать в сравнении

Автор JeremyClarksson, 17 дек 2022, 14:16

0 Пользователей и 1 гость просматривают эту тему.

JeremyClarksson

Всем привет, господа!
Собственно, вопрос: получаю ошибку при запросе:
ВЫБРАТЬ
               | РеализацияТоваровУслугТовары.Ссылка.АдресДоставки КАК АдресДоставки,
               | ВЫРАЗИТЬ(РеализацияТоваровУслугТовары.Ссылка.Партнер.Наименование КАК СТРОКА(150)) КАК Контрагент,
               | докЗаказКлиента.Ссылка КАК Заказ,
               | СУММА(РеализацияТоваровУслугТовары.КоличествоУпаковок) КАК Количество,
               | ЕСТЬNULL(докЗаказКлиента.ВремяДоставкиС, ""Не указано"") КАК ВремяДоставкиС,
               | ЕСТЬNULL(докЗаказКлиента.ВремяДоставкиПо, ""Не указано"") КАК ВремяДоставкиПо
               |ИЗ
               | Документ.ЗаказКлиента КАК докЗаказКлиента
               | ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
               | ПО (РеализацияТоваровУслугТовары.ЗаказКлиента = докЗаказКлиента.Ссылка)
               |ГДЕ
               | РеализацияТоваровУслугТовары.Ссылка.Склад.Ссылка = &Склад
               | И НАЧАЛОПЕРИОДА(РеализацияТоваровУслугТовары.Ссылка.Дата, ДЕНЬ) = &ДатаОтгрузки
               | И докЗаказКлиента.СпособДоставки = &СпособДоставки
               |
               |СГРУППИРОВАТЬ ПО
               | РеализацияТоваровУслугТовары.Ссылка.АдресДоставки,
               | ВЫРАЗИТЬ(РеализацияТоваровУслугТовары.Ссылка.Партнер.Наименование КАК СТРОКА(150)),
               | докЗаказКлиента.Ссылка,
               | ЕСТЬNULL(докЗаказКлиента.ВремяДоставкиС, ""Не указано""),
               | ЕСТЬNULL(докЗаказКлиента.ВремяДоставкиПо, ""Не указано"")
Ругается на последнюю строку
Запрос невозможно исполнить
Поле "ВЫБРАТЬ
   РеализацияТоваровУслугТовары.Ссылка.АдресДоставки КАК АдресДоставки,
   ВЫРАЗИТЬ(РеализацияТоваровУслугТовары.Ссылка.Партнер.Наименование КАК СТРОКА(150)) КАК Контрагент,
   докЗаказКлиента.Ссылка КАК Заказ,
   СУММА(РеализацияТоваровУслугТовары.КоличествоУпаковок) КАК Количество,
   ЕСТЬNULL(докЗаказКлиента.ВремяДоставкиС, "Не указано") КАК ВремяДоставкиС,
   ЕСТЬNULL(докЗаказКлиента.ВремяДоставкиПо, "Не указано") КАК ВремяДоставкиПо
ИЗ
   Документ.ЗаказКлиента КАК докЗаказКлиента
      ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
      ПО (РеализацияТоваровУслугТовары.ЗаказКлиента = докЗаказКлиента.Ссылка)
ГДЕ
   РеализацияТоваровУслугТовары.Ссылка.Склад.Ссылка = &Склад
   И НАЧАЛОПЕРИОДА(РеализацияТоваровУслугТовары.Ссылка.Дата, ДЕНЬ) = &ДатаОтгрузки
   И докЗаказКлиента.СпособДоставки = &СпособДоставки

СГРУППИРОВАТЬ ПО
   РеализацияТоваровУслугТовары.Ссылка.АдресДоставки,
   ВЫРАЗИТЬ(РеализацияТоваровУслугТовары.Ссылка.Партнер.Наименование КАК СТРОКА(150)),
   докЗаказКлиента.Ссылка,
   ЕСТЬNULL(докЗаказКлиента.ВремяДоставкиС, "Не указано"),
   ЕСТЬNULL(докЗаказКлиента.ВремяДоставкиПо, "Не указано")" имеет неограниченную длину и не может участвовать в сравнении.
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(33)}:   Результат = Запрос.Выполнить().Выгрузить();
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(53)}:   ТЗ = СформироватьНаСервере(Склад, ДатаОтгрузки, ДоставкаСобственнымТранспортом);

ВремяДоставкиПо- тип "дата" состав даты "Время"
Как победить это? Подскажите пожалуйста

LexaK

JeremyClarksson, какой тип у реквизита: ВремяДоставкиПо ?
и вообще зачем такая конструкция?
ЕСТЬNULL(докЗаказКлиента.ВремяДоставкиПо, ""Не указано"") КАК ВремяДоставкиПо

должно подойти это

докЗаказКлиента.ВремяДоставкиПо КАК ВремяДоставкиПо

если время доставки действительно неограниченная строка, тогда так попробуйте

Выразить(докЗаказКлиента.ВремяДоставкиПо КАК Строка 100 ) КАК ВремяДоставкиПо //заменить в двух местах
если помогло нажмите: Спасибо!

JeremyClarksson

LexaK, доброго дня!
В том то и дело, что ВремяДоставкиПо тип "Дата"
Не понимаю, о какой строке неограниченной длинны мне говорят, если тип дата

antoneus

Зачем ЕСТЬNULL, если выборка идет из таблицы заказов и дата там не может быть null?

ВЫБОР КОГДА докЗаказКлиента.ВремяДоставкиС = ДАТАВРЕМЯ(1, 1, 1) ТОГДА "Не указано" ИНАЧЕ докЗаказКлиента.ВремяДоставкиС КОНЕЦ
А вообще да, я бы перепроверил тип реквизита)

JeremyClarksson

antoneus, дык проверял тип реквизита. Тип дата))
Короче, не знаю, что это было, но удалив запрос и составив его заново, проблема ушла.
С NULL это уже было отчаяние какое то, чтоб проверить. Понимал, что это не правильно

Теги:

Похожие темы (4)

Рейтинг@Mail.ru

Поиск