bsl-language-server
bsl-language-server copied to clipboard
[NEW] [Запросы] Разыменование ссылочных полей составного типа в языке запросов
Описание проблемы, ошибки, которую надо диагностировать
Когда поле таблицы ссылочного типа имеет составной тип, получение полей других таблиц "через точку" от такого поля составного типа приведет к соединениию со всеми таблицами, ссылки на которые могут оказаться в данном поле и в RLS к этим таблицам.
Подобное получение данных "через точку" от ссылочных полей составного типа крайне нежелательно. Каждое исключение из этого правила должно тщательно анализироваться.
Ссылка на источник, подтверждающее нарушение либо обоснование наличия проблемы
https://its.1c.ru/db/v8std#content:654:hdoc
Параметры диагностики
Тип Статья на русском
- [ ] :ant: Ошибка
- [ ] :cop: Уязвимость
- [ ] :guardsman: Потенциальная уязвимость
- [x] :poop: Качество кода
- [ ] :trollface: Другое
Важность Статья на русском
- [ ] :broken_heart: Блокирующая / Blocker
- [ ] :heart: Критическая / Critical
- [x] :yellow_heart: Важная / Major
- [ ] :blue_heart: Незначительная / Minor
- [ ] :green_heart: Информационная / Info
- [ ] :revolving_hearts: Другое
Тэги Статья на русском
- [x]
STANDARD- "Нарушение стандартов 1С" - [ ]
LOCKINOS- "Не будет работать в другой ОС" - [x]
SQL- "Проблема с запросом" - [x]
PERFORMANCE- "Проблема производительности" - [ ]
BRAINOVERLOAD- "Непонятный код" - [ ]
BADPRACTICE- "Плохая практика программирования" - [ ]
CLUMSY- "Излишние действия" - [x]
DESIGN- "Ошибка в проектировании" - [ ]
SUSPICIOUS- "Подозрительный код" - [ ]
UNPREDICTABLE- "Непредсказуемо работающий код" - [ ]
DEPRECATED- "Устаревшая функциональность" - [ ]
ERROR- "Ошибочная конструкция" - [ ]
LOCALIZE- "Проблемы локализации"
Время на исправление (минут)
10 минут
Товарищи, мейнтейнеры, хотел бы взять задачу в работу. Уже ради собственного интереса наметал диагностику и тесты, реализация не сложная, но нужна критика со стороны.
Заранее благодарю
Кстати подобная ошибка обозначена в issue #2792, но как более частный случай
@Levon444 будем только рады! Присылайте драфт пулл реквеста, обсудим
@nixel2007 создал пулл реквест
@Levon444 я что-то не вижу там проверку на составные поле... Куда-то не туда смотрю?
Не, все правильно, я изначально хотел конкретизировать диагностику до полей составного типа, но далее, увидев задачу #2792, подумал что не хватает проверки, которая комплексно бы подмечала разыменования через точку, так как проблема достаточно широкая. Собственно от того и тест попытался широко описать и диагностику более общо сделать.
Если не согласны, то подумаю как детализировать до полей составного типа.
@nixel2007 Как сможешь, ответь по сообщению выше)