Ответ в теме: Как исправить запрос в 1С для правильного синтаксиса?

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

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

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

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

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

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

    — Удалена лишняя запятая перед полем СостоянияРаспоряжений.Состояние.
    — Убраны комментарии в стиле //, так как в запросах 1С их не поддерживает.
    — Исправлен синтаксис блока ГДЕ, использован оператор МЕЖДУ для даты.
    — Все строки начинаются с символа | для корректного форматирования.
    — Убраны дублирующие поля (СостояниеWMS встречалось дважды).
    — Выровнены отступы для читаемости.

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

    База знаний 1С