1.7
Изменены проверки:
- Проверка “Необязательные параметры процедуры/функции расположены перед обязательными” (
bsl:SequenceArguments
) переведена в разряд “Ошибок”, время на исправление увеличено до 5 минут - В проверку “Наличие пробела в начале комментария” (
bsl:SpaceAfterCommentSymbols
) добавлена настройка, позволяющая задать пропуск комментариев, начинающихся с определенных символов - Проверка “Имена процедур/функций должны быть написаны без опечаток” (
bsl:SpellCheckMethodName
) больше не срабатывает с требованием привести слово к верхнему регистру - Проверка “Назначение псевдонимов полям запроса” (
bsl:AliasMustHaveAsKeyword
) переименована в “Пропущено ключевое слово “КАК” перед псевдонимом поля”, изменено сообщение, серьезность проверки повышена до MAJOR, время на исправление понижено до 1 минуты. Принцип срабатывания проверки не изменился.
Исправлены проверки:
- Исправлено позиционирование проверки “Не следует использовать логическое “ИЛИ” в секции “ГДЕ” запроса”
- Исправлены ошибочные срабатывания проверок на устаревшие/запрещенные методы, когда имя функции использовалось как имя свойства или переменной
Добавлены проверки:
- Максимальное количество строк кода в процедуре/функции (
bsl:MethodSizeLOC
) - Использование несуществующих директив компиляции (
bsl:UnknownCompilationDirective
) - Назначение псевдонимов полям запроса (
bsl:RequireAliasInTempTable
) - Отсутствует обязательная конструкция
Если ОбменДанными.Загрузка Тогда ...
(bsl:DataExchangeLoad
) - Запрет использования выражений и полей таблиц в операторе ПОДОБНО (
bsl:ExpressionInLikeOperator
) - Текст запроса не должен быть написан в одну строку (
bsl:QueryOneLiner
) - Сообщение содержит нерекомендуемое местоимение (“Вы”, “Вас” и пр.). (
bsl:NonRecommendedPronoun
) - В параметрах функций
РольДоступна()
иПользователи.РолиДоступны()
должны быть указаны существующие роли (bsl:UnknownRole
) - Термин
1C:Предприятие
ошибочно задан с латинскойC
(bsl:LatinC
) - Рекомендуется избегать в названии общего модуля таких общих слов как “Процедуры”, “Функции”, “Обработчики”, “Модуль”, “Функциональность” и т.п. (
bsl:CommonModuleInvalidName
) - Клиентский общий модуль должен именоваться с постфиксом
Клиент
(bsl:CommonModuleNameClient
) - Клиент-серверный общий модуль должен именоваться с постфиксом
КлиентСервер
(bsl:CommonModuleNameClientServer
) - Глобальный общий модуль должен именоваться с постфиксом
Глобальный
(bsl:CommonModuleNameGlobal
) - Для глобальных модулей постфикс
Клиент
добавлять не следует (bsl:CommonModuleNameGlobalClient
) - Модули, выполняющиеся в привилегированном режиме, именуются с постфиксом
ПолныеПрава
(bsl:CommonModuleNamePrivileged
) - Общий модуль с повторно используемыми значениями должен именоваться с постфиксом
ПовтИсп
(bsl:CommonModuleNameReuseValue
) - Общий модуль с вызовом сервера должен именоваться с постфиксом
ВызовСервера
(bsl:CommonModuleNameServerCall
) - Неиспользуемый реквизит формы (
bsl:UnusedFormAttribute
) - Неиспользуемая переменная (
bsl:UnusedVariable
) - добавлена в режиме BETA, в режиме анализа конфигурации срабатывает только для общих модулей и модулей менеджеров
Проверки отмечены как устаревшие:
- В качестве правого операнда операции сравнения “ПОДОБНО” указано поле таблицы. (
bsl:ACC_FUNC_379
) - Термин “1C:Предприятие” ошибочно задан с латинской “C” (
bsl:ACC_FUNC_321
) - Обращение к несуществующей роли (
bsl:ACC_FUNC_283
) - Сообщение содержит нерекомендуемое местоимение (“Вы”, “Вас” и пр.) (
bsl:ACC_000000223
) - Глобальный общий модуль должен именоваться с постфиксом “Глобальный” (
bsl:ACC_FUNC_083
) - Не следует добавлять постфикс “Клиент” в наименование глобального общего модуля с постфиксом “Глобальный” (
bsl:ACC_FUNC_363
) - Общий модуль с повторно используемыми значениями должен именоваться с постфиксом “ПовтИсп” (
bsl:ACC_FUNC_085
) - Общий модуль, для которого предусмотрен вызов сервера, должен именоваться с постфиксом “ВызовСервера” (
bsl:ACC_FUNC_090
) - Общий модуль, доступный на сервере и на клиенте, должен именоваться с постфиксом “КлиентСервер” (
bsl:ACC_000000245
) - Общий модуль, доступный только на клиенте, должен именоваться с постфиксом “Клиент” (
bsl:ACC_FUNC_080
) - Привилегированный общий модуль должен именоваться с постфиксом “ПолныеПрава” (
bsl:ACC_FUNC_084
) - Рекомендуется избегать в названии общего модуля таких общих слов как “Процедуры”, “Функции”, “Обработчики”, “Модуль”, “Функциональность” и т.п. (
bsl:ACC_FUNC_073
) - Отсутствует обязательная конструкция “Если ОбменДанными.Загрузка Тогда …” (
bsl:ACC_FUNC_075
) - Общий модуль недопустимого типа (
bsl:ACC_FUNC_125
)
Изменения грамматики встроенного языка:
- Исправлена обработка процедур, у которых объявлена и аннотация и директива компиляции
Изменения грамматики языка запросов:
- В грамматику внесены встроенные функции языка запросов
- Значительно переработана структура выражения EXPRESSION
- Исправлена ошибка разбора запросов с использованием конструкций
ИТОГИ
иАВТОУПОРЯДОЧИВАНИЕ
в одном пакете запроса - Добавлена обработка символов
*
в значении “все поля таблицы” - В конструкции
ПЕРИОДАМИ
добавлена обработка параметров запроса и пустых ограничивающих значений дат - В конструкцию
ИТОГИ ... ПО
добавлена обработка выражений, не являющихся агрегатной функцией
Прочие изменения:
- Значительно уменьшено потребление оперативной памяти в момент выполнения клиентской части анализа
- Лексер запросов теперь корректно обрабатывает завершение строки запроса без точки с запятой или скобки. Как следствие большее количество многострочных строк теперь анализируются как запросы.
- Анализатор запроса теперь корректно обрабатывает запросы, начинающиеся со встроенных функций
- Разбор результата работы инструмента покрытия кода больше не требует подключения к интернету
- Сообщение о неуспешном разборе строки как текста запроса переведено на уровень логов TRACE