1С:EDT ("Eclipse-Конфигуратор"). Пример разработки плагина




Видеоматериал, демонстрирующий пример разработки несложного работоспособного плагина для 1C:Enterprise Development Tools

Конфигуратор нового поколения 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 мин.)

51 Comments

  1. ekaruk

    Спасибо.

    Полезная тема. Пора уже начинать ее развивать.

    Пробовала разрабатывать плагины к Eclipse, но знаний в этом направлении очень не хватает.

    Reply
  2. boln

    (1) Я так и понял, что многие уже хотели бы начать разработку плагинов, но концентрированной информации нет.

    Советую начать тренировки уже на EDT 1.4 beta «Silver», она только что вышла, потому что неизвестно, что можно ожидать в отношении плагинов в следующих версиях 🙂

    Reply
  3. boln

    (3) Пока никак. Конфигуратор EDT на данный момент находится в стадии бета-тестирования.

    Reply
  4. MSConfig

    Спасибо. Подписался на ваш канал.

    Reply
  5. boln

    (5) Спасибо Вам. Правда, на ближайшее время нет планов еще что-либо записывать, но будущее покажет.

    Reply
  6. o.nikolaev

    Николай, отличный материал, спасибо! На мой взгляд EDT — потрясающе перспективная вещь. Навскидку, например — скорее всего можно будет разработать плагин, с помощью которого удобно разрабатывать и, самое главное, отлаживать правила обмена.

    Reply
  7. boln

    (7) Олег, согласен. Вещь очень перспективная. Производительности бы побольше, но, я полагаю, у Java есть резервы повышения производительности.

    Reply
  8. o.nikolaev

    (8)

    я полагаю, у Java есть резервы повышения производительности.

    Я только Графит себе ставил пока, на мой взгляд производительность была типичная для Eclipse, впрочем, это конечно субъективное мнение. Жду не дождусь рабочую версию, намерен как можно быстрее перейти на EDT.

    Reply
  9. boln

    (9) Я могу чисто субъективно предположить, что разработчики ЕDT будут действовать так. Бета-версии делать чисто на Java, а в боевой версии, когда будут отлажены основные алгоритмы, для реализации критических по производительности процессов (загрузка-выгрузка конфигурации и т. п.) привлечь нативный код на C++. Благо, уже есть куча dll для обычного Конфигуратора, где эти алгоритмы уже реализованы и работают. Почему бы их не запрячь?.. Правда, кроссплатформенность ставит тут свои новые задачи… Впрочем, это только мои досужие рассуждения.

    Reply
  10. o.nikolaev

    (10) Интересная мысль. Для Java существуют инструменты оптимизации, тот же Exelsior например. Поживем, увидим, как говорится. 🙂

    Reply
  11. boln

    (11) Ну да, я тоже думаю, что EDT делает толковая команда и они сделают все, чтобы новое детище предстало во всем блеске 🙂

    Reply
  12. orefkov

    (10)

    Так ведь сейчас так и происходит — загрузка/выгрузка конфигурации делается нативными средствами 1С-Предприятия, написанными на С++, разве нет?

    Reply
  13. boln

    (13) Сомнительно, Александр. Я дал поиск dll по всему каталогу с EDT, нашлось всего 9 dll, из них 4, судя по названию, относятся к swt, 2 — к http, одна — эклипсовская и две называются localfile. Косвенно по буквам в названии можно судить о их назначении. Вряд ли.

    Reply
  14. boln

    (13) Вы частично правы.

    Документация:

    В том случае, если EDT выполняет загрузку из xml-файлов или информационной базы «1С:Предприятия», используются файлы, которые формируются в конфигураторе системы «1С:Предприятие» (команда Конфигурация – Выгрузить конфигурацию в файлы) или с помощью аналогичной команды пакетного запуска конфигуратора.

    Выходит, загрузка сейчас происходит через предварительную выгрузку конфигурации в файлы, которую делает установленная версия 1С:Предприятие, затем эти файы загружаются в рабочее пространство EDT — а тут уже работает Java. Вот где кошмар и ужас, вот почему загрузка типовых происходит по несколько часов.

    Решением здесь будет, видимо, создание собственного механизма EDT для загрузки-выгрузки с использованием нативного кода.

    Reply
  15. vadim1011985

    Здравствуйте , разбираю Ваше первое видео, не получается импортировать проект в среду отладки — выдает сообщение следующего содержания

    «Some project cannot bo imported because they already exist in workspace or their project description file is corrupted»

    Поэтому возник вопрос — должны ли совпадать пути к папке рабочего пространства (workspace) для среды отладки и среды разработки ?

    Р.S. — тут разобрался , пересоздал среду запуска и запустил по умолчанию ничего не стал менять ( до этого зачем-то поменял путь к папке workspace) поэтому были глюки , но теперь проблема в другом

    при запуске импортирования вылетает ошибка старта сервисов проекта.

    Reply
  16. artem_from_minsk

    Эх, забыл я уже про eclipse. Прошлый век. Лучше бы jetBrainse дали по колдовать над EDT. Не было бы это началом конца.

    Reply
  17. boln

    (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, ознакомительную не берите, ну ее.

    Reply
  18. boln

    (17)

    Эх, забыл я уже про eclipse. Прошлый век. Лучше бы jetBrainse дали по колдовать над EDT. Не было бы это началом конца.

    Однако же, Эклипс жива 🙂 Вот уже Neon в дело пошла, EDT пока на Mars. Если за 17 лет не умерла, значит, живучая. Может, дустом ее? :)))

    Reply
  19. vadim1011985

    (18) Спасибо за совет. я взял послледюю версию с сайта users — 1.4 silver. Вечером дома попробую с 3-мя средами потестить

    Reply
  20. davydoff

    Спасибо за видеоурок. Особенно понравилась надпись «Мы победили»)

    Reply
  21. boln

    (21) Спасибо, что досмотрели кино до конца 🙂

    Reply
  22. kruglay

    Отлично и очень подробно объясняете, благодарю!!!

    Reply
  23. boln

    (23) Благодарю на добром слове! Ну, я все же преподаватель профессиональный 🙂

    Reply
  24. boln

    «Хорошая мысля́ приходит опосля́».

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

    Reply
  25. boln

    1С выложила развернутое описание возможностей последнего бета-релиза EDT 1.4:

    http://v8.1c.ru/overview/release_IDE_beta_14/

    Reply
  26. kote

    (26) Пробовал разрабатывать на Эклипсе.. в Виндовс 7- ошибки сыпятся (но я лет 5 не переустанавливал его.. может на чистом будет лучше?)

    А вот в Линуксе (Убунту) — всё совсем грусно.. даже пустая конфа не создалась 🙁

    Так что я пока отложил момент близкого знакомства.

    Reply
  27. boln

    (27)

    Так что я пока отложил момент близкого знакомства.

    А пока непосредственной необходимости нет, так и интереса не будет к этой теме. Появится необходимость и интерес — сразу все проблемы разрулите как по волшебству 🙂

    Reply
  28. boln

    (25)

    «Хорошая мысля́ приходит опосля́».

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

    Ляпнул не подумав 🙁

    Ведь в этом случае мы лишаемся возможности работать в Java-отладчике. Так что совет получился далеко не универсальный.

    Reply
  29. boln

    Господа, чтобы накатить среду разработки плагинов на EDT 1.7, нужно брать компоненты из репозитория по адресу:

    http://download.eclipse.org/eclipse/updates/4.7/R-4.7.1a-201710090410/

    Выбираются те же два пункта, что и в первом видео.

    Reply
  30. Tank-yarsk

    .

    Reply
  31. boln

    (31) Странно, но у меня не отображается текст Вашего сообщения. Видна какая-то точка. Хотя в «колокольчике» видно, что текст есть.

    Reply
  32. Tank-yarsk

    (32) Не мог кое-что сделать, но позже разобрался, поэтому стер первоначальное сообщение

    Reply
  33. boln

    (33) Понятно.

    Reply
  34. Tank-yarsk

    (34) Почему-то для EDT 1.7 не получается сделать пункт контекстного меню. При открытии редактора модуля в логах пишет предупреждение:

    Failed to load class «FormExtendedTooltip» for package «model».

    При этом в главном меню пункт есть (не удалял как было в видео).

    Если запускаю отладку eclipse-application без использования этого плагина, то предупреждения нет

    Reply
  35. Hamsik

    (30)

    Спасибо за поправочку 🙂

    Reply
  36. boln

    (36) Да не за что, все равно, как пишет (35), не получается ничего.

    Я сам еще не пробовал на 1.7, не до этого. Но походу результат известен. EDT весь в дырках.

    Reply
  37. Hamsik

    (37) Получилось дойти по последнего пункта первого видео, где происходит импорт конфигурации, почему то после импорта конфигурация имеет не стандартное дерево конфигурации, а как будто исходники *mdo и *bsl и т.д. , что могу делать не так?

    EDT (1.7.0.v602)

    Reply
  38. boln

    (38) У меня было подобное, конфигурация открывалась как Java-проект. На партнерке разрабы 1С посоветовали «выполнить полную сборку проекта (Проект -> Очистить,,,), после выполнения по исходным файлам в проекте будет перестроена модель, индексы и пр.»©

    Помогло.

    Много, значит, сломали в 1.7…

    Reply
  39. Hamsik

    (39) Есть, получилось, спасибо, буду идти дальше по роликам.

    Reply
  40. redeye911

    Николай , добрый день ! А как можно реализовать вызов хэндлера при наборе текста?

    Reply
  41. boln

    (41) Добрый день! Извините, я сейчас отошел от этой темы.

    По-видимому, надо копать класс XTextEditor, смотреть его слушалки. Справка в сети есть, я тогда нашел легко.

    Reply
  42. redeye911

    Нашел решение . Возможно оно несколько , но работает. В bindings в sequence поставить «SPACE».

    Reply
  43. boln

    (43) А, ну, может быть, все проще, чем я думал 🙂

    Согласен, прежде чем ковырять программный функционал, всегда надо хорошо поискать в параметрических настройках.

    Reply
  44. igor.svarovskih
    Reply
  45. boln

    (45) Прошу прощения, Игорь, я сейчас отошел от этой темы. Подзабыл основательно.

    Да и версия у Вас наверняка уже не та, что в видео. Уже два года ведь прошло.

    Reply
  46. Dzamba

    (19) Здравствуйте!

    Понимаю что прошло уже 2 года, но не могли бы вы подсказать, как определить версию Eclipse RCP для текущей версии EDT?

    Два года назад это был Mars 2.

    На последнюю версию EDT 1.9.3.53 не получается подобрать нужную версию Eclipse.

    Может где-то в самой EDT указано? Не нашел 🙂

    Reply
  47. boln

    (47) Добрый день!

    В каталоге поставки должен где-то быть файлик, который называется .eclipseproduct (именно так, с точки начинается и расширения не имеет). Откройте его в блокноте, там должен быть параметр вида platformversion= и после него идет номер версии Эклипс.

    А если Вы говорите о пакете для разработки плагинов, то его лучше накатывать не из дистрибутива Эклипс, как я показывал в роликах, а из репозитория, адрес которого для текущей версии надо поискать на сайте Эклипс — как показано в комментарии [30].

    Впрочем, все могло измениться, я отошел от этой темы.

    Соответствие номера версии и названия Эклипс можно увидеть здесь.

    Reply
  48. ZhdanovR

    (46) Вы озвучивали, что у 1С есть где то документация по разработке плагинов. А где ее почитать? Что то не нашел.

    Reply
  49. boln

    (49) На ИТС смотрели?

    Если не там, то в поставке EDT.

    Reply
  50. tormozit

    Тоже не нашел ту документацию, которая показана в ролике. В папке установки EDT есть документация, но другая. Там нет много того, что показано в той, которая в ролике. Например индекса поиска.

    Reply
  51. boln

    (51) Думаю, неудивительно — уже три года прошло, версия EDT совсем другая.

    К сожалению, я давно отошел от этой темы.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *