1
0
mirror of https://github.com/1C-Company/v8-code-style.git synced 2024-11-28 17:41:06 +02:00
v8-code-style/CHANGELOG.md

14 KiB

1С:Стандарты разработки V8 - CHANGELOG - ИСТОРИЯ ИЗМЕНЕНИЙ

[TOC text bullet hierarchy]

0.2.0

Выпуск бета-версии для 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. Определение типа документирующего комментария
  • Исправлен идентификатор проверки тип в строгой типизации: doc-comment-field-type -> doc-comment-field-type-strict

Запросы

Права ролей

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

  • Падение NPE в проверке ql-using-for-update, корректный учет зависимых проектов (обработки, расширения)
  • Клиентский глобальный модуль: ошибочное предупреждение о некорректном типе
  • Отключено создание модуля менеджера при создании перечисления
  • Для проверки md-standard-attribute-synonym-empty исправлена регистрация и улучшена точность позиции ошибки

0.1.0

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

Новые фичи

  • Автосортировка метаданных, сортировка объектов верхнего уровня по умолчанию, для подчиненных настраивается
  • Выбор подходящего тип общего модуля из списка при создании нового
  • Панель "Bsl Документирующий комментарий"
  • Автоматическое создание структуры модуля
  • Автоматическое включение строгой типизации модулей

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

Метаданные

  • Длина имени объекта метаданного должна быть меньше чем 80
  • Приложение должно использовать управляемый режим блокировки данных
  • Общий модуль имеет некорректный тип
  • Глобальный общий модуль должен оканчиваться на суффикс Глобальный
  • Клиент-серверный общий модуль должен оканчиваться на суффикс КлиентСервер
  • Клиентский общий модуль должен оканчиваться на суффикс Клиент
  • Не заполнено ни представление объекта, ни представление списка
  • У предопределенного регламентного задания не должно быть заполнено наименование
  • У стандартного свойства 'Владелец' или 'Родитель' должен быть заполнен синоним

Формы

  • В полях форм со списками выбора следует всегда устанавливать свойство РежимВыбораИзСписка в значение Истина.
  • Путь к данным объекта формы ссылается на существующий объект в каждом сегменте пути

Код модулей

  • Проверка конструктора структуры содержащего больше 3х ключей
  • Выполнение запроса в цикле с учетом локальных вызовов в модуле
  • Проверка ОбменДанными.Загрузка в обработчике события
  • Система строгой типизации кода:
    • Переменная имеет тип значения
    • Параметр метода имеет тип
    • Функция возвращает типизированное значение
    • Утверждение меняет тип
    • Типизация значений в конструкторе структуры
    • Вызываемый тип пересекается с типом параметра
    • Секция возвращаемого значения функции-конструктора данных
    • Свойство объекта имеет тип возвращаемого значения
    • Метод в объекте не найден
    • Поле документирующего комментария имеет описание типа
  • Конструкция "Попытка...Исключение...КонецПопытки" не содержит кода в исключении
  • Аннотация для метода написана канонически
  • Используется аннотация &ИзменениеИКонтроль вместо &Вместо
  • НСтр формат строкового литерала
  • Использование булевного параметра обработчика события
  • Метод содержит слишком много параметров
  • Использование только дефис-минуса в документирующем комментарии
  • Использование не рекомендуемых методов:
    • ТекущаяДата
    • Сообщить
  • Область пустая
  • Стандартная область структуры модуля верхнеуровневая
  • Использование директив компиляции модуля формы
  • Всегда использовать директивы компиляции в модуле формы
  • Описание оповещения на серверную процедуру
  • Метод или переменная доступны НаКлиенте

Запросы

  • Временная таблица должна содержать индексы
  • Ограничение максимальной длины числа в запросе
  • Строковый литерал должен содержать CamelCase
  • Соединение с подзапросом
  • Использование конструкции "ДЛЯ ИЗМЕНЕНИЯ"
  • Отбор виртуальной таблицы должен быть в параметрах

Права ролей

  • Право роли содержит текст ограничения доступа (RLS)
  • Установлено право "ИнтерактивноеУдаление"
  • Установлено право "ИнтерактивноеУдалениеПомеченныхПредопределенныхДанных"
  • Установлено право "ИнтерактивноеУдалениеПредопределенныхДанных"
  • Установлено право "ИнтерактивноеПометкаУдаленияПредопределенныхДанных"
  • Установлено право "ИнтерактивноеСнятиеПометкиУдаленияПредопределенныхДанных"
  • Право "Активные пользователи" на корень конфигурации установлено только у стандартной роли
  • Право "Администрирование" на корень конфигурации установлено только у стандартной роли
  • Право "Режим "Все функции"" на корень конфигурации установлено только у стандартной роли
  • Право "Администрирование расширений конфигурации" на корень конфигурации установлено только у стандартной роли
  • Право "Администрирование данных" на корень конфигурации установлено только у стандартной роли
  • Право "Интерактивное открытие внешних обработок" на корень конфигурации установлено только у стандартной роли
  • Право "Интерактивное открытие внешних отчетов" на корень конфигурации установлено только у стандартной роли
  • Право "Вывод" на корень конфигурации установлено только у стандартной роли
  • Право "Сохранение данных пользователя" на корень конфигурации установлено только у стандартной роли
  • Право "Automation" на корень конфигурации установлено только у стандартной роли
  • Право "Внешнее соединение" на корень конфигурации установлено только у стандартной роли
  • Право "Толстый клиент" на корень конфигурации установлено только у стандартной роли
  • Право "Тонкий клиент" на корень конфигурации установлено только у стандартной роли
  • Право "Веб-клиент" на корень конфигурации установлено только у стандартной роли
  • Право "Обновление конфигурации базы данных" на корень конфигурации установлено только у стандартной роли
  • Право "Журнал регистрации" на корень конфигурации установлено только у стандартной роли