Как исправить ошибку в запросе 1С:Запрос?

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

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

        исправить ошибку в запросе ТекстЗапроса =
        «ВЫБРАТЬ
        | РеестрДокументов.Ссылка КАК Ссылка,
        | РеестрДокументов.НомерДокументаИБ КАК Номер,
        | РеестрДокументов.ДатаДокументаИБ КАК Дата,
        | РеестрДокументов.Статус,
        | РеестрДокументов.Проведен,
        | РеестрДокументов.ПометкаУдаления,
        | РеестрДокументов.ХозяйственнаяОперация,
        | РеестрДокументов.Партнер,
        | ВЫРАЗИТЬ(РеестрДокументов.Контрагент.Ключ КАК Справочник.Контрагенты) КАК Контрагент,
        | РеестрДокументов.Контрагент КАК КонтрагентКлюч,
        | РеестрДокументов.Договор,
        | &Соглашение КАК Соглашение,
        | РеестрДокументов.Организация,
        | РеестрДокументов.Подразделение,
        | РеестрДокументов.МестоХранения КАК МестоХранения,
        | ВЫРАЗИТЬ(РеестрДокументов.МестоХранения.Ключ КАК Справочник.Склады) КАК Склад,
        | РеестрДокументов.Валюта,
        | РеестрДокументов.Сумма КАК СуммаДокумента,
        | РеестрДокументов.Ответственный КАК Менеджер,
        | РеестрДокументов.Автор КАК Автор,
        | РеестрДокументов.Комментарий,
        | РеестрДокументов.НомерПервичногоДокумента КАК НомерВходящегоДокумента,
        | РеестрДокументов.ДатаПервичногоДокумента КАК ДатаВходящегоДокумента,
        | РеестрДокументов.Дополнительно,
        | СостоянияЭД.СостояниеЭДО,
        | СостоянияЭД.ПредставлениеСостояния КАК ПредставлениеСостояния,
        | СостоянияРаспоряжений.Состояние КАК СостояниеWMS,
        | ВЫБОР
        | КОГДА ДокументыСОшибкамиПроверкиКонтрагентов.Документ ЕСТЬ NULL
        | ТОГДА ЛОЖЬ
        | ИНАЧЕ ИСТИНА
        | КОНЕЦ КАК ЕстьОшибкиПроверкиКонтрагентов,
        | ВЫБОР
        | КОГДА РеестрДокументов.Проведен
        | ТОГДА 0
        | КОГДА РеестрДокументов.ПометкаУдаления
        | ТОГДА 1
        | ИНАЧЕ 2
        | КОНЕЦ КАК НестандартнаяКартинка,
        | РеестрДокументов.ДополнительнаяЗапись,
        | РеестрДокументов.ТипСсылки КАК ТипСсылки,
        | ТИПЗНАЧЕНИЯ(РеестрДокументов.Ссылка) КАК ТипЗначения,
        | &СтатусПроверки КАК СтатусПроверки,
        | &ИндикаторПроверки КАК ИндикаторПроверки,
        | РеестрДокументов.СторноИсправление КАК СторноИсправление,
        | ВЫБОР
        | КОГДА НЕ РеестрДокументов.СторноИсправление
        | ТОГДА НЕОПРЕДЕЛЕНО
        | ИНАЧЕ РеестрДокументов.СторнируемыйДокумент
        | КОНЕЦ КАК СторнируемыйИсправляемыйДокумент,
        | РеестрДокументов.ИдентификаторЗаписи КАК ИдентификаторЗаписи,
        | NULL КАК СостояниеОригиналаПервичногоДокумента,
        | ИСТИНА КАК ОбщееСостояние,
        | 0 КАК СостояниеОригиналПолучен,
        | ВЫРАЗИТЬ(«»»» КАК Строка(50)) КАК СостояниеГИСМТ
        |ИЗ
        | РегистрСведений.РеестрДокументов КАК РеестрДокументов
        | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.AWMSBasis_СостоянияРаспоряжений КАК СостоянияРаспоряжений
        | ПО РеестрДокументов.Ссылка = СостоянияРаспоряжений.Документ
        | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияПоОбъектамУчетаЭДО КАК СостоянияЭД
        | ПО СостоянияЭД.СсылкаНаОбъект = РеестрДокументов.Ссылка
        | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДокументыСОшибкамиПроверкиКонтрагентов КАК ДокументыСОшибкамиПроверкиКонтрагентов
        | ПО РеестрДокументов.Ссылка = ДокументыСОшибкамиПроверкиКонтрагентов.Документ
        | И (&ИспользованиеПроверкиВозможно)
        |ГДЕ
        | РеестрДокументов.ДатаДокументаИБ МЕЖДУ &НачалоПериода И &КонецПериода
        |»;
        Возврат ТекстЗапроса;

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

          Ошибка в вашем запросе связана с тем, что в 1С-запросах нельзя использовать оператор И для соединения с условием в конце, а также в запросе отсутствует корректное завершение конструкции. Кроме того, в 1С нельзя использовать комментарии в стиле //.

          Исправленный вариант запроса с правильным синтаксисом и форматированием:

          |ТекстЗапроса =

          |ВЫБРАТЬ
          | РеестрДокументов.Ссылка КАК Ссылка,
          | РеестрДокументов.НомерДокументаИБ КАК Номер,
          | РеестрДокументов.ДатаДокументаИБ КАК Дата,
          | РеестрДокументов.Статус,
          | РеестрДокументов.Проведен,
          | РеестрДокументов.ПометкаУдаления,
          | РеестрДокументов.ХозяйственнаяОперация,
          | РеестрДокументов.Партнер,
          | ВЫРАЗИТЬ(РеестрДокументов.Контрагент.Ключ КАК Справочник.Контрагенты) КАК Контрагент,
          | РеестрДокументов.Контрагент КАК КонтрагентКлюч,
          | РеестрДокументов.Договор,
          | &Соглашение КАК Соглашение,
          | РеестрДокументов.Организация,
          | РеестрДокументов.Подразделение,
          | РеестрДокументов.МестоХранения КАК МестоХранения,
          | ВЫРАЗИТЬ(РеестрДокументов.МестоХранения.Ключ КАК Справочник.Склады) КАК Склад,
          | РеестрДокументов.Валюта,
          | РеестрДокументов.Сумма КАК СуммаДокумента,
          | РеестрДокументов.Ответственный КАК Менеджер,
          | РеестрДокументов.Автор КАК Автор,
          | РеестрДокументов.Комментарий,
          | РеестрДокументов.НомерПервичногоДокумента КАК НомерВходящегоДокумента,
          | РеестрДокументов.ДатаПервичногоДокумента КАК ДатаВходящегоДокумента,
          | РеестрДокументов.Дополнительно,
          | СостоянияЭД.СостояниеЭДО,
          | СостоянияЭД.ПредставлениеСостояния КАК ПредставлениеСостояния,
          | СостоянияРаспоряжений.Состояние КАК СостояниеWMS,
          | ВЫБОР
          | КОГДА ДокументыСОшибкамиПроверкиКонтрагентов.Документ ЕСТЬ NULL
          | ТОГДА ЛОЖЬ
          | ИНАЧЕ ИСТИНА
          | КОНЕЦ КАК ЕстьОшибкиПроверкиКонтрагентов,
          | ВЫБОР
          | КОГДА РеестрДокументов.Проведен
          | ТОГДА 0
          | КОГДА РеестрДокументов.ПометкаУдаления
          | ТОГДА 1
          | ИНАЧЕ 2
          | КОНЕЦ КАК НестандартнаяКартинка,
          | РеестрДокументов.ДополнительнаяЗапись,
          | РеестрДокументов.ТипСсылки КАК ТипСсылки,
          | ТИПЗНАЧЕНИЯ(РеестрДокументов.Ссылка) КАК ТипЗначения,
          | &СтатусПроверки КАК СтатусПроверки,
          | &ИндикаторПроверки КАК ИндикаторПроверки,
          | РеестрДокументов.СторноИсправление КАК СторноИсправление,
          | ВЫБОР
          | КОГДА НЕ РеестрДокументов.СторноИсправление
          | ТОГДА НЕОПРЕДЕЛЕНО
          | ИНАЧЕ РеестрДокументов.СторнируемыйДокумент
          | КОНЕЦ КАК СторнируемыйИсправляемыйДокумент,
          | РеестрДокументов.ИдентификаторЗаписи КАК ИдентификаторЗаписи,
          | NULL КАК СостояниеОригиналаПервичногоДокумента,
          | ИСТИНА КАК ОбщееСостояние,
          | 0 КАК СостояниеОригиналПолучен,
          | ВЫРАЗИТЬ(» КАК Строка(50)) КАК СостояниеГИСМТ
          |ИЗ
          | РегистрСведений.РеестрДокументов КАК РеестрДокументов
          | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.AWMSBasis_СостоянияРаспоряжений КАК СостоянияРаспоряжений
          | ПО РеестрДокументов.Ссылка = СостоянияРаспоряжений.Документ
          | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияПоОбъектамУчетаЭДО КАК СостоянияЭД
          | ПО СостоянияЭД.СсылкаНаОбъект = РеестрДокументов.Ссылка
          | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДокументыСОшибкамиПроверкиКонтрагентов КАК ДокументыСОшибкамиПроверкиКонтрагентов
          | ПО РеестрДокументов.Ссылка = ДокументыСОшибкамиПроверкиКонтрагентов.Документ
          |ГДЕ
          | РеестрДокументов.ДатаДокументаИБ МЕЖДУ &НачалоПериода И &КонецПериода
          | И (&ИспользованиеПроверкиВозможно = ИСТИНА)
          |»;

          Возврат ТекстЗапроса;

          Основные исправления:

          — Убраны лишние запятые.
          — Удалены комментарии //.
          — Добавлено условие И (&ИспользованиеПроверкиВозможно = ИСТИНА) в блоке ГДЕ, чтобы корректно фильтровать по параметру.
          — Все строки начинаются с | для корректного форматирования.
          — Использован оператор МЕЖДУ для фильтрации по дате.

          Если нужна помощь с тестированием или доработкой — обращайтесь.

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