Разработка 1C:EDT Plugin в IntelliJ IDEA
Не обязательно использовать Eclipse RCP, особенно если больше по душе IntelliJ IDEA. В этом нет ничего сложного.
Подготовка
В первую очередь необходимо установить 1C:EDT (использовалась версия 2025.2.3+30) и IntelliJ IDEA (использовалась версия 2025.3.3). Для разработки плагина 1C:EDT достаточно использовать IntelliJ IDEA c установленным плагином OSGi (использовалась версия 253.28294.251).
Создание проекта
Создать новый проект. Указать имя и расположение проекта. Язык Java, система сборки IntelliJ. Пример кода в проект не добавлять.

Добавление библиотеки 1C:EDT
Открыть Project Structure и выбрать Libraries.
Добавить новую Java библиотеку, выбрав путь к директории plugins из директории установки 1C:EDT.

Класс активатор
Активатор не является обязательным классом, но в дальнейшем он все таки понадобится. Лучше создать его заранее, так как он управляет жизненным циклом плагина и потребуется для получения экземпляра плагина.
В директории src необходимо создать Package com.skycorvette.example и в него добавить Java Class Activator, расширяющий реализацию класса org.eclipse.core.runtime.Plugin.
package com.skycorvette.example;
import org.eclipse.core.runtime.Plugin;
import org.osgi.framework.BundleContext;
public class Activator extends Plugin {
@Override
public void start(BundleContext context) throws Exception {
super.start(context);
}
@Override
public void stop(BundleContext context) throws Exception {
super.stop(context);
}
}Структура файлов проекта
<root>
└─── src
└── com.skycorvette.example
└── Activator.java
Настройка OSGi
Открыть Project Structure и выбрать Modules.
Добавить модуль OSGi и заполнить Manifest Generation.
Symbolic name: com.skycorvette.example;singleton:=true
Bundle activator: com.skycorvette.example.Activator
Bundle version: 1.0.0.1
Additional properties:
Bundle-Vendor: Sky Corvette Team
Bundle-Name: Example
В директории установки 1C:EDT рядом с директорией plugins создать директорию dropins. Если доступ на запись в данную директорию ограничен, необходимо предоставить. Указать расположение результирующего файла плагина, выбрав путь к созданной директории dropins.

Проверка плагина в 1C:EDT
Собрать проект, запустить 1C:EDT и открыть окно About 1C:Enterprise Development Tools, нажать кнопку Installation Details и перейти к разделу Plug-ins. Проверить, что плагин присутствует в списке. Пока плагин ничего не делает.
Точка расширения
Пришло время реализовать в плагине функциональность, расширяющую возможности 1C:EDT. Например, валидацию в модулях встроенного языка.
Для этого необходимо создать Java Class Validator, расширяющий реализацию класса com.e1c.g5.v8.dt.check.components.BasicCheck.
package com.skycorvette.example;
import com.e1c.g5.v8.dt.check.CheckComplexity;
import com.e1c.g5.v8.dt.check.ICheckParameters;
import com.e1c.g5.v8.dt.check.ICheckResultAcceptor;
import com.e1c.g5.v8.dt.check.components.BasicCheck;
import com.e1c.g5.v8.dt.check.settings.IssueSeverity;
import org.eclipse.core.runtime.IProgressMonitor;
import static com._1c.g5.v8.dt.bsl.model.BslPackage.Literals.MODULE;
public class Validator extends BasicCheck<Object> {
@Override
public void check(Object object, ICheckResultAcceptor resultAcceptor, ICheckParameters parameters, IProgressMonitor progressMonitor) {
super.check(object, resultAcceptor, parameters, progressMonitor);
}
@Override
protected void configureCheck(CheckConfigurer checkConfigurer) {
checkConfigurer.title("Example of verification")
.description("Example of verification")
.complexity(CheckComplexity.NORMAL)
.severity(IssueSeverity.TRIVIAL)
.module()
.checkedObjectType(MODULE);
}
@Override
public String getCheckId() {
return "example";
}
}plugin.xml, который описывает, как плагин расширяет возможности 1C:EDT.
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension point="com.e1c.g5.v8.dt.check.checks">
<category
id="com.skycorvette.example"
description="Examples of checks"
title="Examples of checks">
</category>
<check
category="com.skycorvette.example"
class="com.skycorvette.example.Validator">
</check>
</extension>
</plugin>plugin.xml в состав сборки.
Результирующая структура файлов проекта
<root>
├─── src
│ └── com.skycorvette.example
│ ├── Activator.java
│ └── Validator.java
└─── plugin.xml
Запуск и отладка
Открыть Run/Debug Configurations и добавить новую конфигурацию Remote JVM Debug. В конец файла 1cedt.ini отдельной строкой добавить аргументы командной строки для отладки -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005.
Теперь можно запускать 1C:EDT и подключаться отладчиком IntelliJ IDEA.
Решение проблем
После внесения изменений в файл plugin.xml и пересборки проекта желательно полностью удалять директорию org.eclipse.osgi, расположенную в директории configuration 1C:EDT.
Комментарии и вопросы в telegram