Конфигуратор нового поколения 1C:Enterprise Development Tools на базе платформы Eclipse (1С:EDT) обладает одной принципиально новой возможностью — он позволяет расширять функциональность Конфигуратора путем добавления подключаемых модулей (плагинов).
Вниманию сообщества предлагается изложение опыта разработки такого плагина для бета-версии EDT.
Автор видеоматериалов — сам «чайник» в Java-программировании вообще и в разработке Eclipse-плагинов в частности. Цель предлагаемого материала — выработка уверенности в этом новом для 1С-программиста деле.
Материал состоит из пяти видеороликов, демонстрирующих по шагам разработку плагина для EDT.
К сожалению, иногда сбивались настройки микрофона и качества звука в некоторых местах не совсем удовлетворительное.
Часть 1. Коротко о EDT. Возможность разработки «скриптов Конфигуратора» — плагинов. Коротко об архитектуре Eclipse. Понятие зависимости и точки расширения. Необходимые дистрибутивы. Рабочая среда. Среда разработки, настройка среды разработки. Среда отладки, настройка среды отладки. (~23 мин.)
Часть 2. Начало разработки плагина. Файлы манифеста. Мастер плагинов Eclipse, создание заготовки нашего плагина по шаблону. Настройка точек расширения демоверсии плагина. (~18 мин.)
Часть 3. Настройка точек расширения демоверсии плагина (продолжение). Тестирование демоверсии плагина в среде отладки. Сборка исполняемого файла демоверсии плагина, тестирование его в рабочей среде. Настройка точек расширения для окончательной версии плагина — создание пункта контекстного меню редактора программного модуля Конфигуратора. Тестирование работы пункта контекстного меню в среде отладки. (~23 мин.)
Часть 4. Разработка программного Java-кода плагина. (~18 мин.)
Часть 5. Разработка программного кода (продолжение). Отладчик Eclipse, отладка Java-кода. Сборка исполняемого файла окончательного варианта плагина. Тестирование плагина в рабочей среде. (~23 мин.)
Спасибо.
Полезная тема. Пора уже начинать ее развивать.
Пробовала разрабатывать плагины к Eclipse, но знаний в этом направлении очень не хватает.
(1) Я так и понял, что многие уже хотели бы начать разработку плагинов, но концентрированной информации нет.
Советую начать тренировки уже на EDT 1.4 beta «Silver», она только что вышла, потому что неизвестно, что можно ожидать в отношении плагинов в следующих версиях 🙂
(3) Пока никак. Конфигуратор EDT на данный момент находится в стадии бета-тестирования.
Спасибо. Подписался на ваш канал.
(5) Спасибо Вам. Правда, на ближайшее время нет планов еще что-либо записывать, но будущее покажет.
Николай, отличный материал, спасибо! На мой взгляд EDT — потрясающе перспективная вещь. Навскидку, например — скорее всего можно будет разработать плагин, с помощью которого удобно разрабатывать и, самое главное, отлаживать правила обмена.
(7) Олег, согласен. Вещь очень перспективная. Производительности бы побольше, но, я полагаю, у Java есть резервы повышения производительности.
(8)
Я только Графит себе ставил пока, на мой взгляд производительность была типичная для Eclipse, впрочем, это конечно субъективное мнение. Жду не дождусь рабочую версию, намерен как можно быстрее перейти на EDT.
(9) Я могу чисто субъективно предположить, что разработчики ЕDT будут действовать так. Бета-версии делать чисто на Java, а в боевой версии, когда будут отлажены основные алгоритмы, для реализации критических по производительности процессов (загрузка-выгрузка конфигурации и т. п.) привлечь нативный код на C++. Благо, уже есть куча dll для обычного Конфигуратора, где эти алгоритмы уже реализованы и работают. Почему бы их не запрячь?.. Правда, кроссплатформенность ставит тут свои новые задачи… Впрочем, это только мои досужие рассуждения.
(10) Интересная мысль. Для Java существуют инструменты оптимизации, тот жеExelsior например. Поживем, увидим, как говорится. 🙂
(11) Ну да, я тоже думаю, что EDT делает толковая команда и они сделают все, чтобы новое детище предстало во всем блеске 🙂
(10)
Так ведь сейчас так и происходит — загрузка/выгрузка конфигурации делается нативными средствами 1С-Предприятия, написанными на С++, разве нет?
(13) Сомнительно, Александр. Я дал поиск dll по всему каталогу с EDT, нашлось всего 9 dll, из них 4, судя по названию, относятся к swt, 2 — к http, одна — эклипсовская и две называются localfile. Косвенно по буквам в названии можно судить о их назначении. Вряд ли.
(13) Вы частично правы.
Документация:
Выходит, загрузка сейчас происходит через предварительную выгрузку конфигурации в файлы, которую делает установленная версия 1С:Предприятие, затем эти файы загружаются в рабочее пространство EDT — а тут уже работает Java. Вот где кошмар и ужас, вот почему загрузка типовых происходит по несколько часов.
Решением здесь будет, видимо, создание собственного механизма EDT для загрузки-выгрузки с использованием нативного кода.
Здравствуйте , разбираю Ваше первое видео, не получается импортировать проект в среду отладки — выдает сообщение следующего содержания
«Some project cannot bo imported because they already exist in workspace or their project description file is corrupted»
Поэтому возник вопрос — должны ли совпадать пути к папке рабочего пространства (workspace) для среды отладки и среды разработки ?
Р.S. — тут разобрался , пересоздал среду запуска и запустил по умолчанию ничего не стал менять ( до этого зачем-то поменял путь к папке workspace) поэтому были глюки , но теперь проблема в другом
при запуске импортирования вылетает ошибка старта сервисов проекта.
Эх, забыл я уже про eclipse. Прошлый век. Лучше бы jetBrainse дали по колдовать над EDT. Не было бы это началом конца.
(16)
«Some project cannot bo imported because they already exist in workspace or their project description file is corrupted»
Поэтому возник вопрос — должны ли совпадать пути к папке рабочего пространства (workspace) для среды отладки и среды разработки ?
Нет, должны быть разные WS. И еще: не надо, чтобы конфигурация 1С жила в среде разработки — будут проблемы. Мой опыт показал, что нужны именно три среды: Рабочая (где конфигурация), Разработка, Отладка — все с разными WS.
Переполнение стека?! Вот странно… Возможно, глюк бета-версии, а возможно, и нет. Попробуйте сделать сначала, с тремя средами, как я написал выше. Если будет повторяться, напишите, пожалуйста, вместе подумаем. Кстати, какая у Вас версия? Берите Бета, 1.3 или 1.4, ознакомительную не берите, ну ее.
(17)
Однако же, Эклипс жива 🙂 Вот уже Neon в дело пошла, EDT пока на Mars. Если за 17 лет не умерла, значит, живучая. Может, дустом ее? :)))
(18) Спасибо за совет. я взял послледюю версию с сайта users — 1.4 silver. Вечером дома попробую с 3-мя средами потестить
Спасибо за видеоурок. Особенно понравилась надпись «Мы победили»)
(21) Спасибо, что досмотрели кино до конца 🙂
Отлично и очень подробно объясняете, благодарю!!!
(23) Благодарю на добром слове! Ну, я все же преподаватель профессиональный 🙂
«Хорошая мысля́ приходит опосля́».
Настраивать среду Отладки совсем не обязательно, можно каждый раз компилировать плагин в Рабочую среду и запускать ее. По времени — практически то же самое, но эксперименты получаются более чистыми.
1С выложила развернутое описание возможностей последнего бета-релиза EDT 1.4:
http://v8.1c.ru/overview/release_IDE_beta_14/
(26) Пробовал разрабатывать на Эклипсе.. в Виндовс 7- ошибки сыпятся (но я лет 5 не переустанавливал его.. может на чистом будет лучше?)
А вот в Линуксе (Убунту) — всё совсем грусно.. даже пустая конфа не создалась 🙁
Так что я пока отложил момент близкого знакомства.
(27)
А пока непосредственной необходимости нет, так и интереса не будет к этой теме. Появится необходимость и интерес — сразу все проблемы разрулите как по волшебству 🙂
(25)
Настраивать среду Отладки совсем не обязательно, можно каждый раз компилировать плагин в Рабочую среду и запускать ее. По времени — практически то же самое, но эксперименты получаются более чистыми.
Ляпнул не подумав 🙁
Ведь в этом случае мы лишаемся возможности работать в Java-отладчике. Так что совет получился далеко не универсальный.
Господа, чтобы накатить среду разработки плагинов на EDT 1.7, нужно брать компоненты из репозитория по адресу:
http://download.eclipse.org/eclipse/updates/4.7/R-4.7.1a-201710090410/
Выбираются те же два пункта, что и в первом видео.
.
(31) Странно, но у меня не отображается текст Вашего сообщения. Видна какая-то точка. Хотя в «колокольчике» видно, что текст есть.
(32) Не мог кое-что сделать, но позже разобрался, поэтому стер первоначальное сообщение
(33) Понятно.
(34) Почему-то для EDT 1.7 не получается сделать пункт контекстного меню. При открытии редактора модуля в логах пишет предупреждение:
Failed to load class «FormExtendedTooltip» for package «model».
При этом в главном меню пункт есть (не удалял как было в видео).
Если запускаю отладку eclipse-application без использования этого плагина, то предупреждения нет
(30)
Спасибо за поправочку 🙂
(36) Да не за что, все равно, как пишет (35), не получается ничего.
Я сам еще не пробовал на 1.7, не до этого. Но походу результат известен. EDT весь в дырках.
(37) Получилось дойти по последнего пункта первого видео, где происходит импорт конфигурации, почему то после импорта конфигурация имеет не стандартное дерево конфигурации, а как будто исходники *mdo и *bsl и т.д. , что могу делать не так?
EDT (1.7.0.v602)
(38) У меня было подобное, конфигурация открывалась как Java-проект. На партнерке разрабы 1С посоветовали «выполнить полную сборку проекта (Проект -> Очистить,,,), после выполнения по исходным файлам в проекте будет перестроена модель, индексы и пр.»©
Помогло.
Много, значит, сломали в 1.7…
(39) Есть, получилось, спасибо, буду идти дальше по роликам.
Николай , добрый день ! А как можно реализовать вызов хэндлера при наборе текста?
(41) Добрый день! Извините, я сейчас отошел от этой темы.
По-видимому, надо копать класс XTextEditor, смотреть его слушалки. Справка в сети есть, я тогда нашел легко.
Нашел решение . Возможно оно несколько , но работает. В bindings в sequence поставить «SPACE».
(43) А, ну, может быть, все проще, чем я думал 🙂
Согласен, прежде чем ковырять программный функционал, всегда надо хорошо поискать в параметрических настройках.
(45) Прошу прощения, Игорь, я сейчас отошел от этой темы. Подзабыл основательно.
Да и версия у Вас наверняка уже не та, что в видео. Уже два года ведь прошло.
(19) Здравствуйте!
Понимаю что прошло уже 2 года, но не могли бы вы подсказать, как определить версию Eclipse RCP для текущей версии EDT?
Два года назад это был Mars 2.
На последнюю версию EDT 1.9.3.53 не получается подобрать нужную версию Eclipse.
Может где-то в самой EDT указано? Не нашел 🙂
(47) Добрый день!
В каталоге поставки должен где-то быть файлик, который называется .eclipseproduct (именно так, с точки начинается и расширения не имеет). Откройте его в блокноте, там должен быть параметр вида platformversion= и после него идет номер версии Эклипс.
А если Вы говорите о пакете для разработки плагинов, то его лучше накатывать не из дистрибутива Эклипс, как я показывал в роликах, а из репозитория, адрес которого для текущей версии надо поискать на сайте Эклипс — как показано в комментарии [30].
Впрочем, все могло измениться, я отошел от этой темы.
Соответствие номера версии и названия Эклипс можно увидетьздесь .
(46) Вы озвучивали, что у 1С есть где то документация по разработке плагинов. А где ее почитать? Что то не нашел.
(49) На ИТС смотрели?
Если не там, то в поставке EDT.
Тоже не нашел ту документацию, которая показана в ролике. В папке установки EDT есть документация, но другая. Там нет много того, что показано в той, которая в ролике. Например индекса поиска.
(51) Думаю, неудивительно — уже три года прошло, версия EDT совсем другая.
К сожалению, я давно отошел от этой темы.