Расширение для 1C:EDT, которое проверяет структурную целостность проектов "1С:Предприятия 8".

Overview

Build Coverage Lines of Code Bugs Code Smells Technical Debt

1С:EDT Project checks

Расширение для 1C:EDT, которое проверяет структурную целостность проектов "1С:Предприятия 8".

Проверки по стилю кодирования, логическим ошибкам кода и метаданных, разработка по стандартам 1С располагаются в проекте: https://github.com/1C-Company/v8-code-style/

Установка

Внимание! Расширение включается в дистрибутив 1C:EDT и не требует дополнительной установки.

Плагин 1С:EDT Project checks поставляется в виде репозитория Eclipse. Ручная установка расширения может выполняться следующими способами:

  • непосредственно из p2-репозитория, опубликованного на серверах фирмы 1С.
  • из локальной копии p2-репозитория, распакованного в локальную папку из предварительно скачанного zip-архива.

В строку выбора репозитория для установки (Work with) вставьте адрес репозитория:

Версия P2-репозиторий ZIP-архив репозитория
0.1.0 для 1C:EDT 2021.3 https://edt.1c.ru/downloads/releases/plugins/dt-project-checks/edt-2021.3/0.1.0/repo/ https://edt.1c.ru/downloads/releases/plugins/dt-project-checks/edt-2021.3/0.1.0/repo.zip

Далее для установки нужно выполнить следующие действия:

  • В среде разработки 1C:Enterprise Development Tools (EDT) выберите пункт меню Help – Install New Software (Справка – Установить новое ПО).
  • В открывшемся окне мастера установки в строке Work with воспользуйтесь кнопкой Add... и укажите расположение репозитория.
  • Если установка производится непосредственно из репозитория, опубликованного на серверах фирмы 1С, то скопируйте указанный адрес репозитория
  • Если установка производится из локальной папки, то воспользуйтесь кнопкой Local... и далее по кнопке Local укажите папку, в которую распакован репозиторий.
  • Отметьте компонент 1C:EDT Project checks и нажмите кнопку Next>
  • На следующем шаге система определит зависимости и сформирует окончательный список библиотек к установке, после этого нажмите кнопку Next>
  • Прочитайте и примите условия лицензионного соглашения и нажмите кнопку Finish
  • Дождитесь окончания установки и перезапустите среду 1C:Enterprise Development Tools. Установка завершена.

Участие в проекте

Добро пожаловать! См. правила в соответствующем разделе.

Лицензия

Лицензирование расширений размещенных в данном проекте осуществляется на условиях свободной (открытой) лицензии Eclipse Public License - v 2.0 (полный текст лицензии - https://www.eclipse.org/legal/epl-2.0/)

Comments
  • Перевод валидации объектов метаданных на новый механизм проверок

    Перевод валидации объектов метаданных на новый механизм проверок

    Что сделано

    • Реализована проверка корректности режима совместимости конфигурации
    • Реализована проверка базовых URL навигационных ссылок конфигурации мобильного приложения
    • Реализована проверка используемой функциональности конфигурации мобильного приложения
    • Реализована проверка уникальности имени объекта метаданных для содержащей его коллекции

    Чек-лист

    Общее:

    • [x] ветка PR обновлена из master и нет конфликтов
    • [x] Тесты-кейсы, JUnit тесты правильного и неправильного состояния
    • [x] Измененные Вами исходники отформатированы в соответствии с конвенцией
    • [x] Авто-аудит (SonarQube и CheckStyle) пройден, покрытие кода хорошее, ошибок нет, плохой код устранен
    • [x] Добавлена запись в ИСТОРИЮ ИЗМЕНЕНИЯ, включаемая в пользовательскую документацию плагина

    Если применимо:

    • [x] Пользовательская документация на доп.инструменты написана (на русском)
    • [x] Описание проверок - на двух языках

    Закрываемые задачи

    Closes #10

    @1C-Company @marmyshev прошу сделать аудит

    opened by wolfandw 3
  • Bugfix/#7-duplicate-id

    Bugfix/#7-duplicate-id

    Что сделано

    • Добавлена проверка на некорректные и дублирующиеся идентификаторы элементов форм
    • Добавлена возможность исправить такие идентификаторы из окна "Ошибки конфигурации"
    • Добавлено пакетное исправление всех подобных идентификаторов при оптимизации конфигурации проекта

    Чек-лист

    Общее:

    • [X] ветка PR обновлена из master и нет конфликтов
    • [X] Тесты-кейсы, JUnit тесты правильного и неправильного состояния
    • [X] Измененные Вами исходники отформатированы в соответствии с конвенцией
    • [X] Авто-аудит (SonarQube и CheckStyle) пройден, покрытие кода хорошее, ошибок нет, плохой код устранен
    • [X] Добавлена запись в ИСТОРИЮ ИЗМЕНЕНИЯ, включаемая в пользовательскую документацию плагина

    Если применимо:

    • [ ] Пользовательская документация на доп.инструменты написана (на русском)
    • [X] Описание проверок - на двух языках

    Закрываемые задачи

    Closes #7

    @1C-Company @marmyshev прошу сделать аудит

    opened by nikolay-martynov 2
  • 33 Валидация модели состава автономной конфигурации и квик-фиксы

    33 Валидация модели состава автономной конфигурации и квик-фиксы

    Что сделано

    • Проверка модели состава автономной конфигурации
    • Квик-фикс для исправления некорректных элементов состава автономной конфигурации

    Чек-лист

    Общее:

    • [ ] ветка PR обновлена из master и нет конфликтов
    • [ ] Тесты-кейсы, JUnit тесты правильного и неправильного состояния
    • [ ] Измененные Вами исходники отформатированы в соответствии с конвенцией
    • [ ] Авто-аудит (SonarQube и CheckStyle) пройден, покрытие кода хорошее, ошибок нет, плохой код устранен
    • [ ] Добавлена запись в ИСТОРИЮ ИЗМЕНЕНИЯ, включаемая в пользовательскую документацию плагина

    Если применимо:

    • [ ] Пользовательская документация на доп.инструменты написана (на русском)
    • [ ] Описание проверок - на двух языках

    Закрываемые задачи

    Closes #??

    opened by wolfandw 1
  • #18 проверка ссылочной целостности метаданных

    #18 проверка ссылочной целостности метаданных

    Что сделано

    • Универсальная проверка ссылочной целостности метаданных

    Чек-лист

    Общее:

    • [x] ветка PR обновлена из master и нет конфликтов
    • [x] Тесты-кейсы, JUnit тесты правильного и неправильного состояния
    • [ ] Измененные Вами исходники отформатированы в соответствии с конвенцией
    • [ ] Авто-аудит (SonarQube и CheckStyle) пройден, покрытие кода хорошее, ошибок нет, плохой код устранен
    • [ ] Добавлена запись в ИСТОРИЮ ИЗМЕНЕНИЯ, включаемая в пользовательскую документацию плагина

    Если применимо:

    • [ ] Пользовательская документация на доп.инструменты написана (на русском)
    • [x] Описание проверок - на двух языках

    Закрываемые задачи

    Closes #18 Closes #3

    opened by tretyakevich 1
  • 18 md referential checks

    18 md referential checks

    Что сделано

    • Опишите изменения функциональности
    • Реализованные проверки кода и метаданных

    Чек-лист

    Общее:

    • [ ] ветка PR обновлена из master и нет конфликтов
    • [ ] Тесты-кейсы, JUnit тесты правильного и неправильного состояния
    • [ ] Измененные Вами исходники отформатированы в соответствии с конвенцией
    • [ ] Авто-аудит (SonarQube и CheckStyle) пройден, покрытие кода хорошее, ошибок нет, плохой код устранен
    • [ ] Добавлена запись в ИСТОРИЮ ИЗМЕНЕНИЯ, включаемая в пользовательскую документацию плагина

    Если применимо:

    • [ ] Пользовательская документация на доп.инструменты написана (на русском)
    • [ ] Описание проверок - на двух языках

    Закрываемые задачи

    Closes #??

    opened by sanaroff 1
  • #17 Исправление проверки валидности имен элементов формы

    #17 Исправление проверки валидности имен элементов формы

    Что сделано

    • указаны только объекты формы
    • исключаются любые другие именованные объекты

    Чек-лист

    Общее:

    • [x] ветка PR обновлена из master и нет конфликтов
    • [x] Тесты-кейсы, JUnit тесты правильного и неправильного состояния
    • [x] Измененные Вами исходники отформатированы в соответствии с конвенцией
    • [ ] Авто-аудит (SonarQube и CheckStyle) пройден, покрытие кода хорошее, ошибок нет, плохой код устранен
    • [x] Добавлена запись в ИСТОРИЮ ИЗМЕНЕНИЯ, включаемая в пользовательскую документацию плагина

    Если применимо:

    • [ ] Пользовательская документация на доп.инструменты написана (на русском)
    • [ ] Описание проверок - на двух языках

    Закрываемые задачи

    Closes #17 Closes #19

    opened by marmyshev 1
  • Необоснованная ошибка

    Необоснованная ошибка "Имя "#" именованного элемента формы является невалидным именем" для реквизита формы ДеревоЗначений

    Описание ошибки

    Необоснованно выдается ошибка на реквизит формы ДеревоЗначений Имя "#" именованного элемента формы является невалидным именем

    Как оказалось, ругается на дерево значений формы (при удалении этого реквизита ошибка исчезает) image

    Однако вот файл формы и в нем ничего критичного нет - кроме некорректного индекса элемента командной панели ФайлФормы.txt

    Как воспроизвести

    1. Загрузить информационную базу из архива: testIB.zip
    2. Загрузить проект из информационной базы
    3. Наблюдать ошибку в панели ошибок

    Кстати, проверил - создал новый проект, новый документ, новую форму документа и добавил реквизит ДеревоЗначений - ошибка повторилась

    Скриншоты

    No response

    Ожидаемое поведение

    Ошибки не должно быть

    Лог рабочей области

    логи.zip

    Версия 1С:EDT

    Ruby 2021.3.1

    Операционная система

    Windows

    Установленные плагины

    1C:Code style V8

    Дополнительная информация

    EDT-test.zip архив рабочей области с проектом

    bug form 
    opened by DmitryShvaika 1
  • Реализовать проверку ссылочной целостности для объектов метаданных конфигурации

    Реализовать проверку ссылочной целостности для объектов метаданных конфигурации

    Описание проблемы

    В настоящий момент существует ряд ошибок, связанных с нарушением ссылочной целостности в объектах метаданных конфигурации. Данные ошибки приводят либо к невозможности публикации в ИБ (с совершенно недостаточным уровнем информации для локации и последующего исправления проблемы), либо к ошибкам в рантайме.

    Описание решения проблемы

    Предлагаю реализовать проверку ссылочной целостности объектов метаданных, с возможностью блокировки публикации в ИБ при обнаружении соответствующих проблем (и до их исправления). Это позволит:

    1. Предоставлять адресную информацию о проблемах ссылочной целостности
    2. В последующем реализовать механизм быстрого исправления данных проблем

    Дополнительная информация

    No response

    enhancement mdo 
    opened by tretyakevich 1
  • Перенос квик-фиксов по проверке путей данных

    Перенос квик-фиксов по проверке путей данных

    Что сделано

    Добавлены новые квик-фиксы:

    • удаление битой ссылки в пути к данным
    • удаление элемента формы с битой ссылкой

    Чек-лист

    Общее:

    • [x] ветка PR обновлена из master и нет конфликтов
    • [ ] Тесты-кейсы, JUnit тесты правильного и неправильного состояния
    • [x] Измененные Вами исходники отформатированы в соответствии с конвенцией
    • [x] Авто-аудит (SonarQube и CheckStyle) пройден, покрытие кода хорошее, ошибок нет, плохой код устранен
    • [x] Добавлена запись в ИСТОРИЮ ИЗМЕНЕНИЯ, включаемая в пользовательскую документацию плагина

    Если применимо:

    • [ ] Пользовательская документация на доп.инструменты написана (на русском)
    • [x] Описание проверок - на двух языках

    Закрываемые задачи

    Closes #12

    opened by marmyshev 1
  • #12 Квик-фикс по проверки путей к данным на форме

    #12 Квик-фикс по проверки путей к данным на форме

    Что сделано

    • удаление битой ссылки в пути к данным
    • удаление элемента формы с битой ссылкой

    Чек-лист

    Общее:

    • [x] ветка PR обновлена из master и нет конфликтов
    • [ ] Тесты-кейсы, JUnit тесты правильного и неправильного состояния
    • [x] Измененные Вами исходники отформатированы в соответствии с конвенцией
    • [ ] Авто-аудит (SonarQube и CheckStyle) пройден, покрытие кода хорошее, ошибок нет, плохой код устранен
    • [ ] Добавлена запись в ИСТОРИЮ ИЗМЕНЕНИЯ, включаемая в пользовательскую документацию плагина

    Если применимо:

    • [x] Пользовательская документация на доп.инструменты написана (на русском)
    • [ ] Описание проверок - на двух языках

    Закрываемые задачи

    Closes #12

    opened by marmyshev 1
  • Реализовать проверку на наличие дубликатов среди идентификаторов элементов форм

    Реализовать проверку на наличие дубликатов среди идентификаторов элементов форм

    Описание проблемы

    При одновременной доработке одной формы двумя и более разработчиками может возникнуть ситуация, что появляются дубликаты среди идентификаторов элементов форм, для этого достаточно добавить каждому из разработчиков новый элемент формы. Наличие дубликатов среди идентификаторов элементов форм "ломает" форму в рантайме.

    Описание решения проблемы

    Предлагается реализовать проверку с возможность исправления для вышеописанной проблемы наличия дубликатов среди идентификаторов элементов форм.

    Дополнительная информация

    No response

    enhancement form 
    opened by AlmazNasibullin 1
  • Подъем версий до 0.4.0 и переход на EDT 2022.3

    Подъем версий до 0.4.0 и переход на EDT 2022.3

    Описание проблемы

    Необходимо поднять версии до 0.4.0 и перейти на EDT 2022.3.

    Описание решения проблемы

    Необходимо поднять версии до 0.4.0 и перейти на EDT 2022.3.

    Дополнительная информация

    No response

    enhancement 
    opened by AlmazNasibullin 0
  • Поднятие версии md.form.model

    Поднятие версии md.form.model

    Описание ошибки

    Необходимо поднять версию md.form.model

    Как воспроизвести

    Скриншоты

    No response

    Ожидаемое поведение

    Лог рабочей области

    Версия 1С:Code style V8

    edt-2022-2

    Версия 1С:EDT

    Ruby 2022.2

    Операционная система

    No response

    Дополнительная информация

    No response

    opened by vadimeg 0
  • Не перестраиваются маркеры для проверки form-data-path

    Не перестраиваются маркеры для проверки form-data-path

    Описание ошибки

    При смене режима совместимости не перестраиваются маркеры

    Как воспроизвести

    • Создать конфигурацию с планом обмена и формой узла
    • Поставить конфигурации режим совместимости 8.3.6 или любой другой из списка
    • Кинуть поле ЭтотУзел из объекта на форму
    • Поменять режим совместимости на 8.3.4 или меньше (можно вручную, исправив файл конфигурации, или через экспорт в конфигуратор, в котором поддерживаются старые режимы совместимости)

    Появится маркер Property "Data path" has incorrect value "Объект.ThisNode": 2 segment "ThisNode" referred to unknown object

    • Вернем режим совместимости в изначальный (дефолтный)
    • Маркер останется на месте

    Скриншоты

    No response

    Ожидаемое поведение

    Маркер должен удалиться, т.к. путь у элемента формы становится вновь валидным

    Лог рабочей области

    Версия 1С:Code style V8

    edt-2022-1

    Версия 1С:EDT

    Ruby 2022.1

    Операционная система

    No response

    Дополнительная информация

    No response

    bug 
    opened by vadimeg 3
  • Падение в проверке MdReferenceIntegrity

    Падение в проверке MdReferenceIntegrity

    Описание ошибки

    java.lang.NullPointerException
    	at com.e1c.dt.check.internal.md.MdReferenceIntegrity.scheduleCheckIfFeaturesAreTracked(MdReferenceIntegrity.java:298)
    	at com.e1c.dt.check.internal.md.MdReferenceIntegrity$ObjectRemovalContextCollector.collectContextOnObjectRemoval(MdReferenceIntegrity.java:402)
    	at com.e1c.g5.v8.dt.internal.check.derived.CombinedModelCheckRemovalContextCollector.collectContextOnObjectRemoval(CombinedModelCheckRemovalContextCollector.java:131)
    	at com._1c.g5.v8.internal.derived.BmRawEventHandler.collectScopeOnObjectAssociation(BmRawEventHandler.java:338)
    	at com._1c.g5.v8.internal.derived.BmRawEventHandler$1.execute(BmRawEventHandler.java:423)
    	at com._1c.g5.v8.internal.derived.BmRawEventHandler$1.execute(BmRawEventHandler.java:1)
    	at com._1c.g5.v8.bm.integration.internal.reactor.Reactor.executeTask(Reactor.java:757)
    	at com._1c.g5.v8.bm.integration.internal.reactor.Reactor.executeTask(Reactor.java:700)
    	at com._1c.g5.v8.bm.integration.internal.reactor.Reactor.executeReadOnlyTask(Reactor.java:146)
    	at com._1c.g5.v8.bm.integration.internal.BmModel.executeReadonlyTask(BmModel.java:227)
    	at com._1c.g5.v8.internal.derived.BmRawEventHandler.handleEvent(BmRawEventHandler.java:415)
    	at com._1c.g5.v8.internal.derived.BmRawEventHandler.handleSyncEvent(BmRawEventHandler.java:169)
    	at com._1c.g5.v8.bm.integration.internal.event.StandardEventManager.dispatchSyncEvent(StandardEventManager.java:118)
    	at com._1c.g5.v8.bm.integration.internal.reactor.Reactor.performEventProcessing(Reactor.java:848)
    	at com._1c.g5.v8.bm.integration.internal.reactor.Reactor.handleEvent(Reactor.java:809)
    	at com._1c.g5.v8.bm.integration.internal.reactor.Reactor.handleEvent(Reactor.java:790)
    	at com._1c.g5.v8.bm.integration.internal.reactor.Reactor.lambda$1(Reactor.java:161)
    	at com._1c.g5.v8.bm.integration.internal.reactor.Reactor.executeTask(Reactor.java:772)
    	at com._1c.g5.v8.bm.integration.internal.reactor.Reactor.executeTask(Reactor.java:700)
    	at com._1c.g5.v8.bm.integration.internal.reactor.Reactor.executeTask(Reactor.java:154)
    	at com._1c.g5.v8.bm.integration.internal.BmModel.execute(BmModel.java:209)
    	at com._1c.g5.v8.dt.internal.core.platform.bm.InternalImportService.executeImportTask(InternalImportService.java:102)
    	at com._1c.g5.v8.dt.internal.core.platform.bm.InternalImportService$ResourceImportRunnable.run(InternalImportService.java:181)
    	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    	at java.base/java.lang.Thread.run(Thread.java:834)
    
    

    Как воспроизвести

    из лога на ERP-WE

    Скриншоты

    No response

    Ожидаемое поведение

    нет NPE

    Лог рабочей области

    Версия 1С:Code style V8

    0.2.0

    Версия 1С:EDT

    No response

    Операционная система

    No response

    Дополнительная информация

    No response

    bug 
    opened by marmyshev 0
  • Md reference intergrity quick fix

    Md reference intergrity quick fix

    Что сделано

    Добавлено быстрое исправление для проверки целостности ссылок путем удаления proxy-ссылки

    Чек-лист

    Общее:

    • [x] ветка PR обновлена из master и нет конфликтов
    • [x] Тесты-кейсы, JUnit тесты правильного и неправильного состояния
    • [x] Измененные Вами исходники отформатированы в соответствии с конвенцией
    • [x] Авто-аудит (SonarQube и CheckStyle) пройден, покрытие кода хорошее, ошибок нет, плохой код устранен
    • [x] Добавлена запись в ИСТОРИЮ ИЗМЕНЕНИЯ, включаемая в пользовательскую документацию плагина

    Если применимо:

    • [x] Пользовательская документация на доп.инструменты написана (на русском)
    • [x] Описание проверок - на двух языках

    Закрываемые задачи

    Closes #??

    @tretyakevich прошу сделать аудит

    opened by sanaroff 1
  • Валидация модели состава автономной конфигурации и квик-фиксы

    Валидация модели состава автономной конфигурации и квик-фиксы

    Описание ошибки

    Модель состава автономной конфигурации может содержать ошибочные (лишние) данные. Требуется их найти и удалить

    Как воспроизвести

    В ресурсном файле модели лишние записи о неиспользуемых объектах.

    Скриншоты

    No response

    Ожидаемое поведение

    Отсутствие лишних записей о неиспользуемых объектах

    Лог рабочей области

    Версия 1С:Code style V8

    0.1.0.141

    Версия 1С:EDT

    2021.3

    Операционная система

    No response

    Дополнительная информация

    No response

    bug 
    opened by wolfandw 0
Releases(v0.1.0.beta)
Owner
null
Расширение для 1C:EDT, которое помогает разрабатывать конфигурации/приложения по стандартам 1С для платформы "1С:Предприятие 8".

1С:Стандарты разработки V8 Расширение для 1C:EDT, которое помогает разрабатывать конфигурации/приложения по стандартам 1С для платформы "1С:Предприяти

null 129 Dec 26, 2022
API-автотесты для Reqres с использованием библиотеки REST Assured

API-автотесты для Reqres Покрытый функционал Разработаны автотесты на API. API Запросы GET, POST, PUT, PATCH и DELETE Отображение statusCode и body в

Karina Gordienko 2 Jan 31, 2022
DonationExecutor - плагин для Minecraft (Spigot/Paper)

DonationExecutor - плагин для Minecraft (Spigot/Paper) Плагин, который, получая информацию о новых донатах с Donation Alerts, автоматически генерирует

null 214 Dec 27, 2022