1c-syntax / bsl-language-server

Реализация Language Server Protocol для языка 1C (BSL)
https://1c-syntax.github.io/bsl-language-server
Other
302 stars 105 forks source link

[NEW] [Запросы] Не существует реквизита метаданного, к таблице которого обращаемся внутри запроса #1827

Open artbear opened 3 years ago

artbear commented 3 years ago

Описание проблемы, ошибки, которую надо диагностировать

При доработке кода 1С и изменения модели метаданных нередко остаются неверные запросы, в которых идет обращение к неверным реквизитам/полям таблицы метаданного, потому что реквизит переименовали или удалили. Также ошибочные имена таблиц могут возникать при ручном изменения запросов, без использования конструктора запросов. Конфигуратор и EDT выполняют проверки кода на правильность при изменении метаданных, но эти проверки могут быть пропущены.

Поэтому нужно контролировать правильность обращения к метаданным внутри текстов запросов.

Пример запроса с неверным именем поля

ВЫБРАТЬ
    Таблица.НесуществующийРеквизит КАК Поле
ИЗ
    РегистрСведений.Регистр1 КАК Таблица

При выполнении подобных запросов будет возникать ошибка исполнения.

Ссылка на источник, подтверждающее нарушение либо обоснование наличия проблемы

Параметры диагностики

Тип Статья на русском

Важность Статья на русском

Тэги Статья на русском

Время на исправление (минут)

5 минут

Дополнительная информация

Связанные ишузы

artbear commented 3 years ago

@nixel2007 @theshadowco Назначьте на меня, я сделаю реализацию

nixel2007 commented 3 years ago

а зачем отдельное правило? почему не сделать в рамках #1822?

artbear commented 3 years ago

@nixel2007 Правила немного о разном

Поэтому я и предлагаю оставить правила разделенными