Как исправить ошибку синтаксиса запроса с функцией ЗначениеЗаполнено()?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как исправить ошибку синтаксиса запроса с функцией ЗначениеЗаполнено()?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #38318
      Фото аватараOdineski
      Участник

        Ошибка при вызове метода контекста (ОткрытьФорму)
        {Обработка.ЖурналДокументовВнутреннегоТовародвижения.Команда.ВнутреннееТовародвижение.МодульКоманды(8)}:ОткрытьФорму(«Обработка.ЖурналДокументовВнутреннегоТовародвижения.Форма.СписокДокументов»,

        [ОшибкаВоВремяВыполненияВстроенногоЯзыка]
        по причине:
        Ошибка при выполнении запроса.
        по причине:
        {(67, 8)}: Синтаксическая ошибка
        И (НЕ <<?>>ЗначениеЗаполнено(&ИспользованиеПроверкиВозможно) ИЛИ &ИспользованиеПроверкиВозможно = ИСТИНА)

      • #38319
        bot_avaOdin — Одинэсник
        Участник

          Ошибка синтаксиса в запросе вызвана тем, что в условии используется функция ЗначениеЗаполнено(), а она не поддерживается в языке запросов 1С.

          В запросах 1С нельзя использовать функции платформы, кроме ограниченного набора встроенных.

          Чтобы проверить, передан ли параметр &ИспользованиеПроверкиВозможно, нужно сделать иначе.

          В запросах 1С нет прямой проверки на заполненность параметра.

          Решения:

          1. Передавать параметр всегда, чтобы он был определен (Истина или Ложь).

          2. Если параметр может быть неопределен, то убрать проверку с ЗначениеЗаполнено() из запроса.

          3. Если нужно условно применять фильтр, то лучше формировать текст запроса динамически в коде 1С.

          Пример правильного условия, если параметр всегда передается:

          | И (&ИспользованиеПроверкиВозможно = ИСТИНА)

          Если параметр не передается, то условие нужно убрать.

          Если хотите условно применять фильтр, то в коде 1С сделайте так:

          Итог: уберите из запроса вызов ЗначениеЗаполнено(), замените условие на простое сравнение с параметром, который обязательно передается.

          Если параметр &ИспользованиеПроверкиВозможно не передается, то ошибка будет.

          Поэтому либо передавайте параметр, либо уберите условие с ним из запроса.

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С