Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Решение конфликтов #2

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
0825965
Ошибки checkstyle
DoublesunRUS Jul 21, 2021
6c7903c
Ошибки checkstyle
DoublesunRUS Jul 22, 2021
efa6fcf
Тестовый класс SingleProjectReadOnlyCheckTestBase неработоспособен
DoublesunRUS Jul 29, 2021
c7aaeda
Merge pull request #33 from DoublesunRUS/bugfix/incomplete-test-bsl-c…
marmyshev Aug 10, 2021
d89ded8
Добавлен шаблон для ошибки
marmyshev Aug 10, 2021
25ff8b4
Переименование файла bug_report
marmyshev Aug 10, 2021
464de06
Неправильное имя внутреннего пакета com.e1c.v8codestyle.bsl.internal …
DoublesunRUS Aug 11, 2021
4b9bf95
Проверка на запросы в цикле (#32)
DoublesunRUS Aug 11, 2021
95b3537
Исправление названия
marmyshev Aug 11, 2021
ce7bfeb
Шаблоны для проверок и фич
marmyshev Aug 11, 2021
741f66b
Удаление лишнего файла шаблона
marmyshev Aug 11, 2021
09d0610
Исправление наименования шаблона
marmyshev Aug 11, 2021
91f07cf
#1 Перенос проверок по правам (#12)
marmyshev Aug 12, 2021
484742f
#1 Перенос бандла проверок по формам (#39)
marmyshev Aug 18, 2021
3837b23
#40 Перенос проверки ОбменДанными.Загрузка в обработчиках событий (#41)
marmyshev Aug 18, 2021
7263665
Обновление истории изменений
Aug 18, 2021
6d062e7
#1 Непубличные идентификаторы проверки
marmyshev Aug 27, 2021
74e859f
Merge branch 'master' into bugfix/checkstyle
DoublesunRUS Aug 29, 2021
2bab3e7
Исправлены ошибки checkstyle
DoublesunRUS Aug 29, 2021
2a00f64
Исправлены ошибки checkstyle
DoublesunRUS Aug 29, 2021
4c7009c
Merge pull request #25 from DoublesunRUS/bugfix/checkstyle
marmyshev Aug 29, 2021
684ef38
#1 Выбор типа общего модуля из списка при создании нового (#45)
marmyshev Aug 31, 2021
af1ba40
#1 Выбор типа общего модуля из списка при создании нового
marmyshev Aug 31, 2021
edf9e6e
* #20 Добавлены проверки стандартных прав
DoublesunRUS Sep 9, 2021
76b3ade
Для проверки structure-consructor-too-many-keys понижена критичность …
DoublesunRUS Sep 10, 2021
5ef16e6
#394 Реализована проверка ПустойБлокИсключения (#447)
EightM Sep 10, 2021
2e2091c
Исправление форматирования и варнингов
marmyshev Sep 10, 2021
f91eb3f
#1 Актуализация заголовков описаний проверок
marmyshev Sep 10, 2021
584a873
#36 Проверка наличия представления списка или объект у метаданных
marmyshev Sep 10, 2021
e8fed36
#1 Логотип плагина
marmyshev Sep 10, 2021
53c565c
#1 Исправление сборки описаний проверок
marmyshev Sep 11, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
37 changes: 37 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
name: Сообщение об ошибке
about: Сообщите об ошибке чтобы помочь нам улучшить проект
title: ''
labels: bug
assignees: ''

---

**Опишите ошибку**
Четкое и краткое описание того, в чем заключается ошибка.

**Как воспроизвести**
Шаги для воспроизведения ошибки:
1. Перейдите в '...'
2. Кликните по '....'
3. Прокрутите вниз до '....'
4. Смотрите ошибку в '....'

**Ожидаемое поведение**
Четкое и краткое описание того, что вы ожидали бы в правильном поведении.

**Скриншоты**
Если возможно, приложите скриншоты проблемы.
Совет: не старайтесь обрезать все лишнее (по вашему мнению) на скриншоте, лучше более полный скриншот со стрелочками на проблемное место.

**Окружение (пожалуйста укажите информацию):**
- OS: [например Windows, macOS]
- Версия 1C:Code-Style-V8 [например, 0.2.3.15]
- Версия 1C:EDT [например, 2021.2.3.15]


**Дополнительная информация**
- Добавьте здесь любую дополнительную информацию о проблеме
- Пример кода на котором воспроизводится ошибка,
- Версию типовой конфигурации 1С + объект в котором воспроизводится проблема
- Ссылки на публичные проекты 1С в котором воспроизводится проблема
59 changes: 59 additions & 0 deletions .github/ISSUE_TEMPLATE/check.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
---
name: Проверка по стандарту
about: Предложите проверку по существующему стандарту. Вначале ознакомьтесь с соглашением
по проверкам.
title: 'Стандарт NNN: <Название проверки>'
labels: standards
assignees: ''

---

Пожалуйста, в начале, [прочитайте соглашения по проверкам](https://github.com/1C-Company/v8-code-style/blob/master/Check_Convention.md).

**Название проверки**
Напишите краткое название проверки

**Английское название проверки**
Напишите английское название проверки, отображаемое в английском интерфейсе 1C:EDT, или оставьте пустым, если нет возможности перевести.

**Правило анализа кода/метаданных**
Детально опишите алгоритм, порядок действий по поиску проблемного места в коде или метаданных.
Укажете максимально полно все условия, при которых состояния кода/метаданных НЕ являются ошибкой.

**Мета-информация (пожалуйста, заполните если знаете):**
- Номер стандарта: [например: 124]
- Код проверки: [например: my-check-id]
- Тип ошибки: [например: PERFORMANCE или WARNING и т.д.]
- Критичность: [например: MINOR]
- Код ошибки АПК: [например: 539, если аналогичная проверка существует]

**Параметры проверки**
Опишите параметры проверки, которые вы хотели бы настраивать, Например: длинна символов, длинна числа.


**Текст ошибки**
Предложите пример сообщения об ошибке, отображаемый в 1C:EDT.

**Пример некорректного решения**
Приведите пример(ы) некорректного кода (или метаданных)
```bsl
Параметры = Новый Структура("Ключ1, Ключ2, Ключ3, Ключ4");
```

**Описание, почему так делать нельзя**
Укажите описание для разработчика 1С, почему такой код является некорректным.

**Пример корректного решения**
Приведите пример(ы) корректного кода (или метаданных) для текущего правила.
```bsl
Параметры = Новый Структура;
Параметры.Вставить("Ключ1", "");
Параметры.Вставить("Ключ2", "");
Параметры.Вставить("Ключ3", "");
Параметры.Вставить("Ключ4", "");
```

**Дополнительные материалы**
- Ссылка на стандарт на сайте ИТС
- Скриншоты с примерами некорректного состояния кода/метаданных
- Скриншоты с примерами исправленного состояния кода/метаданных
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
63 changes: 62 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,67 @@
1С:Стандарты разработки V8 - CHANGELOG - ИСТОРИЯ ИЗМЕНЕНИЙ
# 1С:Стандарты разработки V8 - CHANGELOG - ИСТОРИЯ ИЗМЕНЕНИЙ

[TOC text bullet hierarchy]

## 0.1.0

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

### Новые фичи

- Автосортировка метаданных, сортировка объектов верхнего уровня по умолчанию, для подчиненных настраивается
- Выбор подходящего тип общего модуля из списка при создании нового

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

#### Метаданные

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

#### Формы

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

#### Код модулей

- Проверка конструктора структуры содержащего больше 3х ключей
- Выполнение запроса в цикле с учетом локальных вызовов в модуле
- Проверка ОбменДанными.Загрузка в обработчике события
- Конструкция "Попытка...Исключение...КонецПопытки" не содержит кода в исключении

#### Запросы

- Временная таблица должна содержать индексы
- Ограничение максимальной длины числа в запросе
- Строковый литерал должен содержать CamelCase
- Соединение с подзапросом

#### Права ролей

- Право роли содержит текст ограничения доступа (RLS)
- Установлено право "ИнтерактивноеУдаление"
- Установлено право "ИнтерактивноеУдалениеПомеченныхПредопределенныхДанных"
- Установлено право "ИнтерактивноеУдалениеПредопределенныхДанных"
- Установлено право "ИнтерактивноеПометкаУдаленияПредопределенныхДанных"
- Установлено право "ИнтерактивноеСнятиеПометкиУдаленияПредопределенныхДанных"
- Право "Активные пользователи" на корень конфигурации установлено только у стандартной роли
- Право "Администрирование" на корень конфигурации установлено только у стандартной роли
- Право "Режим "Все функции"" на корень конфигурации установлено только у стандартной роли
- Право "Администрирование расширений конфигурации" на корень конфигурации установлено только у стандартной роли
- Право "Администрирование данных" на корень конфигурации установлено только у стандартной роли
- Право "Интерактивное открытие внешних обработок" на корень конфигурации установлено только у стандартной роли
- Право "Интерактивное открытие внешних отчетов" на корень конфигурации установлено только у стандартной роли
- Право "Вывод" на корень конфигурации установлено только у стандартной роли
- Право "Сохранение данных пользователя" на корень конфигурации установлено только у стандартной роли
- Право "Automation" на корень конфигурации установлено только у стандартной роли
- Право "Внешнее соединение" на корень конфигурации установлено только у стандартной роли
- Право "Толстый клиент" на корень конфигурации установлено только у стандартной роли
- Право "Тонкий клиент" на корень конфигурации установлено только у стандартной роли
- Право "Веб-клиент" на корень конфигурации установлено только у стандартной роли
- Право "Обновление конфигурации базы данных" на корень конфигурации установлено только у стандартной роли
- Право "Журнал регистрации" на корень конфигурации установлено только у стандартной роли
Original file line number Diff line number Diff line change
Expand Up @@ -191,13 +191,17 @@ public boolean performOk()
{
prefs.remove(AutoSortPreferences.KEY_TOP_NODE);
if (prefs.nodeExists(AutoSortPreferences.KEY_TOP_NODE))
{
prefs.node(AutoSortPreferences.KEY_TOP_NODE).removeNode();
}
}
if (buttons.get(AutoSortPreferences.KEY_SUBORDINATE_OBJECTS).getSelection())
{
prefs.remove(AutoSortPreferences.KEY_SUBORDINATE_NODE);
if (prefs.nodeExists(AutoSortPreferences.KEY_SUBORDINATE_NODE))
{
prefs.node(AutoSortPreferences.KEY_SUBORDINATE_NODE).removeNode();
}
}
prefs.flush();
}
Expand Down Expand Up @@ -487,7 +491,9 @@ private final class TopCheckStateProvider
public boolean isChecked(Object element)
{
if (element instanceof EReference)
{
return AutoSortPropertyPage.this.topObjects.getOrDefault(((EReference)element).getName(), false);
}
return false;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,10 +116,14 @@ public static boolean isSortSubOrdinateObjects(IProject project)
public static boolean isAllowedToSort(IProject project, EReference listRef)
{
if (ListConstants.TOP_OPBJECT_LISTS.contains(listRef))
{
return isSortAllTop(project) || isSortTopList(project, listRef);
}

if (ListConstants.SUBORDINATE_OBJECT_LISTS.contains(listRef))
{
return isSortSubOrdinateObjects(project) || isSortSubordinateList(project, listRef);
}

return false;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,25 +64,35 @@ public Void execute(IBmTransaction transaction, IProgressMonitor monitor)
for (SortItem item : items)
{
if (monitor.isCanceled())
{
return null;
}

if (!item.getListRef().isMany())
{
continue;
}

EObject parent = transaction.getTopObjectByFqn(item.getFqn());
if (parent != null)
{
Object value = parent.eGet(item.getListRef());
if (!(value instanceof List))
{
continue;
}

List<?> elements = (List<?>)value;
if (elements.size() < 2)
{
continue;
}

SortCommand command = new SortCommand(parent, item.getListRef(), item.getSorter());
if (command.canExecute())
{
command.execute();
}
command.dispose();

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,9 @@ public SortJob(IDtProject dtProject, ISortService sortService, IWorkspaceOrchest
protected IStatus run(IProgressMonitor monitor)
{
if (dtProject.getWorkspaceProject() == null)
{
return Status.CANCEL_STATUS;
}

Object handler = workspaceOrchestrator.beginBackgroundOperation("Sort-MD-objects", //$NON-NLS-1$
Arrays.asList(dtProject), ProjectPipelineJob.BUILD);
Expand All @@ -85,7 +87,9 @@ protected IStatus run(IProgressMonitor monitor)
execute(monitor);
}
if (monitor.isCanceled())
{
queue.clear();
}
}
finally
{
Expand Down
Loading