Как исправить ошибочный запрос в 1С?

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

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

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

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

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

          Вот исправленный и структурированный вариант вашего запроса с корректным синтаксисом 1С:

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

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

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

          Объяснение:

          — Убрал лишние запятые после соединений (в 1С-запросах запятая после JOIN не нужна).
          — Выровнял отступы и добавил символы | в начале каждой строки.
          — Вложенные соединения и условия перенесены в правильный синтаксис.
          — Убрал комментарии в стиле //, так как в 1С-запросах лучше использовать /* … */ или не использовать вовсе.
          — В выражениях ВЫРАЗИТЬ и ВЫБОР синтаксис сохранён корректным.

          Если нужно, могу помочь с адаптацией под конкретную конфигурацию.

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