Releases: 1C-Company/v8-code-style
Releases · 1C-Company/v8-code-style
Release v0.6.alpha
Выпуск бета-версии для 1C:EDT 2023.2
Исправленные ошибки
- Автосортировщик не сортирует дочерние подсистемы после получения изменений из базы
- Исправлены тексты сообщений в проверке common-module-name-global-client
Release v0.5
Выпуск бета-версии для 1C:EDT 2023.1
Новые проверки
Метаданные
- Документ не имеет реквизита "Комментарий"
- Реквизит "Комментарий" имеет корректный тип
- В документе, предполагающем проведение, не установлен флаг "Привилегированный режим при проведении / отмене проведения"
- Проверка наличия буквы "ё" в имени, синониме или комментарии объекта метаданных
- В функциональной опции не установлен флаг "Привилегированный режим при получении"
Формы
- Использована ролевая настройка видимости, редактирования, использования для элемента формы
- Проверка на использование условного оформления в динамеческих списках
Код модулей
- Проверка отсутствия кода после асинхронного вызова
- Проверка использования метода ДанныеФормыВЗначение вместо РеквизитФормыВЗначение
- В проверку использования нерекомендуемых методов (use-non-recommended-method) добавлен метод ПолучитьФорму(GetForm)
- Использование устаревшего метода Найти
- Отсутствует комментарий к экспортной процедуре (функции)
- Документирующий комментарий не содержит секцию "Описание" для экспортной процедуры (функции)
- В проверку "module-self-reference" добавлен параметр, позволяющий пропускать проверку для модулей объектов, наборов записей и менеджеров значений
- Проверка корректного наименования переменных
- Обращение к несуществующему параметру формы
- Необязательный параметр процедуры/функции стоит перед обязательным
- Обращение к опциональному параметру формы
- Функция "РольДоступна" ссылается на несуществующие роли
- Проверка на использование оператора Перейти (Goto) в коде модулей
Запросы
- Доработана проверка ql-temp-table-index: параметр MAX_TOP (Макс. кол-во строк в выборке) теперь настраиваемый.
Прочие изменения
Автосортировка
- В свойствах проекта секция "Авто сортировка" теперь располагается по пути "V8 -> Сортировка объектов метаданных -> Авто сортировка"
- В свойствах проекта в секции "Авто сортировка" более недоступна настройка направления и порядка сортировки. Настройка направления и порядка сортировки доступна в секции "Сортировка объектов метаданных"
- В свойствах проекта в секции "Авто сортировка" добавлена возможность переноса заданных пользователем настроек направления и порядка сортировки в секцию "Сортировка объектов метаданных" и их очистки
- Добавлена консольная команда сортировки проекта
Исправленные ошибки
- Требование к программному продукту: Для переменных общих модулей проверялся префикс расширения и диагностировалась ошибка
- При анализе расположения устаревших методов учитывался только сценарий расположения устаревшей области в программном интерфейса, теперь учитывается еще и служебный программный интерфейс
- Исправлена ошибка в сообщении проверки method-optional-parameter-before-required #1351
- Некорректная работа: md-object-attribute-comment-not-exist #1334
Release v0.5.alpha
0.5.0
Выпуск бета-версии для 1C:EDT 2023.1
Новые проверки
Метаданные
- Документ не имеет реквизита "Комментарий"
- Реквизит "Комментарий" имеет корректный тип
- В документе, предполагающем проведение, не установлен флаг "Привилегированный режим при проведении / отмене проведения"
- Проверка наличия буквы "ё" в имени, синониме или комментарии объекта метаданных
- В функциональной опции не установлен флаг "Привилегированный режим при получении"
Формы
- Использована ролевая настройка видимости, редактирования, использования для элемента формы
- Проверка на использование условного оформления в динамеческих списках
Код модулей
- Проверка отсутствия кода после асинхронного вызова
- Проверка использования метода ДанныеФормыВЗначение вместо РеквизитФормыВЗначение
- В проверку использования нерекомендуемых методов (use-non-recommended-method) добавлен метод ПолучитьФорму(GetForm)
- Использование устаревшего метода Найти
- Отсутствует комментарий к экспортной процедуре (функции)
- Документирующий комментарий не содержит секцию "Описание" для экспортной процедуры (функции)
- В проверку "module-self-reference" добавлен параметр, позволяющий пропускать проверку для модулей объектов, наборов записей и менеджеров значений
- Проверка корректного наименования переменных
- Обращение к несуществующему параметру формы
- Необязательный параметр процедуры/функции стоит перед обязательным
- Обращение к опциональному параметру формы
- Функция "РольДоступна" ссылается на несуществующие роли
- Проверка на использование оператора Перейти (Goto) в коде модулей
Запросы
- Доработана проверка ql-temp-table-index: параметр MAX_TOP (Макс. кол-во строк в выборке) теперь настраиваемый.
Прочие изменения
Автосортировка
- В свойствах проекта секция "Авто сортировка" теперь располагается по пути "V8 -> Сортировка объектов метаданных -> Авто сортировка"
- В свойствах проекта в секции "Авто сортировка" более недоступна настройка направления и порядка сортировки. Настройка направления и порядка сортировки доступна в секции "Сортировка объектов метаданных"
- В свойствах проекта в секции "Авто сортировка" добавлена возможность переноса заданных пользователем настроек направления и порядка сортировки в секцию "Сортировка объектов метаданных" и их очистки
- Добавлена консольная команда сортировки проекта
Исправленные ошибки
- Требование к программному продукту: Для переменных общих модулей проверялся префикс расширения и диагностировалась ошибка
- При анализе расположения устаревших методов учитывался только сценарий расположения устаревшей области в программном интерфейса, теперь учитывается еще и служебный программный интерфейс
Release v0.4
Релиз поставляется в составе 1C:EDT 2022.2 - самостоятельная установка не требуется.
Новые проверки
Метаданные
- Превышена максимальная длина ресурса регистра накопления или бухгалтерии (25 знаков)
- Для глобальных модулей не следует добавлять постфикс «Клиент»
- Проверка наличия префикса расширения в имени объекта расширения.
- Общий модуль, для которого установлен признак привилегированный, должен именоваться с постфиксом "ПолныеПрава"
Формы
- Один обработчик выполнения назначен нескольким элементам
Код модулей
- Добавление типизированного значения в не типизированную коллекцию
- Общий модуль должен иметь программный интерфейс
- Кэширование программного интерфейса
- Проверка максимального количества допустимых пустых строк
- Чтение отдельных реквизитов объекта из базы данных
- Использование экспортных переменных в модулях объекта
- Использование конструкции "Новый Шрифт"
- Проверка наличия префикса расширения в имени переменной расширения
- Проверка наличия префикса расширения в методе расширения.
- Устаревшая процедура (функция) расположена вне области "УстаревшиеПроцедурыИФункции"
- Использован обработчик событий, подключаемый из кода и не содержащий префикса "Подключаемый_"
Новые быстрые исправления (Quick-fix)
- Исправление превышения максимального количества допустимых пустых строк
Автосортировка
- Добавлена настройка порядка сортировки. Метаданные можно сортировать по правилам конфигуратора
Исправленные ошибки
- Стандарт 492: Добавить исключение в module-unused-method для процедур подключаемых из кода с префиксом "Подключаемый_" #1141
- Стандарт 644: Исправлена ситуация при которой для вложенных областей в устаревшую область диагностировалась ошибка
Release v0.4.beta
#499 Глобальный клиентский модуль не должен содержать постфикс Клиент…
Release v0.3.fix
Ложное срабатывание проверки: module-self-reference #1162
Release v0.3
Merge pull request #1152 from 1C-Company/bugfix/1138-parent-type-inte…
Release v0.3.beta - много новых проверок и квик-фиксов
Релиз поставляется в составе 1C:EDT 2022.1 - самостоятельная установка не требуется.
Новые проверки
Метаданные
- Длина синонима раздела верхнего уровня, отображаемого в интерфейсе, не должна превышать 35 символов
- Реквизиты составного типа, содержащие ссылочные типы и нессылочные типы вместе
- Реквизиты составного типа, содержащие типы
ЛюбаяСсылка
,СправочникСсылка
,ДокументСсылка
и аналогичные - Небезопасное хранение паролей в информационной базе
Формы
- У реквизита "Ссылка" динамического списка выключен признак "Использовать всегда"
- У поля "Ссылка" таблицы динамического списка не отключена пользовательская видимость
- У каждого события должна быть назначена своя процедура-обработчик
- Проверка заполнения заголовка поля динамического списка
- Реквизит "Ссылка" динамического списка не выведен в таблицу на форме
Код модулей
- 3 проверки на избыточное обращение внутри модуля через его имя или псевдоним ЭтотОбъект (к методу, свойству или реквизиту)
- Проверка использования устаревшего "ЭтаФорма" в модуле формы
- Избыточное ключевое слово Экспорт
- Проверка нарушения схемы работы с транзакциями связанной с фиксацией транзакции:
- Вызов "ЗафиксироватьТранзакцию()" находится вне конструкции "Попытка... Исключение"
- Отсутствует вызов "НачатьТранзакцию()", хотя вызываются "ЗафиксироватьТранзакцию()"
- Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ОтменитьТранзакцию()"
- Mежду "ЗафиксироватьТранзакцию()" и "Исключение" есть исполняемый код, который может вызвать исключение
- Проверка нарушения схемы работы с транзакциями связанной с отменой транзакции:
- Вызов "ОтменитьТранзакцию()" находится вне конструкции "Попытка... Исключение"
- Отсутствует вызов "НачатьТранзакцию()", хотя вызываются "ОтменитьТранзакцию()"
- Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ЗафиксироватьТранзакцию()"
- Mежду "Исключение" и "ОтменитьТранзакцию()" есть исполняемый код, который может вызвать исключение
- Проверка нарушения схемы работы с транзакциями связанной с началом транзакции:
- Mежду "НачатьТранзакцию()" и "Попытка" есть исполняемый код, который может вызвать исключение
- Не найден оператор "Попытка" после вызова "НачатьТранзакцию()"
- Отсутствует удаление временного файла после использования.
- Структура модуля. Проверка областей событий формы.
- Структура модуля. Добавлена проверка области событий.
- Отсутствует включение безопасного режима перед вызовом метода "Выполнить" или "Вычислить"
- Структура модуля. Добавлена проверка метода вне области.
- Структура модуля. Добавлена проверка соответсвия состава областей верхнего модуля стандарту, их порядка и наличия дублей.
- Структура модуля. Проверка что код инициализации расположен в области инициализации.
- Структура модуля. Область объявления переменных.
Запросы
- В качестве правого операнда операции сравнения "ПОДОБНО" указано поле таблицы
- В запросе в бинарной операции используются константные значения
Права ролей
- Установлено право "Удаление"
Новые быстрые исправления (Quick-fix)
- 3 исправления исправления для удаления избыточного обращения внутри модуля к самому себе
- Замена в модуле формы устаревшего свойства "ЭтаФорма" на "ЭтотОбъект"
- Конвертация функции в процедуру
- Генерация заголовка элемента формы динамического списка
- Генерация заголовка поля динамического списка (8.3.19 и выше)
- Добавление включения безопасного режима перед вызовом метода "Выполнить" или "Вычислить"
Исправленные ошибки
- Неправильно валидируется пустой метод с комментарием #1007
- Понижение критичности для ошибок с кодами "doc-comment-use-minus", "form-module-missing-pragma" #1014
- Ошибка проверки md-standard-attribute-synonym-empty на проекте расширения #1021
- NPE при проверке в FunctionCtorReturnSectionCheck #1029
- NullPointerException, если проект EDT - расширение без указания основного языка. #1033
- Исключить BaseForm из проверок для форм #1037
- Ложное срабатывание проверки: common-module-type (признак привилегированный) #1031
- Ложное срабатывание проверки: invocation-parameter-type-intersect для Списка значений #997
- Ложное срабатывание проверки: invocation-parameter-type-intersect - для методов с несколькими вариантами вызова #992 #1039 #1056
- Ложное срабатывание проверки: doc-comment-ref-link Учет точки в конце ссылки на метод #993
- Ложное срабатывание проверки: statement-type-change для типов общего модуля #994
- Некорректное сообщение об ошибке в строгих типах. Не существует типа "Таблица" #1055
- Ложное сообщение об ошибке о неиспользовании составных типов для стандартных объектов метаданных #1069
- Ложное срабатывание проверки для динамических списков с произвольным запросом: У реквизита "Ссылка" динамического списка выключен признак "Использовать всегда" #1071
- Проверка: right-... не находит ошибку для роли с включением по умолчанию #815
- Отключение проверок для заимствованных объектов в расширении #1076
- Проверка: form-self-reference не находит ошибку #1086
- Ложное срабатывание проверки: module-structure-event-regions для обработчиков событий расположенных в общем модуле #1102
- Автосортировка падает при переводе кода #1106
Release v0.3.alpha
Релиз поставляется в составе 1C:EDT 2022.1 - самостоятельная установка не требуется.
Новые проверки
Метаданные
- Длина синонима раздела верхнего уровня, отображаемого в интерфейсе, не должна превышать 35 символов
- Реквизиты составного типа, содержащие ссылочные типы и нессылочные типы вместе
- Реквизиты составного типа, содержащие типы
ЛюбаяСсылка
,СправочникСсылка
,ДокументСсылка
и аналогичные - Небезопасное хранение паролей в информационной базе
Формы
- У реквизита "Ссылка" динамического списка выключен признак "Использовать всегда"
- У поля "Ссылка" таблицы динамического списка не отключена пользовательская видимость
- У каждого события должна быть назначена своя процедура-обработчик
Код модулей
- 3 проверки на избыточное обращение внутри модуля через его имя или псевдоним ЭтотОбъект (к методу, свойству или реквизиту)
- Проверка использования устаревшего "ЭтаФорма" в модуле формы
- Проверка нарушения схемы работы с транзакциями связанной с фиксацией транзакции:
- Вызов "ЗафиксироватьТранзакцию()" находится вне конструкции "Попытка... Исключение"
- Отсутствует вызов "НачатьТранзакцию()", хотя вызываются "ЗафиксироватьТранзакцию()"
- Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ОтменитьТранзакцию()"
- Mежду "ЗафиксироватьТранзакцию()" и "Исключение" есть исполняемый код, который может вызвать исключение
- Проверка нарушения схемы работы с транзакциями связанной с отменой транзакции:
- Вызов "ОтменитьТранзакцию()" находится вне конструкции "Попытка... Исключение"
- Отсутствует вызов "НачатьТранзакцию()", хотя вызываются "ОтменитьТранзакцию()"
- Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ЗафиксироватьТранзакцию()"
- Mежду "Исключение" и "ОтменитьТранзакцию()" есть исполняемый код, который может вызвать исключение
- Проверка нарушения схемы работы с транзакциями связанной с началом транзакции:
- Mежду "НачатьТранзакцию()" и "Попытка" есть исполняемый код, который может вызвать исключение
- Не найден оператор "Попытка" после вызова "НачатьТранзакцию()"
- Отсутствует удаление временного файла после использования.
Новые быстрые исправления (Quick-fix)
- 3 исправления исправления для удаления избыточного обращения внутри модуля к самому себе
- Замена в модуле формы устаревшего свойства "ЭтаФорма" на "ЭтотОбъект"
- Конвертация функции в процедуру
Исправленные ошибки
- Неправильно валидируется пустой метод с комментарием #1007
- Понижение критичности для ошибок с кодами "doc-comment-use-minus", "form-module-missing-pragma" #1014
- Ошибка проверки md-standard-attribute-synonym-empty на проекте расширения #1021
- NPE при проверке в FunctionCtorReturnSectionCheck #1029
- NullPointerException, если проект EDT - расширение без указания основного языка. #1033
- Исключить BaseForm из проверок для форм #1037
- Ложное срабатывание проверки: common-module-type (признак привилегированный) #1031
- Ложное срабатывание проверки: invocation-parameter-type-intersect для Списка значений #997
- Ложное срабатывание проверки: invocation-parameter-type-intersect - для методов с несколькими вариантами вызова #992 #1039 #1056
- Ложное срабатывание проверки: doc-comment-ref-link Учет точки в конце ссылки на метод #993
- Ложное срабатывание проверки: statement-type-change для типов общего модуля #994
- Некорректное сообщение об ошибке в строгих типах. Не существует типа "Таблица" #1055
Release v0.2
Релиз поставляется в составе 1C:EDT 2021.3 - самостоятельная установка не требуется.
Новые фичи
- Функциональные опции, добавляемые 1C:Code Style, собраны в одном месте для удобного включения/выключения - в помощнике создания нового проекта или в свойствах проекта.
- В автосортировке метаданных добавлен учет системы запрета редактирования объектов (правила поддержки)
- Контекстное включение строгой типизации в модулях: по проекту, по списку объектов 1С или по списку файлов/каталогов, из контекстного меню в редакторе модуля
Новые проверки
Метаданные
- Периодичность выполнения регламентного задания меньше одной минуты
- Общий модуль, для которого предусмотрен вызов сервера, должен именоваться с постфиксом "ВызовСервера"
- Общий модуль с повторно используемыми значениями должен именоваться с постфиксом "ПовтИсп"
- Клиентский общий модуль с повторно используемыми значениями должен именоваться с постфиксом "КлиентПовтИсп"
- Общий модуль ВызовСервера с повторно используемыми значениями должен именоваться с постфиксом "ВызовСервераПовтИсп"
Код модулей
- Использован метод "РольДоступна()"
- Программный вызов обработчика события формы
- Изменение категории проверки use-non-recommended-method на "стандарты разработки"
- Использование конструкции "Новый Цвет"
- Перенесены проверки документирующего комментария:
- Тип коллекций в документирующем комментарии содержит тип элемента коллекции
- Поле документирующего комментария использует объявление сложного типа вместо ссылки на тип
- Многострочное описание документирующего комментария оканчивается на точку
- Серкция возвращаемого значения документирующего комментария для экспортной функции
- Многострочное описание документирующего комментария содержит определение поля
- Поле документирующего комментария является корректным именем
- Поле документирующего комментария не имеет определения типа
- Многострочное описание документирующего комментария содержит определение параметра
- В секции параметров документирующего комментария пропущено определение параметра
- Документирующий комментарий содежрит секцию возвращаемого значения для процедуры
- Ссылка документирующего комментария на существующий объект
- Секция возвращаемого значения документирующего комментария содержит корректные типы
- Определение типа документирующего комментария
- Активирована ранее отключенная проверка: Секция возвращаемого значения функции-конструктора данных
- Исправлен идентификатор проверки тип в строгой типизации:
doc-comment-field-type
->doc-comment-field-type-strict
- Ограничения на использование экспортных процедур и функций в модулях команд и форм
- Вызов "Заблокировать()" находится вне попытки
- Для проверок dynamic-access-method-not-found и property-return-type добавлена возможность исключения по типам (COM-Объекты)
- Проверка типов invocation-parameter-type-intersect проверяет типы элементов коллекций: Массив, Соотвествие, СписокЗначений
Новые быстрые исправления (Quick-fix)
- Удаление аннотации строгой типизации из модуля
- Открытие панели документирующего комментария
- Удаление ключевого слова Экспорт для процедур или функций в модуле команды и в модуле формы
Другие изменения
- Исправлены ошибки
- Подробнее здесь.