Skip to content

Releases: 1C-Company/v8-code-style

Release v0.6.alpha

16 Dec 01:22
8ac5eb5
Compare
Choose a tag to compare
Release v0.6.alpha Pre-release
Pre-release

Выпуск бета-версии для 1C:EDT 2023.2

Исправленные ошибки

  • Автосортировщик не сортирует дочерние подсистемы после получения изменений из базы
  • Исправлены тексты сообщений в проверке common-module-name-global-client

Release v0.5

16 Dec 00:22
77a5e3d
Compare
Choose a tag to compare

Выпуск бета-версии для 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

25 May 08:32
a8b9767
Compare
Choose a tag to compare
Release v0.5.alpha Pre-release
Pre-release

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

10 Mar 10:27
2337830
Compare
Choose a tag to compare

Релиз поставляется в составе 1C:EDT 2022.2 - самостоятельная установка не требуется.

Новые проверки

Метаданные

  • Превышена максимальная длина ресурса регистра накопления или бухгалтерии (25 знаков)
  • Для глобальных модулей не следует добавлять постфикс «Клиент»
  • Проверка наличия префикса расширения в имени объекта расширения.
  • Общий модуль, для которого установлен признак привилегированный, должен именоваться с постфиксом "ПолныеПрава"

Формы

  • Один обработчик выполнения назначен нескольким элементам

Код модулей

  • Добавление типизированного значения в не типизированную коллекцию
  • Общий модуль должен иметь программный интерфейс
  • Кэширование программного интерфейса
  • Проверка максимального количества допустимых пустых строк
  • Чтение отдельных реквизитов объекта из базы данных
  • Использование экспортных переменных в модулях объекта
  • Использование конструкции "Новый Шрифт"
  • Проверка наличия префикса расширения в имени переменной расширения
  • Проверка наличия префикса расширения в методе расширения.
  • Устаревшая процедура (функция) расположена вне области "УстаревшиеПроцедурыИФункции"
  • Использован обработчик событий, подключаемый из кода и не содержащий префикса "Подключаемый_"

Новые быстрые исправления (Quick-fix)

  • Исправление превышения максимального количества допустимых пустых строк

Автосортировка

  • Добавлена настройка порядка сортировки. Метаданные можно сортировать по правилам конфигуратора

Исправленные ошибки

  • Стандарт 492: Добавить исключение в module-unused-method для процедур подключаемых из кода с префиксом "Подключаемый_" #1141
  • Стандарт 644: Исправлена ситуация при которой для вложенных областей в устаревшую область диагностировалась ошибка

Release v0.4.beta

25 Jan 11:15
e6b22f9
Compare
Choose a tag to compare
Release v0.4.beta Pre-release
Pre-release
#499 Глобальный клиентский модуль не должен содержать постфикс Клиент…

Release v0.3.fix

10 Oct 10:16
Compare
Choose a tag to compare
Release v0.3.fix Pre-release
Pre-release
Ложное срабатывание проверки: module-self-reference #1162

Release v0.3

16 Sep 16:12
dc66530
Compare
Choose a tag to compare
Release v0.3 Pre-release
Pre-release
Merge pull request #1152 from 1C-Company/bugfix/1138-parent-type-inte…

Release v0.3.beta - много новых проверок и квик-фиксов

16 Aug 08:08
Compare
Choose a tag to compare

Релиз поставляется в составе 1C:EDT 2022.1 - самостоятельная установка не требуется.

Новые проверки

Метаданные

  • Длина синонима раздела верхнего уровня, отображаемого в интерфейсе, не должна превышать 35 символов
  • Реквизиты составного типа, содержащие ссылочные типы и нессылочные типы вместе
  • Реквизиты составного типа, содержащие типы ЛюбаяСсылка, СправочникСсылка, ДокументСсылка и аналогичные
  • Небезопасное хранение паролей в информационной базе

Формы

  • У реквизита "Ссылка" динамического списка выключен признак "Использовать всегда"
  • У поля "Ссылка" таблицы динамического списка не отключена пользовательская видимость
  • У каждого события должна быть назначена своя процедура-обработчик
  • Проверка заполнения заголовка поля динамического списка
  • Реквизит "Ссылка" динамического списка не выведен в таблицу на форме

Код модулей

  • 3 проверки на избыточное обращение внутри модуля через его имя или псевдоним ЭтотОбъект (к методу, свойству или реквизиту)
  • Проверка использования устаревшего "ЭтаФорма" в модуле формы
  • Избыточное ключевое слово Экспорт
  • Проверка нарушения схемы работы с транзакциями связанной с фиксацией транзакции:
    1. Вызов "ЗафиксироватьТранзакцию()" находится вне конструкции "Попытка... Исключение"
    2. Отсутствует вызов "НачатьТранзакцию()", хотя вызываются "ЗафиксироватьТранзакцию()"
    3. Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ОтменитьТранзакцию()"
    4. Mежду "ЗафиксироватьТранзакцию()" и "Исключение" есть исполняемый код, который может вызвать исключение
  • Проверка нарушения схемы работы с транзакциями связанной с отменой транзакции:
    1. Вызов "ОтменитьТранзакцию()" находится вне конструкции "Попытка... Исключение"
    2. Отсутствует вызов "НачатьТранзакцию()", хотя вызываются "ОтменитьТранзакцию()"
    3. Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ЗафиксироватьТранзакцию()"
    4. Mежду "Исключение" и "ОтменитьТранзакцию()" есть исполняемый код, который может вызвать исключение
  • Проверка нарушения схемы работы с транзакциями связанной с началом транзакции:
    1. Mежду "НачатьТранзакцию()" и "Попытка" есть исполняемый код, который может вызвать исключение
    2. Не найден оператор "Попытка" после вызова "НачатьТранзакцию()"
  • Отсутствует удаление временного файла после использования.
  • Структура модуля. Проверка областей событий формы.
  • Структура модуля. Добавлена проверка области событий.
  • Отсутствует включение безопасного режима перед вызовом метода "Выполнить" или "Вычислить"
  • Структура модуля. Добавлена проверка метода вне области.
  • Структура модуля. Добавлена проверка соответсвия состава областей верхнего модуля стандарту, их порядка и наличия дублей.
  • Структура модуля. Проверка что код инициализации расположен в области инициализации.
  • Структура модуля. Область объявления переменных.

Запросы

  • В качестве правого операнда операции сравнения "ПОДОБНО" указано поле таблицы
  • В запросе в бинарной операции используются константные значения

Права ролей

  • Установлено право "Удаление"

Новые быстрые исправления (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

19 Jul 08:51
Compare
Choose a tag to compare
Release v0.3.alpha Pre-release
Pre-release

Релиз поставляется в составе 1C:EDT 2022.1 - самостоятельная установка не требуется.

Новые проверки

Метаданные

  • Длина синонима раздела верхнего уровня, отображаемого в интерфейсе, не должна превышать 35 символов
  • Реквизиты составного типа, содержащие ссылочные типы и нессылочные типы вместе
  • Реквизиты составного типа, содержащие типы ЛюбаяСсылка, СправочникСсылка, ДокументСсылка и аналогичные
  • Небезопасное хранение паролей в информационной базе

Формы

  • У реквизита "Ссылка" динамического списка выключен признак "Использовать всегда"
  • У поля "Ссылка" таблицы динамического списка не отключена пользовательская видимость
  • У каждого события должна быть назначена своя процедура-обработчик

Код модулей

  • 3 проверки на избыточное обращение внутри модуля через его имя или псевдоним ЭтотОбъект (к методу, свойству или реквизиту)
  • Проверка использования устаревшего "ЭтаФорма" в модуле формы
  • Проверка нарушения схемы работы с транзакциями связанной с фиксацией транзакции:
    1. Вызов "ЗафиксироватьТранзакцию()" находится вне конструкции "Попытка... Исключение"
    2. Отсутствует вызов "НачатьТранзакцию()", хотя вызываются "ЗафиксироватьТранзакцию()"
    3. Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ОтменитьТранзакцию()"
    4. Mежду "ЗафиксироватьТранзакцию()" и "Исключение" есть исполняемый код, который может вызвать исключение
  • Проверка нарушения схемы работы с транзакциями связанной с отменой транзакции:
    1. Вызов "ОтменитьТранзакцию()" находится вне конструкции "Попытка... Исключение"
    2. Отсутствует вызов "НачатьТранзакцию()", хотя вызываются "ОтменитьТранзакцию()"
    3. Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ЗафиксироватьТранзакцию()"
    4. Mежду "Исключение" и "ОтменитьТранзакцию()" есть исполняемый код, который может вызвать исключение
  • Проверка нарушения схемы работы с транзакциями связанной с началом транзакции:
    1. Mежду "НачатьТранзакцию()" и "Попытка" есть исполняемый код, который может вызвать исключение
    2. Не найден оператор "Попытка" после вызова "НачатьТранзакцию()"
  • Отсутствует удаление временного файла после использования.

Новые быстрые исправления (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

15 Apr 13:21
Compare
Choose a tag to compare

Релиз поставляется в составе 1C:EDT 2021.3 - самостоятельная установка не требуется.

Новые фичи

  • Функциональные опции, добавляемые 1C:Code Style, собраны в одном месте для удобного включения/выключения - в помощнике создания нового проекта или в свойствах проекта.
  • В автосортировке метаданных добавлен учет системы запрета редактирования объектов (правила поддержки)
  • Контекстное включение строгой типизации в модулях: по проекту, по списку объектов 1С или по списку файлов/каталогов, из контекстного меню в редакторе модуля

Новые проверки

Метаданные

  • Периодичность выполнения регламентного задания меньше одной минуты
  • Общий модуль, для которого предусмотрен вызов сервера, должен именоваться с постфиксом "ВызовСервера"
  • Общий модуль с повторно используемыми значениями должен именоваться с постфиксом "ПовтИсп"
  • Клиентский общий модуль с повторно используемыми значениями должен именоваться с постфиксом "КлиентПовтИсп"
  • Общий модуль ВызовСервера с повторно используемыми значениями должен именоваться с постфиксом "ВызовСервераПовтИсп"

Код модулей

  • Использован метод "РольДоступна()"
  • Программный вызов обработчика события формы
  • Изменение категории проверки use-non-recommended-method на "стандарты разработки"
  • Использование конструкции "Новый Цвет"
  • Перенесены проверки документирующего комментария:
    1. Тип коллекций в документирующем комментарии содержит тип элемента коллекции
    2. Поле документирующего комментария использует объявление сложного типа вместо ссылки на тип
    3. Многострочное описание документирующего комментария оканчивается на точку
    4. Серкция возвращаемого значения документирующего комментария для экспортной функции
    5. Многострочное описание документирующего комментария содержит определение поля
    6. Поле документирующего комментария является корректным именем
    7. Поле документирующего комментария не имеет определения типа
    8. Многострочное описание документирующего комментария содержит определение параметра
    9. В секции параметров документирующего комментария пропущено определение параметра
    10. Документирующий комментарий содежрит секцию возвращаемого значения для процедуры
    11. Ссылка документирующего комментария на существующий объект
    12. Секция возвращаемого значения документирующего комментария содержит корректные типы
    13. Определение типа документирующего комментария
    14. Активирована ранее отключенная проверка: Секция возвращаемого значения функции-конструктора данных
  • Исправлен идентификатор проверки тип в строгой типизации: doc-comment-field-type -> doc-comment-field-type-strict
  • Ограничения на использование экспортных процедур и функций в модулях команд и форм
  • Вызов "Заблокировать()" находится вне попытки
  • Для проверок dynamic-access-method-not-found и property-return-type добавлена возможность исключения по типам (COM-Объекты)
  • Проверка типов invocation-parameter-type-intersect проверяет типы элементов коллекций: Массив, Соотвествие, СписокЗначений

Новые быстрые исправления (Quick-fix)

  • Удаление аннотации строгой типизации из модуля
  • Открытие панели документирующего комментария
  • Удаление ключевого слова Экспорт для процедур или функций в модуле команды и в модуле формы

Другие изменения