-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Стандарт 412: В запросе отсутствует проверка на NULL для поля, которое может потенциально содержать NULL. #163
Comments
Я в БЛС ЛС и Пульском плагине реализовал это замечательное правило. Ошибка по этому правилу - одни из самых частых ошибок разработчиков 1С любого уровня компетенции! |
В указанном ПР я добавил примеры и пояснил, почему использование NULL плохо. в стандартах 1С вообще очень мало информации о том, что сравнение с NULL опасная штука! |
Поддерживаю! Кажется что такую задачу довольно легко сделать. Это наверное, не "для начинающих", но всё есть. |
@artbear ты решишься сам сделать в код-стайле? 😊 |
Да, это правило - одно из моих любимых. |
@marmyshev Назначь, плиз, на меня. |
@artbear я на днях залью API 3-го уровня - для легкого и удобного тестирования QL - предлагаю тесты для этой задачи уже на нём делать. |
@artbear как дела с реализацией проеверки? нужна помощь? |
Взял в работу |
Название проверки
В запросе отсутствует проверка на NULL для поля, которое может потенциально содержать NULL.
Английское название проверки
??
Правило анализа кода/метаданных
1.2. При сортировке по полю запроса, которое может потенциально
содержать NULL, следует учитывать, что в разных СУБД порядок сортировки
по этому полю может отличаться.
Неправильно:
ВЫБРАТЬ
СправочникНоменклатура.Ссылка КАК НоменклатураСсылка,
ЗапасыОстатки.КоличествоОстаток КАК КоличествоОстаток
ИЗ
Справочник.Номенклатура КАК СправочникНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Запасы.Остатки КАК
ЗапасыОстатки
ПО (ЗапасыОстатки.Номенклатура = СправочникНоменклатура.Ссылка)
УПОРЯДОЧИТЬ ПО
КоличествоОстаток
Правильно:
ВЫБРАТЬ
СправочникНоменклатура.Ссылка КАК НоменклатураСсылка,
ЕСТЬNULL(ЗапасыОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток
ИЗ
Справочник.Номенклатура КАК СправочникНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Запасы.Остатки КАК
ЗапасыОстатки
ПО (ЗапасыОстатки.Номенклатура = СправочникНоменклатура.Ссылка)
УПОРЯДОЧИТЬ ПО
КоличествоОстаток
Мета-информация (пожалуйста, заполните если знаете):
412
??my-check-id
ERROR
SECURITY
PERFORMANCE
WARNING
PORTABILITY
LIBRARY_DEVELOPMENT_AND_USAGE
CODE_STYLE
UI_STYLE
SPELLING
BLOCKER
CRITICAL
MAJOR
MINOR
TRIVIAL
540
Параметры проверки
Текст ошибки
В запросе отсутствует проверка на NULL для поля, которое может потенциально содержать NULL.
Пример некорректного решения
Описание, почему так делать нельзя
Пример корректного решения
Дополнительные материалы
The text was updated successfully, but these errors were encountered: