mirror of
https://github.com/1C-Company/v8-code-style.git
synced 2025-01-09 10:07:29 +02:00
Merge pull request #942 from 1C-Company/feature/build-docs-lists
Автоматическая генерация списков проверок
This commit is contained in:
commit
584b8fd763
@ -5,7 +5,8 @@
|
||||
|
||||
## 0.2.0
|
||||
|
||||
Выпуск бета-версии для 1C:EDT 2021.3
|
||||
- Выпуск бета-версии для 1C:EDT 2021.3
|
||||
- Автоматические индексы описаний проверок в справке `Help -> Help contents -> 1C:Code style V8`
|
||||
|
||||
### Новые фичи
|
||||
|
||||
|
@ -267,9 +267,14 @@
|
||||
<headerHtmlFile>${markdown.page.generator.html.file.path}/html/header.html</headerHtmlFile>
|
||||
<footerHtmlFile>${markdown.page.generator.html.file.path}/html/footer.html</footerHtmlFile>
|
||||
<pegdownExtensions>TABLES,FENCED_CODE_BLOCKS,AUTOLINKS,SMARTS,TASKLISTITEMS,EXTANCHORLINKS,TOC</pegdownExtensions>
|
||||
<attributes>
|
||||
<attribute>TableBlock|class=table table-striped table-bordered</attribute>
|
||||
<attribute>BlockQuote|class=red</attribute>
|
||||
</attributes>
|
||||
<transformRelativeMarkdownLinks>true</transformRelativeMarkdownLinks>
|
||||
<inputEncoding>UTF-8</inputEncoding>
|
||||
<outputEncoding>UTF-8</outputEncoding>
|
||||
<applyFiltering>true</applyFiltering>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
|
@ -1,10 +0,0 @@
|
||||
# Form object data path referred to existing object for each segment
|
||||
|
||||
Checks that each segment of Form item data-path referred to existing object.
|
||||
|
||||
## Noncompliant Code Example
|
||||
|
||||
## Compliant Solution
|
||||
|
||||
## See
|
||||
|
@ -1,4 +1,4 @@
|
||||
# input-field-list-choice-mode
|
||||
# Check input field has correct list choice mode if choice list is not empty
|
||||
|
||||
Check input field has correct list choice mode if choice list is not empty.
|
||||
|
||||
|
@ -1,11 +0,0 @@
|
||||
# Путь к данным объекта формы ссылается на существующий объект в каждом сегменте пути
|
||||
|
||||
Проверяет что каждый сегмент пути к данным элемента формы ссылается на существующий объект.
|
||||
|
||||
## Неправильно
|
||||
|
||||
## Правильно
|
||||
|
||||
## См.
|
||||
|
||||
- [Общие требования к конфигурации](https://its.1c.ru/db/v8std#content:467:hdoc:2.2)
|
@ -1,4 +1,4 @@
|
||||
# input-field-list-choice-mode
|
||||
# В полях форм со списками выбора следует всегда устанавливать свойство **РежимВыбораИзСписка** в значение Истина
|
||||
|
||||
В полях форм со списками выбора следует всегда устанавливать свойство **РежимВыбораИзСписка** в значение Истина. В этом случае, в поле будет корректно выводиться локализуемое представление, а не значение из списка выбора.
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# right-interactive-clear-deletion-mark-predefined-data
|
||||
# Установлено право "ИнтерактивноеСнятиеПометкиУдаленияПредопределенныхДанных"
|
||||
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# right-interactive-delete-marked-predefined-data
|
||||
# Установлено право "ИнтерактивноеУдалениеПомеченныхПредопределенныхДанных"
|
||||
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# right-interactive-delete-predefined-data
|
||||
# Установлено право "ИнтерактивноеУдалениеПредопределенныхДанных"
|
||||
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# right-interactive-delete
|
||||
# Установлено право "ИнтерактивноеУдаление"
|
||||
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# right-interactive-set-deletion-mark-predefined-data
|
||||
# Установлено право "ИнтерактивноеПометкаУдаленияПредопределенныхДанных"
|
||||
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Права в роли содержат RLS
|
||||
# Право роли содержит текст ограничения доступа (RLS)
|
||||
|
||||
|
||||
|
||||
|
12
docs/.classpath
Normal file
12
docs/.classpath
Normal file
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11">
|
||||
<attributes>
|
||||
<attribute name="module" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="GROOVY_DSL_SUPPORT"/>
|
||||
<classpathentry kind="con" path="GROOVY_SUPPORT"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
@ -22,6 +22,7 @@
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.groovy.core.groovyNature</nature>
|
||||
<nature>org.eclipse.pde.PluginNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
|
14
docs/.settings/org.eclipse.jdt.core.prefs
Normal file
14
docs/.settings/org.eclipse.jdt.core.prefs
Normal file
@ -0,0 +1,14 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=11
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
|
||||
org.eclipse.jdt.core.compiler.release=enabled
|
||||
org.eclipse.jdt.core.compiler.source=11
|
2
docs/.settings/org.eclipse.jdt.groovy.core.prefs
Normal file
2
docs/.settings/org.eclipse.jdt.groovy.core.prefs
Normal file
@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
groovy.compiler.level=30
|
5
docs/checks/.gitignore
vendored
Normal file
5
docs/checks/.gitignore
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
md/
|
||||
form/
|
||||
bsl/
|
||||
ql/
|
||||
right/
|
@ -1,32 +1,50 @@
|
||||
# Проверки модулей 1С
|
||||
|
||||
- Проверка конструктора структуры содержащего больше 3х ключей
|
||||
- Выполнение запроса в цикле с учетом локальных вызовов в модуле
|
||||
- Проверка ОбменДанными.Загрузка в обработчике события
|
||||
- Система строгой типизации кода:
|
||||
- Переменная имеет тип значения
|
||||
- Параметр метода имеет тип
|
||||
- Функция возвращает типизированное значение
|
||||
- Утверждение меняет тип
|
||||
- Типизация значений в конструкторе структуры
|
||||
- Вызываемый тип пересекается с типом параметра
|
||||
- Секция возвращаемого значения функции-конструктора данных
|
||||
- Свойство объекта имеет тип возвращаемого значения
|
||||
- Метод в объекте не найден
|
||||
- Поле документирующего комментария имеет описание типа
|
||||
- Конструкция "Попытка...Исключение...КонецПопытки" не содержит кода в исключении
|
||||
- Аннотация для метода написана канонически
|
||||
- Используется аннотация &ИзменениеИКонтроль вместо &Вместо
|
||||
- НСтр формат строкового литерала
|
||||
- Использование булевого параметра обработчика события
|
||||
- Метод содержит слишком много параметров
|
||||
- Использование только дефис-минуса в документирующем комментарии
|
||||
- Использование не рекомендуемых методов:
|
||||
- ТекущаяДата
|
||||
- Сообщить
|
||||
- Область пустая
|
||||
- Стандартная область структуры модуля верхнеуровневая
|
||||
- Использование директив компиляции модуля формы
|
||||
- Всегда использовать директивы компиляции в модуле формы
|
||||
- Описание оповещения на серверную процедуру
|
||||
- Метод или переменная доступны НаКлиенте
|
||||
|
||||
Общее количество проверок: 43
|
||||
|
||||
| Код проверки | Наименование |
|
||||
|--------------|--------------|
|
||||
| [bsl-canonical-pragma](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/bsl-canonical-pragma.md) | Аннотация написана канонически |
|
||||
| [bsl-nstr-string-literal-format](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/bsl-nstr-string-literal-format.md) | НСтр формат строкового литерала |
|
||||
| [change-and-validate-instead-of-around](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/change-and-validate-instead-of-around.md) | Используется аннотация &ИзменениеИКонтроль вместо &Вместо |
|
||||
| [constructor-function-return-section](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/constructor-function-return-section.md) | Секция возвращаемого значения функции-конструктора данных |
|
||||
| [data-exchange-load](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/data-exchange-load.md) | Проверка ОбменДанными.Загрузка в обработчике события |
|
||||
| [doc-comment-collection-item-type](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-collection-item-type.md) | Тип коллекций в документирующем комментарии содержит тип элемента коллекции |
|
||||
| [doc-comment-complex-type-with-link](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-complex-type-with-link.md) | Поле документирующего комментария использует объявление сложного типа вместо ссылки на тип |
|
||||
| [doc-comment-description-ends-on-dot](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-description-ends-on-dot.md) | Многострочное описание документирующего комментария оканчивается на точку |
|
||||
| [doc-comment-export-function-return-section](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-export-function-return-section.md) | Секция возвращаемого значения документирующего комментария для экспортной функции |
|
||||
| [doc-comment-field-in-description-suggestion](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-field-in-description-suggestion.md) | Многострочное описание документирующего комментария содержит определение поля |
|
||||
| [doc-comment-field-name](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-field-name.md) | Поле документирующего комментария является корректным именем |
|
||||
| [doc-comment-field-type](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-field-type.md) | Поле документирующего комментария не имеет определения типа |
|
||||
| [doc-comment-field-type-strict](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-field-type-strict.md) | Поле документирующего комментария имеет описание типа |
|
||||
| [doc-comment-parameter-in-description-suggestion](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-parameter-in-description-suggestion.md) | Многострочное описание документирующего комментария содержит определение параметра |
|
||||
| [doc-comment-parameter-section](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-parameter-section.md) | В секции параметров документирующего комментария пропущено определение параметра |
|
||||
| [doc-comment-procedure-return-section](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-procedure-return-section.md) | Документирующий комментарий содежрит секцию возвращаемого значения для процедуры |
|
||||
| [doc-comment-ref-link](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-ref-link.md) | Ссылка документирующего комментария на существующий объект |
|
||||
| [doc-comment-return-section-type](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-return-section-type.md) | Секция возвращаемого значения документирующего комментария содержит корректные типы |
|
||||
| [doc-comment-type](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-type.md) | Определение типа документирующего комментария |
|
||||
| [doc-comment-use-minus](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-use-minus.md) | Использование только дефис-минуса в документирующем комментарии |
|
||||
| [dynamic-access-method-not-found](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/dynamic-access-method-not-found.md) | Метод в объекте не найден |
|
||||
| [empty-except-statement](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/empty-except-statement.md) | Конструкция "Попытка...Исключение...КонецПопытки" не содержит кода в исключении |
|
||||
| [event-heandler-boolean-param](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/event-heandler-boolean-param.md) | Использование булевого параметра обработчика события |
|
||||
| [form-module-missing-pragma](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/form-module-missing-pragma.md) | Всегда использовать директивы компиляции в модуле формы |
|
||||
| [form-module-pragma](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/form-module-pragma.md) | Использование директив компиляции модуля формы |
|
||||
| [function-return-value-type](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/function-return-value-type.md) | Функция возвращает типизированное значение |
|
||||
| [invocation-form-event-handler](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/invocation-form-event-handler.md) | Программный вызов обработчика события формы |
|
||||
| [invocation-parameter-type-intersect](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/invocation-parameter-type-intersect.md) | Вызываемый тип пересекается с типом параметра |
|
||||
| [isinrole-using](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/isinrole-using.md) | Использован метод "РольДоступна" |
|
||||
| [method-param-value-type](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/method-param-value-type.md) | Параметр метода имеет тип |
|
||||
| [method-too-many-params](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/method-too-many-params.md) | Метод содержит слишком много параметров |
|
||||
| [module-accessibility-at-client](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/module-accessibility-at-client.md) | Метод или переменная доступны НаКлиенте |
|
||||
| [module-region-empty](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/module-region-empty.md) | Область пустая |
|
||||
| [module-structure-top-region](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/module-structure-top-region.md) | Стандартная область структуры модуля верхнеуровневая |
|
||||
| [new-color](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/new-color.md) | Использование конструкции "Новый Цвет" |
|
||||
| [notify-description-to-server-procedure](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/notify-description-to-server-procedure.md) | Описание оповещения на серверную процедуру |
|
||||
| [property-return-type](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/property-return-type.md) | Свойство объекта имеет тип возвращаемого значения |
|
||||
| [query-in-loop](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/query-in-loop.md) | Запрос в цикле |
|
||||
| [statement-type-change](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/statement-type-change.md) | Утверждение меняет тип |
|
||||
| [structure-consructor-too-many-keys](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/structure-consructor-too-many-keys.md) | Конструктор структуры содержит слишком много ключей |
|
||||
| [structure-consructor-value-type](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/structure-consructor-value-type.md) | Типизация значений в конструкторе структуры |
|
||||
| [use-non-recommended-method](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/use-non-recommended-method.md) | Использование не рекомендуемых методов |
|
||||
| [variable-value-type](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/variable-value-type.md) | Переменная имеет тип значения |
|
||||
|
@ -1,3 +1,102 @@
|
||||
# Индекс проверок
|
||||
|
||||
|
||||
Общее количество проверок 1С:Стандарты разработки V8: 87
|
||||
|
||||
- form: 1
|
||||
- md: 14
|
||||
- bsl: 43
|
||||
- ql: 6
|
||||
- right: 23
|
||||
|
||||
|
||||
|
||||
| Код проверки | Наименование |
|
||||
|--------------|--------------|
|
||||
| [bsl-canonical-pragma](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/bsl-canonical-pragma.md) | Аннотация написана канонически |
|
||||
| [bsl-nstr-string-literal-format](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/bsl-nstr-string-literal-format.md) | НСтр формат строкового литерала |
|
||||
| [change-and-validate-instead-of-around](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/change-and-validate-instead-of-around.md) | Используется аннотация &ИзменениеИКонтроль вместо &Вместо |
|
||||
| [common-module-name-cached](../../bundles/com.e1c.v8codestyle.md/markdown/ru/common-module-name-cached.md) | Общий модуль с повторно используемыми значениями |
|
||||
| [common-module-name-client](../../bundles/com.e1c.v8codestyle.md/markdown/ru/common-module-name-client.md) | Клиентский общий модуль должен оканчиваться на суффикс Клиент |
|
||||
| [common-module-name-client-cached](../../bundles/com.e1c.v8codestyle.md/markdown/ru/common-module-name-client-cached.md) | Клиентский общий модуль с повторно используемыми значениями |
|
||||
| [common-module-name-client-server](../../bundles/com.e1c.v8codestyle.md/markdown/ru/common-module-name-client-server.md) | Клиент-серверный общий модуль должен оканчиваться на суффикс КлиентСервер |
|
||||
| [common-module-name-global](../../bundles/com.e1c.v8codestyle.md/markdown/ru/common-module-name-global.md) | Глобальный общий модуль должен оканчиваться на суффикс Глобальный |
|
||||
| [common-module-name-server-call](../../bundles/com.e1c.v8codestyle.md/markdown/ru/common-module-name-server-call.md) | Общий модуль, для которого предусмотрен вызов сервера |
|
||||
| [common-module-name-server-call-cached](../../bundles/com.e1c.v8codestyle.md/markdown/ru/common-module-name-server-call-cached.md) | Общий модуль с повторно используемыми значениями |
|
||||
| [common-module-type](../../bundles/com.e1c.v8codestyle.md/markdown/ru/common-module-type.md) | Общий модуль имеет некорректный тип |
|
||||
| [configuration-data-lock-mode](../../bundles/com.e1c.v8codestyle.md/markdown/ru/configuration-data-lock-mode.md) | Режим блокировки данных конфигурации |
|
||||
| [constructor-function-return-section](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/constructor-function-return-section.md) | Секция возвращаемого значения функции-конструктора данных |
|
||||
| [data-exchange-load](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/data-exchange-load.md) | Проверка ОбменДанными.Загрузка в обработчике события |
|
||||
| [doc-comment-collection-item-type](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-collection-item-type.md) | Тип коллекций в документирующем комментарии содержит тип элемента коллекции |
|
||||
| [doc-comment-complex-type-with-link](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-complex-type-with-link.md) | Поле документирующего комментария использует объявление сложного типа вместо ссылки на тип |
|
||||
| [doc-comment-description-ends-on-dot](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-description-ends-on-dot.md) | Многострочное описание документирующего комментария оканчивается на точку |
|
||||
| [doc-comment-export-function-return-section](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-export-function-return-section.md) | Секция возвращаемого значения документирующего комментария для экспортной функции |
|
||||
| [doc-comment-field-in-description-suggestion](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-field-in-description-suggestion.md) | Многострочное описание документирующего комментария содержит определение поля |
|
||||
| [doc-comment-field-name](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-field-name.md) | Поле документирующего комментария является корректным именем |
|
||||
| [doc-comment-field-type](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-field-type.md) | Поле документирующего комментария не имеет определения типа |
|
||||
| [doc-comment-field-type-strict](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-field-type-strict.md) | Поле документирующего комментария имеет описание типа |
|
||||
| [doc-comment-parameter-in-description-suggestion](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-parameter-in-description-suggestion.md) | Многострочное описание документирующего комментария содержит определение параметра |
|
||||
| [doc-comment-parameter-section](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-parameter-section.md) | В секции параметров документирующего комментария пропущено определение параметра |
|
||||
| [doc-comment-procedure-return-section](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-procedure-return-section.md) | Документирующий комментарий содежрит секцию возвращаемого значения для процедуры |
|
||||
| [doc-comment-ref-link](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-ref-link.md) | Ссылка документирующего комментария на существующий объект |
|
||||
| [doc-comment-return-section-type](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-return-section-type.md) | Секция возвращаемого значения документирующего комментария содержит корректные типы |
|
||||
| [doc-comment-type](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-type.md) | Определение типа документирующего комментария |
|
||||
| [doc-comment-use-minus](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/doc-comment-use-minus.md) | Использование только дефис-минуса в документирующем комментарии |
|
||||
| [dynamic-access-method-not-found](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/dynamic-access-method-not-found.md) | Метод в объекте не найден |
|
||||
| [empty-except-statement](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/empty-except-statement.md) | Конструкция "Попытка...Исключение...КонецПопытки" не содержит кода в исключении |
|
||||
| [event-heandler-boolean-param](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/event-heandler-boolean-param.md) | Использование булевого параметра обработчика события |
|
||||
| [form-module-missing-pragma](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/form-module-missing-pragma.md) | Всегда использовать директивы компиляции в модуле формы |
|
||||
| [form-module-pragma](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/form-module-pragma.md) | Использование директив компиляции модуля формы |
|
||||
| [function-return-value-type](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/function-return-value-type.md) | Функция возвращает типизированное значение |
|
||||
| [input-field-list-choice-mode](../../bundles/com.e1c.v8codestyle.form/markdown/ru/input-field-list-choice-mode.md) | В полях форм со списками выбора следует всегда устанавливать свойство **РежимВыбораИзСписка** в значение Истина |
|
||||
| [invocation-form-event-handler](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/invocation-form-event-handler.md) | Программный вызов обработчика события формы |
|
||||
| [invocation-parameter-type-intersect](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/invocation-parameter-type-intersect.md) | Вызываемый тип пересекается с типом параметра |
|
||||
| [isinrole-using](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/isinrole-using.md) | Использован метод "РольДоступна" |
|
||||
| [md-list-object-presentation](../../bundles/com.e1c.v8codestyle.md/markdown/ru/md-list-object-presentation.md) | Не заполнено ни представление объекта, ни представление списка |
|
||||
| [md-standard-attribure-synonym-empty](../../bundles/com.e1c.v8codestyle.md/markdown/ru/md-standard-attribure-synonym-empty.md) | Не задан синоним стандартного реквизита "Родитель" или "Владелец". |
|
||||
| [mdo-name-length](../../bundles/com.e1c.v8codestyle.md/markdown/ru/mdo-name-length.md) | Длина имени объекта метаданных |
|
||||
| [mdo-scheduled-job-description](../../bundles/com.e1c.v8codestyle.md/markdown/ru/mdo-scheduled-job-description.md) | Задано наименование предопределенного регламентного задания |
|
||||
| [method-param-value-type](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/method-param-value-type.md) | Параметр метода имеет тип |
|
||||
| [method-too-many-params](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/method-too-many-params.md) | Метод содержит слишком много параметров |
|
||||
| [module-accessibility-at-client](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/module-accessibility-at-client.md) | Метод или переменная доступны НаКлиенте |
|
||||
| [module-region-empty](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/module-region-empty.md) | Область пустая |
|
||||
| [module-structure-top-region](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/module-structure-top-region.md) | Стандартная область структуры модуля верхнеуровневая |
|
||||
| [new-color](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/new-color.md) | Использование конструкции "Новый Цвет" |
|
||||
| [notify-description-to-server-procedure](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/notify-description-to-server-procedure.md) | Описание оповещения на серверную процедуру |
|
||||
| [property-return-type](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/property-return-type.md) | Свойство объекта имеет тип возвращаемого значения |
|
||||
| [ql-camel-case-string-literal](../../bundles/com.e1c.v8codestyle.ql/markdown/ru/ql-camel-case-string-literal.md) | Строковый литерал в запросе содержит не КемелКейс контент |
|
||||
| [ql-cast-to-max-number](../../bundles/com.e1c.v8codestyle.ql/markdown/ru/ql-cast-to-max-number.md) | Выражение к максимальному числу в запросе |
|
||||
| [ql-join-to-sub-query](../../bundles/com.e1c.v8codestyle.ql/markdown/ru/ql-join-to-sub-query.md) | Соединение запроса с подзапросом |
|
||||
| [ql-temp-table-index](../../bundles/com.e1c.v8codestyle.ql/markdown/ru/ql-temp-table-index.md) | Временная таблица должна содержать индексы |
|
||||
| [ql-using-for-update](../../bundles/com.e1c.v8codestyle.ql/markdown/ru/ql-using-for-update.md) | Запрос содержит конструкцию "ДЛЯ ИЗМЕНЕНИЯ" |
|
||||
| [ql-virtual-table-filters](../../bundles/com.e1c.v8codestyle.ql/markdown/ru/ql-virtual-table-filters.md) | Отбор виртуальной таблицы должен быть в параметрах |
|
||||
| [query-in-loop](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/query-in-loop.md) | Запрос в цикле |
|
||||
| [right-active-users](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-active-users.md) | Право установлено: Активные пользователи |
|
||||
| [right-administration](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-administration.md) | Право установлено: Администрирование |
|
||||
| [right-all-functions-mode](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-all-functions-mode.md) | Право установлено: Режим "Все функции" |
|
||||
| [right-configuration-extensions-administration](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-configuration-extensions-administration.md) | Право установлено: Администрирование расширений конфигурации |
|
||||
| [right-data-administration](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-data-administration.md) | Право установлено: Администрирование данных |
|
||||
| [right-exclusive-mode](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-exclusive-mode.md) | Право установлено: Монопольный режим |
|
||||
| [right-interactive-clear-deletion-mark-predefined-data](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-interactive-clear-deletion-mark-predefined-data.md) | Установлено право "ИнтерактивноеСнятиеПометкиУдаленияПредопределенныхДанных" |
|
||||
| [right-interactive-delete](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-interactive-delete.md) | Установлено право "ИнтерактивноеУдаление" |
|
||||
| [right-interactive-delete-marked-predefined-data](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-interactive-delete-marked-predefined-data.md) | Установлено право "ИнтерактивноеУдалениеПомеченныхПредопределенныхДанных" |
|
||||
| [right-interactive-delete-predefined-data](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-interactive-delete-predefined-data.md) | Установлено право "ИнтерактивноеУдалениеПредопределенныхДанных" |
|
||||
| [right-interactive-open-external-data-processors](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-interactive-open-external-data-processors.md) | Право установлено: Интерактивное открытие внешних обработок |
|
||||
| [right-interactive-open-external-reports](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-interactive-open-external-reports.md) | Право установлено: Интерактивное открытие внешних отчетов |
|
||||
| [right-interactive-set-deletion-mark-predefined-data](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-interactive-set-deletion-mark-predefined-data.md) | Установлено право "ИнтерактивноеПометкаУдаленияПредопределенныхДанных" |
|
||||
| [right-output-to-printer-file-clipboard](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-output-to-printer-file-clipboard.md) | Право установлено: Вывод |
|
||||
| [right-save-user-data](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-save-user-data.md) | Право установлено: Сохранение данных пользователя |
|
||||
| [right-start-automation](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-start-automation.md) | Право установлено: Automation |
|
||||
| [right-start-external-connection](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-start-external-connection.md) | Право установлено: Внешнее соединение |
|
||||
| [right-start-thick-client](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-start-thick-client.md) | Право установлено: Толстый клиент |
|
||||
| [right-start-thin-client](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-start-thin-client.md) | Право установлено: Тонкий клиент |
|
||||
| [right-start-web-client](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-start-web-client.md) | Право установлено: Веб-клиент |
|
||||
| [right-update-database-configuration](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-update-database-configuration.md) | Право установлено: Обновление конфигурации базы данных |
|
||||
| [right-view-event-log](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-view-event-log.md) | Право установлено: Журнал регистрации |
|
||||
| [role-right-has-rls](../../bundles/com.e1c.v8codestyle.right/markdown/ru/role-right-has-rls.md) | Право роли содержит текст ограничения доступа (RLS) |
|
||||
| [scheduled-job-periodicity-too-short](../../bundles/com.e1c.v8codestyle.md/markdown/ru/scheduled-job-periodicity-too-short.md) | Периодичность выполнения регламентного задания меньше одной минуты. |
|
||||
| [statement-type-change](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/statement-type-change.md) | Утверждение меняет тип |
|
||||
| [structure-consructor-too-many-keys](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/structure-consructor-too-many-keys.md) | Конструктор структуры содержит слишком много ключей |
|
||||
| [structure-consructor-value-type](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/structure-consructor-value-type.md) | Типизация значений в конструкторе структуры |
|
||||
| [use-non-recommended-method](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/use-non-recommended-method.md) | Использование не рекомендуемых методов |
|
||||
| [variable-value-type](../../bundles/com.e1c.v8codestyle.bsl/markdown/ru/variable-value-type.md) | Переменная имеет тип значения |
|
||||
|
@ -1,42 +1,87 @@
|
||||
module-empty-method
|
||||
module-unused-local-variable
|
||||
module-unused-method
|
||||
common-module-name-client
|
||||
common-module-name-client-server
|
||||
common-module-name-global
|
||||
common-module-type
|
||||
configuration-data-lock-mode
|
||||
md-list-object-presentation
|
||||
mdo-name-length
|
||||
input-field-list-choice-mode
|
||||
empty-except-statement
|
||||
data-exchange-load
|
||||
query-in-loop
|
||||
structure-consructor-too-many-keys
|
||||
ql-cast-to-max-number
|
||||
ql-camel-case-string-literal
|
||||
ql-cast-to-max-number
|
||||
ql-join-to-sub-query
|
||||
right-active-users
|
||||
right-administration
|
||||
right-all-functions-mode
|
||||
right-configuration-extensions-administration
|
||||
right-data-administration
|
||||
right-exclusive-mode
|
||||
right-interactive-delete
|
||||
right-interactive-delete-marked-predefined-data
|
||||
right-interactive-delete-predefined-data
|
||||
right-interactive-clear-deletion-mark-predefined-data
|
||||
right-interactive-open-external-data-processors
|
||||
right-interactive-open-external-reports
|
||||
right-interactive-set-deletion-mark-predefined-data
|
||||
right-output-to-printer-file-clipboard
|
||||
right-save-user-data
|
||||
right-start-automation
|
||||
right-start-external-connection
|
||||
right-start-thick-client
|
||||
right-start-thin-client
|
||||
right-start-web-client
|
||||
right-update-database-configuration
|
||||
right-view-event-log
|
||||
role-right-has-rls
|
||||
bsl-canonical-pragma
|
||||
bsl-nstr-string-literal-format
|
||||
change-and-validate-instead-of-around
|
||||
common-module-name-cached
|
||||
common-module-name-client
|
||||
common-module-name-client-cached
|
||||
common-module-name-client-server
|
||||
common-module-name-global
|
||||
common-module-name-server-call
|
||||
common-module-name-server-call-cached
|
||||
common-module-type
|
||||
configuration-data-lock-mode
|
||||
constructor-function-return-section
|
||||
data-exchange-load
|
||||
doc-comment-collection-item-type
|
||||
doc-comment-complex-type-with-link
|
||||
doc-comment-description-ends-on-dot
|
||||
doc-comment-export-function-return-section
|
||||
doc-comment-field-in-description-suggestion
|
||||
doc-comment-field-name
|
||||
doc-comment-field-type
|
||||
doc-comment-field-type-strict
|
||||
doc-comment-parameter-in-description-suggestion
|
||||
doc-comment-parameter-section
|
||||
doc-comment-procedure-return-section
|
||||
doc-comment-ref-link
|
||||
doc-comment-return-section-type
|
||||
doc-comment-type
|
||||
doc-comment-use-minus
|
||||
dynamic-access-method-not-found
|
||||
empty-except-statement
|
||||
event-heandler-boolean-param
|
||||
form-module-missing-pragma
|
||||
form-module-pragma
|
||||
function-return-value-type
|
||||
input-field-list-choice-mode
|
||||
invocation-form-event-handler
|
||||
invocation-parameter-type-intersect
|
||||
isinrole-using
|
||||
md-list-object-presentation
|
||||
md-standard-attribure-synonym-empty
|
||||
mdo-name-length
|
||||
mdo-scheduled-job-description
|
||||
method-param-value-type
|
||||
method-too-many-params
|
||||
module-accessibility-at-client
|
||||
module-region-empty
|
||||
module-structure-top-region
|
||||
new-color
|
||||
notify-description-to-server-procedure
|
||||
property-return-type
|
||||
ql-camel-case-string-literal
|
||||
ql-cast-to-max-number
|
||||
ql-join-to-sub-query
|
||||
ql-temp-table-index
|
||||
ql-using-for-update
|
||||
ql-virtual-table-filters
|
||||
query-in-loop
|
||||
right-active-users
|
||||
right-administration
|
||||
right-all-functions-mode
|
||||
right-configuration-extensions-administration
|
||||
right-data-administration
|
||||
right-exclusive-mode
|
||||
right-interactive-clear-deletion-mark-predefined-data
|
||||
right-interactive-delete
|
||||
right-interactive-delete-marked-predefined-data
|
||||
right-interactive-delete-predefined-data
|
||||
right-interactive-open-external-data-processors
|
||||
right-interactive-open-external-reports
|
||||
right-interactive-set-deletion-mark-predefined-data
|
||||
right-output-to-printer-file-clipboard
|
||||
right-save-user-data
|
||||
right-start-automation
|
||||
right-start-external-connection
|
||||
right-start-thick-client
|
||||
right-start-thin-client
|
||||
right-start-web-client
|
||||
right-update-database-configuration
|
||||
right-view-event-log
|
||||
role-right-has-rls
|
||||
scheduled-job-periodicity-too-short
|
||||
statement-type-change
|
||||
structure-consructor-too-many-keys
|
||||
structure-consructor-value-type
|
||||
use-non-recommended-method
|
||||
variable-value-type
|
||||
|
@ -1,5 +1,8 @@
|
||||
# Проверки Форм 1С
|
||||
|
||||
|
||||
- В полях форм со списками выбора следует всегда устанавливать свойство **РежимВыбораИзСписка** в значение Истина.
|
||||
- Путь к данным объекта формы ссылается на существующий объект в каждом сегменте пути
|
||||
Общее количество проверок: 1
|
||||
|
||||
| Код проверки | Наименование |
|
||||
|--------------|--------------|
|
||||
| [input-field-list-choice-mode](../../bundles/com.e1c.v8codestyle.form/markdown/ru/input-field-list-choice-mode.md) | В полях форм со списками выбора следует всегда устанавливать свойство **РежимВыбораИзСписка** в значение Истина |
|
||||
|
@ -1,12 +1,21 @@
|
||||
# Проверки метаданных 1С
|
||||
|
||||
|
||||
- Длина имени объекта метаданного должна быть меньше чем 80
|
||||
- Приложение должно использовать управляемый режим блокировки данных
|
||||
- Общий модуль имеет некорректный тип
|
||||
- Глобальный общий модуль должен оканчиваться на суффикс Глобальный
|
||||
- Клиент-серверный общий модуль должен оканчиваться на суффикс КлиентСервер
|
||||
- Клиентский общий модуль должен оканчиваться на суффикс Клиент
|
||||
- Не заполнено ни представление объекта, ни представление списка
|
||||
- У предопределенного регламентного задания не должно быть заполнено наименование
|
||||
- У стандартного свойства 'Владелец' или 'Родитель' должен быть заполнен синоним
|
||||
Общее количество проверок: 14
|
||||
|
||||
| Код проверки | Наименование |
|
||||
|--------------|--------------|
|
||||
| [common-module-name-cached](../../bundles/com.e1c.v8codestyle.md/markdown/ru/common-module-name-cached.md) | Общий модуль с повторно используемыми значениями |
|
||||
| [common-module-name-client](../../bundles/com.e1c.v8codestyle.md/markdown/ru/common-module-name-client.md) | Клиентский общий модуль должен оканчиваться на суффикс Клиент |
|
||||
| [common-module-name-client-cached](../../bundles/com.e1c.v8codestyle.md/markdown/ru/common-module-name-client-cached.md) | Клиентский общий модуль с повторно используемыми значениями |
|
||||
| [common-module-name-client-server](../../bundles/com.e1c.v8codestyle.md/markdown/ru/common-module-name-client-server.md) | Клиент-серверный общий модуль должен оканчиваться на суффикс КлиентСервер |
|
||||
| [common-module-name-global](../../bundles/com.e1c.v8codestyle.md/markdown/ru/common-module-name-global.md) | Глобальный общий модуль должен оканчиваться на суффикс Глобальный |
|
||||
| [common-module-name-server-call](../../bundles/com.e1c.v8codestyle.md/markdown/ru/common-module-name-server-call.md) | Общий модуль, для которого предусмотрен вызов сервера |
|
||||
| [common-module-name-server-call-cached](../../bundles/com.e1c.v8codestyle.md/markdown/ru/common-module-name-server-call-cached.md) | Общий модуль с повторно используемыми значениями |
|
||||
| [common-module-type](../../bundles/com.e1c.v8codestyle.md/markdown/ru/common-module-type.md) | Общий модуль имеет некорректный тип |
|
||||
| [configuration-data-lock-mode](../../bundles/com.e1c.v8codestyle.md/markdown/ru/configuration-data-lock-mode.md) | Режим блокировки данных конфигурации |
|
||||
| [md-list-object-presentation](../../bundles/com.e1c.v8codestyle.md/markdown/ru/md-list-object-presentation.md) | Не заполнено ни представление объекта, ни представление списка |
|
||||
| [md-standard-attribure-synonym-empty](../../bundles/com.e1c.v8codestyle.md/markdown/ru/md-standard-attribure-synonym-empty.md) | Не задан синоним стандартного реквизита "Родитель" или "Владелец". |
|
||||
| [mdo-name-length](../../bundles/com.e1c.v8codestyle.md/markdown/ru/mdo-name-length.md) | Длина имени объекта метаданных |
|
||||
| [mdo-scheduled-job-description](../../bundles/com.e1c.v8codestyle.md/markdown/ru/mdo-scheduled-job-description.md) | Задано наименование предопределенного регламентного задания |
|
||||
| [scheduled-job-periodicity-too-short](../../bundles/com.e1c.v8codestyle.md/markdown/ru/scheduled-job-periodicity-too-short.md) | Периодичность выполнения регламентного задания меньше одной минуты. |
|
||||
|
@ -1,8 +1,13 @@
|
||||
# Проверки языка запросов 1С
|
||||
|
||||
- Временная таблица должна содержать индексы
|
||||
- Ограничение максимальной длины числа в запросе
|
||||
- Строковый литерал должен содержать CamelCase
|
||||
- Соединение с подзапросом
|
||||
- Использование конструкции "ДЛЯ ИЗМЕНЕНИЯ"
|
||||
- Отбор виртуальной таблицы должен быть в параметрах
|
||||
|
||||
Общее количество проверок: 6
|
||||
|
||||
| Код проверки | Наименование |
|
||||
|--------------|--------------|
|
||||
| [ql-camel-case-string-literal](../../bundles/com.e1c.v8codestyle.ql/markdown/ru/ql-camel-case-string-literal.md) | Строковый литерал в запросе содержит не КемелКейс контент |
|
||||
| [ql-cast-to-max-number](../../bundles/com.e1c.v8codestyle.ql/markdown/ru/ql-cast-to-max-number.md) | Выражение к максимальному числу в запросе |
|
||||
| [ql-join-to-sub-query](../../bundles/com.e1c.v8codestyle.ql/markdown/ru/ql-join-to-sub-query.md) | Соединение запроса с подзапросом |
|
||||
| [ql-temp-table-index](../../bundles/com.e1c.v8codestyle.ql/markdown/ru/ql-temp-table-index.md) | Временная таблица должна содержать индексы |
|
||||
| [ql-using-for-update](../../bundles/com.e1c.v8codestyle.ql/markdown/ru/ql-using-for-update.md) | Запрос содержит конструкцию "ДЛЯ ИЗМЕНЕНИЯ" |
|
||||
| [ql-virtual-table-filters](../../bundles/com.e1c.v8codestyle.ql/markdown/ru/ql-virtual-table-filters.md) | Отбор виртуальной таблицы должен быть в параметрах |
|
||||
|
@ -1,7 +1,8 @@
|
||||
# Проверки проектов 1С
|
||||
|
||||
- [Проверки поставляемые 1C:Enterprise Development Tools](edt.md)
|
||||
- Проверки 1C:Code Style V8
|
||||
- Проверки 1C:Code Style V8
|
||||
- [Общий индекс](check_index.md)
|
||||
- [Проверки метаданных](md.md)
|
||||
- [Проверки Форм](form.md)
|
||||
- [Проверки прав ролей](right.md)
|
||||
|
@ -1,24 +1,30 @@
|
||||
# Проверки прав ролей 1С
|
||||
|
||||
- Право роли содержит текст ограничения доступа (RLS)
|
||||
- Установлено право "ИнтерактивноеУдаление"
|
||||
- Установлено право "ИнтерактивноеУдалениеПомеченныхПредопределенныхДанных"
|
||||
- Установлено право "ИнтерактивноеУдалениеПредопределенныхДанных"
|
||||
- Установлено право "ИнтерактивноеПометкаУдаленияПредопределенныхДанных"
|
||||
- Установлено право "ИнтерактивноеСнятиеПометкиУдаленияПредопределенныхДанных"
|
||||
- Право "Активные пользователи" на корень конфигурации установлено только у стандартной роли
|
||||
- Право "Администрирование" на корень конфигурации установлено только у стандартной роли
|
||||
- Право "Режим "Все функции"" на корень конфигурации установлено только у стандартной роли
|
||||
- Право "Администрирование расширений конфигурации" на корень конфигурации установлено только у стандартной роли
|
||||
- Право "Администрирование данных" на корень конфигурации установлено только у стандартной роли
|
||||
- Право "Интерактивное открытие внешних обработок" на корень конфигурации установлено только у стандартной роли
|
||||
- Право "Интерактивное открытие внешних отчетов" на корень конфигурации установлено только у стандартной роли
|
||||
- Право "Вывод" на корень конфигурации установлено только у стандартной роли
|
||||
- Право "Сохранение данных пользователя" на корень конфигурации установлено только у стандартной роли
|
||||
- Право "Automation" на корень конфигурации установлено только у стандартной роли
|
||||
- Право "Внешнее соединение" на корень конфигурации установлено только у стандартной роли
|
||||
- Право "Толстый клиент" на корень конфигурации установлено только у стандартной роли
|
||||
- Право "Тонкий клиент" на корень конфигурации установлено только у стандартной роли
|
||||
- Право "Веб-клиент" на корень конфигурации установлено только у стандартной роли
|
||||
- Право "Обновление конфигурации базы данных" на корень конфигурации установлено только у стандартной роли
|
||||
- Право "Журнал регистрации" на корень конфигурации установлено только у стандартной роли
|
||||
|
||||
Общее количество проверок: 23
|
||||
|
||||
| Код проверки | Наименование |
|
||||
|--------------|--------------|
|
||||
| [right-active-users](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-active-users.md) | Право установлено: Активные пользователи |
|
||||
| [right-administration](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-administration.md) | Право установлено: Администрирование |
|
||||
| [right-all-functions-mode](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-all-functions-mode.md) | Право установлено: Режим "Все функции" |
|
||||
| [right-configuration-extensions-administration](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-configuration-extensions-administration.md) | Право установлено: Администрирование расширений конфигурации |
|
||||
| [right-data-administration](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-data-administration.md) | Право установлено: Администрирование данных |
|
||||
| [right-exclusive-mode](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-exclusive-mode.md) | Право установлено: Монопольный режим |
|
||||
| [right-interactive-clear-deletion-mark-predefined-data](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-interactive-clear-deletion-mark-predefined-data.md) | Установлено право "ИнтерактивноеСнятиеПометкиУдаленияПредопределенныхДанных" |
|
||||
| [right-interactive-delete](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-interactive-delete.md) | Установлено право "ИнтерактивноеУдаление" |
|
||||
| [right-interactive-delete-marked-predefined-data](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-interactive-delete-marked-predefined-data.md) | Установлено право "ИнтерактивноеУдалениеПомеченныхПредопределенныхДанных" |
|
||||
| [right-interactive-delete-predefined-data](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-interactive-delete-predefined-data.md) | Установлено право "ИнтерактивноеУдалениеПредопределенныхДанных" |
|
||||
| [right-interactive-open-external-data-processors](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-interactive-open-external-data-processors.md) | Право установлено: Интерактивное открытие внешних обработок |
|
||||
| [right-interactive-open-external-reports](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-interactive-open-external-reports.md) | Право установлено: Интерактивное открытие внешних отчетов |
|
||||
| [right-interactive-set-deletion-mark-predefined-data](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-interactive-set-deletion-mark-predefined-data.md) | Установлено право "ИнтерактивноеПометкаУдаленияПредопределенныхДанных" |
|
||||
| [right-output-to-printer-file-clipboard](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-output-to-printer-file-clipboard.md) | Право установлено: Вывод |
|
||||
| [right-save-user-data](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-save-user-data.md) | Право установлено: Сохранение данных пользователя |
|
||||
| [right-start-automation](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-start-automation.md) | Право установлено: Automation |
|
||||
| [right-start-external-connection](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-start-external-connection.md) | Право установлено: Внешнее соединение |
|
||||
| [right-start-thick-client](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-start-thick-client.md) | Право установлено: Толстый клиент |
|
||||
| [right-start-thin-client](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-start-thin-client.md) | Право установлено: Тонкий клиент |
|
||||
| [right-start-web-client](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-start-web-client.md) | Право установлено: Веб-клиент |
|
||||
| [right-update-database-configuration](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-update-database-configuration.md) | Право установлено: Обновление конфигурации базы данных |
|
||||
| [right-view-event-log](../../bundles/com.e1c.v8codestyle.right/markdown/ru/right-view-event-log.md) | Право установлено: Журнал регистрации |
|
||||
| [role-right-has-rls](../../bundles/com.e1c.v8codestyle.right/markdown/ru/role-right-has-rls.md) | Право роли содержит текст ограничения доступа (RLS) |
|
||||
|
1
docs/html/.gitignore
vendored
1
docs/html/.gitignore
vendored
@ -1,3 +1,4 @@
|
||||
*.html
|
||||
*.css
|
||||
*.js
|
||||
*.xml
|
||||
|
@ -21,6 +21,26 @@
|
||||
file="toc.xml"
|
||||
primary="true">
|
||||
</toc>
|
||||
<toc
|
||||
file="html/checks/md.xml"
|
||||
primary="false">
|
||||
</toc>
|
||||
<toc
|
||||
file="html/checks/form.xml"
|
||||
primary="false">
|
||||
</toc>
|
||||
<toc
|
||||
file="html/checks/bsl.xml"
|
||||
primary="false">
|
||||
</toc>
|
||||
<toc
|
||||
file="html/checks/ql.xml"
|
||||
primary="false">
|
||||
</toc>
|
||||
<toc
|
||||
file="html/checks/right.xml"
|
||||
primary="false">
|
||||
</toc>
|
||||
</extension>
|
||||
|
||||
</plugin>
|
||||
|
21
docs/pom.xml
21
docs/pom.xml
@ -34,6 +34,27 @@
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.gmaven</groupId>
|
||||
<artifactId>groovy-maven-plugin</artifactId>
|
||||
<version>2.1.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>generate-check-lists</id>
|
||||
<phase>generate-sources</phase>
|
||||
<goals>
|
||||
<goal>execute</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<properties>
|
||||
<basePath>${project.basedir}</basePath>
|
||||
<generateHelpContent>true</generateHelpContent>
|
||||
</properties>
|
||||
<source>${project.basedir}/src/CheckListGenerator.groovy</source>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>com.ruleoftech</groupId>
|
||||
<artifactId>markdown-page-generator-plugin</artifactId>
|
||||
|
310
docs/src/CheckListGenerator.groovy
Normal file
310
docs/src/CheckListGenerator.groovy
Normal file
@ -0,0 +1,310 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (C) 2021, 1C-Soft LLC and others.
|
||||
*
|
||||
* This program and the accompanying materials are made
|
||||
* available under the terms of the Eclipse Public License 2.0
|
||||
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*
|
||||
* Contributors:
|
||||
* 1C-Soft LLC - initial API and implementation
|
||||
*******************************************************************************/
|
||||
import java.nio.file.Files
|
||||
import java.nio.file.Path
|
||||
import java.text.MessageFormat
|
||||
|
||||
/** Allows to generate all lists with checks
|
||||
*
|
||||
* @author Dmitriy Marmyshev
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* The description of the check.
|
||||
*/
|
||||
class CheckDescription {
|
||||
String title
|
||||
String checkId
|
||||
Path path
|
||||
String url
|
||||
}
|
||||
|
||||
/**
|
||||
* Read check description.
|
||||
*
|
||||
* @param file the markdown file to get header and file name as check ID
|
||||
* @return the check description
|
||||
*/
|
||||
CheckDescription readCheckDescription(String file) {
|
||||
def fileReader = new File(file)
|
||||
println("Read Markdown file: " + fileReader.absolutePath)
|
||||
def line
|
||||
def descr = null
|
||||
fileReader.withReader { r ->
|
||||
while( ( line = r.readLine() ) != null ) {
|
||||
if (line.stripLeading().startsWith("# ")) {
|
||||
def header = line.strip().substring(1).strip()
|
||||
descr = new CheckDescription();
|
||||
descr.title = header;
|
||||
descr.path = fileReader.toPath();
|
||||
def checkId = fileReader.name;
|
||||
if(checkId.endsWith(".md"))
|
||||
checkId = checkId.substring(0, checkId.length() -3)
|
||||
descr.checkId = checkId;
|
||||
break;
|
||||
}
|
||||
} ;
|
||||
}
|
||||
return descr;
|
||||
}
|
||||
|
||||
/**
|
||||
* Read descriptions in markdown files from directory.
|
||||
*
|
||||
* @param dirPath the directory path
|
||||
* @return the list of check descriptions
|
||||
*/
|
||||
List<CheckDescription> readDescriptions(String dirPath) {
|
||||
def checks = new ArrayList();
|
||||
def dir = new File(dirPath);
|
||||
println("Read directory: " + dir.absolutePath)
|
||||
dir.eachFile { file ->
|
||||
if(file.exists() && file.name.endsWith(".md")) {
|
||||
def descr = readCheckDescription(file.absolutePath)
|
||||
if(descr != null) {
|
||||
checks.add(descr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return checks;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update check list by file path.
|
||||
*
|
||||
* @param listFile the list file
|
||||
* @param checks the check descriptions to update
|
||||
*/
|
||||
void updateCheckList(Path listFile, List<CheckDescription> checks, String desciption = "") {
|
||||
|
||||
def file = listFile.toFile()
|
||||
def line
|
||||
def header = "";
|
||||
file.withReader { r ->
|
||||
while( ( line = r.readLine() ) != null ) {
|
||||
if (line.stripLeading().startsWith("# ")) {
|
||||
header = line
|
||||
break;
|
||||
}
|
||||
} ;
|
||||
}
|
||||
Collections.sort(checks, { o1, o2 -> o1.checkId.compareTo(o2.checkId)})
|
||||
|
||||
println("Write file: " + file.absolutePath)
|
||||
file.withWriter { w ->
|
||||
w.writeLine(header)
|
||||
w.writeLine("")
|
||||
w.writeLine("")
|
||||
if(!desciption.blank) {
|
||||
w.write(desciption)
|
||||
w.writeLine("")
|
||||
w.writeLine("")
|
||||
}
|
||||
w.writeLine("| Код проверки | Наименование |")
|
||||
w.writeLine("|--------------|--------------|")
|
||||
checks.each { check ->
|
||||
def checkIdContent = "[" + check.checkId+ "](" + check.url+ ")"
|
||||
line = "| " + checkIdContent + " | " + check.title + " |"
|
||||
w.writeLine(line)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String getCheckStatistic(Map<String, Integer> checkSegments, List<CheckDescription> checks) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append "Общее количество проверок 1С:Стандарты разработки V8: "
|
||||
sb.append checks.size()
|
||||
sb.append System.lineSeparator()
|
||||
sb.append System.lineSeparator()
|
||||
checkSegments.each { segment, total ->
|
||||
sb.append "- "
|
||||
sb.append segment
|
||||
sb.append ": "
|
||||
sb.append total
|
||||
sb.append System.lineSeparator()
|
||||
}
|
||||
sb.append System.lineSeparator()
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
void generateToc(List<CheckDescription> checks, String segment, Path tocDir) {
|
||||
Files.createDirectories(tocDir)
|
||||
def file = tocDir.resolve(segment + ".xml").toFile();
|
||||
|
||||
def begin = "<toc label=\"{0}\" link_to=\"toc.xml#{0}\">"
|
||||
def end = "</toc>"
|
||||
def topicTemplate = " <topic href=\"../com.e1c.v8codestyle.{0}/check.descriptions/ru/{1}.html\" label=\"{2}\" />"
|
||||
|
||||
Collections.sort(checks, { o1, o2 -> o1.title.compareTo(o2.title)})
|
||||
|
||||
file.withWriter { w ->
|
||||
w.write('''<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?NLS TYPE="org.eclipse.help.toc"?>
|
||||
''')
|
||||
w.writeLine(MessageFormat.format(begin, segment))
|
||||
checks.each { check ->
|
||||
def title = check.title
|
||||
title = title.replace("&", "&")
|
||||
title = title.replace("\"", """)
|
||||
title = title.replace("<", "<")
|
||||
title = title.replace(">", ">")
|
||||
title = title.replace("'", "'")
|
||||
w.writeLine(MessageFormat.format(topicTemplate, segment, check.checkId, title))
|
||||
}
|
||||
w.writeLine(end)
|
||||
}
|
||||
}
|
||||
|
||||
void addExternalLink(List<CheckDescription> checks, Path basePath) {
|
||||
def webUrlPreffix = "https://github.com/1C-Company/v8-code-style/tree/master/bundles/"
|
||||
|
||||
def editPattern ='''
|
||||
<div style="text-align: right">
|
||||
<a href="{0}" target="_blank" title="Редактировать описание">
|
||||
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z">
|
||||
</path></svg> Редактировать описание</a></div>
|
||||
'''
|
||||
checks.each { check ->
|
||||
def path = basePath.relativize(check.path)
|
||||
def url = webUrlPreffix + path.toString()
|
||||
def editText = MessageFormat.format(editPattern, url)
|
||||
def file = check.path.toFile()
|
||||
def lines = file.readLines();
|
||||
def editTextAdded = false
|
||||
file.withWriter { w ->
|
||||
|
||||
lines.each { line ->
|
||||
w.writeLine(line)
|
||||
if(!editTextAdded && line.startsWith("# ")) {
|
||||
w.writeLine(editText)
|
||||
editTextAdded = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void generateUrls(List<CheckDescription> checks, boolean helpContentLinks, Path basePath, String segment) {
|
||||
|
||||
// go upper from /html/checks/check_index.html
|
||||
def topicTemplate = "../../../com.e1c.v8codestyle.{0}/check.descriptions/ru/{1}.html"
|
||||
|
||||
checks.each { check ->
|
||||
if(helpContentLinks) {
|
||||
check.url = MessageFormat.format(topicTemplate, segment, check.checkId)
|
||||
}
|
||||
else {
|
||||
def path = basePath.relativize(check.path)
|
||||
check.url = path.toString()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
println "Get base path from script property \"basePath\"..."
|
||||
def basePath = properties.get("basePath") as String
|
||||
|
||||
if(basePath == null || basePath.blank) {
|
||||
println "Script property \"basePath\" is not set."
|
||||
}
|
||||
if((basePath == null || basePath.blank) && this.binding.variables.containsKey("args") && this.args.size() > 0) {
|
||||
println "Get \"basePath\" from first calling parameter..."
|
||||
basePath = this.args[0] as String;
|
||||
}
|
||||
|
||||
if(basePath == null || basePath.blank) {
|
||||
println "Base path is not set. Exit..."
|
||||
return
|
||||
}
|
||||
|
||||
// allows to copy check descriptions to make local refs in Eclipse help, generate other help content
|
||||
def generateHelpContent = Boolean.valueOf(properties.get("generateHelpContent") as String)
|
||||
|
||||
println "Current base path: " + basePath
|
||||
println("-----------------------------")
|
||||
|
||||
println("Generate check index content")
|
||||
println("-----------------------------")
|
||||
|
||||
// generate check lists for: md, form, module, ql, right
|
||||
|
||||
def checksDir = "checks"
|
||||
def htmlDir = "html"
|
||||
def listBaseDir = Path.of(basePath, checksDir)
|
||||
def descrDirPattern = Path.of(basePath, "/../bundles/com.e1c.v8codestyle.{0}/markdown/ru")
|
||||
def checkIdFile = listBaseDir.resolve("checks_index.txt")
|
||||
def tocDir = Path.of(basePath, htmlDir, checksDir)
|
||||
|
||||
def webUrlRemovePreffix = Path.of(basePath, "/../bundles")
|
||||
|
||||
|
||||
def int basePathSegments = (new File(basePath)).toPath().nameCount
|
||||
|
||||
def Map<String, Integer> checkSegments = new HashMap();
|
||||
checkSegments.put("md", 0)
|
||||
checkSegments.put("form", 0)
|
||||
checkSegments.put("bsl", 0)
|
||||
checkSegments.put("ql", 0)
|
||||
checkSegments.put("right", 0)
|
||||
|
||||
def List<CheckDescription> allChecks = new ArrayList<>();
|
||||
checkSegments.forEach({ segment, total ->
|
||||
|
||||
println("Generate check index for: " + segment + "...")
|
||||
def dirPath = MessageFormat.format(descrDirPattern.toString(), segment)
|
||||
def checks = readDescriptions(dirPath);
|
||||
if(generateHelpContent) {
|
||||
generateToc(checks, segment, tocDir)
|
||||
}
|
||||
|
||||
generateUrls(checks, generateHelpContent, listBaseDir, segment)
|
||||
def description = "Общее количество проверок: " + checks.size()
|
||||
def listFile = listBaseDir.resolve(segment + ".md")
|
||||
updateCheckList(listFile, checks, description)
|
||||
allChecks.addAll(checks)
|
||||
println("Done.")
|
||||
checkSegments.put(segment, checks.size())
|
||||
})
|
||||
|
||||
println("-----------------------------")
|
||||
println("Generate all check index...")
|
||||
def description = getCheckStatistic(checkSegments, allChecks)
|
||||
def listFile = listBaseDir.resolve("check_index.md")
|
||||
updateCheckList(listFile, allChecks, description)
|
||||
println("Done.")
|
||||
|
||||
// TODO Adding "Edit content" button should be added to md-files before bundle building
|
||||
//if(generateHelpContent) {
|
||||
// println("-----------------------------")
|
||||
// println("Add external GitHub link...")
|
||||
// addExternalLink(allChecks, webUrlRemovePreffix)
|
||||
// println("Done.")
|
||||
//}
|
||||
|
||||
println("-----------------------------")
|
||||
println("Update all check ID index...")
|
||||
def List<String> checkIds = new ArrayList<>();
|
||||
allChecks.each { check ->
|
||||
checkIds.add(check.checkId)
|
||||
}
|
||||
Collections.sort(checkIds)
|
||||
def file = checkIdFile.toFile()
|
||||
println("Write file: " + file.absolutePath)
|
||||
file.withWriter { w ->
|
||||
checkIds.each { checkId ->
|
||||
w.writeLine(checkId)
|
||||
}
|
||||
}
|
||||
println("Done.")
|
Loading…
Reference in New Issue
Block a user