EDT
0. boln 998 22.12.16 00:19 Сейчас в теме

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

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

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. ekaruk 4717 22.12.16 15:21 Сейчас в теме
Спасибо.
Полезная тема. Пора уже начинать ее развивать.
Пробовала разрабатывать плагины к Eclipse, но знаний в этом направлении очень не хватает.
kaa_; CyberCerber; boln; +3 Ответить
2. boln 998 22.12.16 16:14 Сейчас в теме
(1) Я так и понял, что многие уже хотели бы начать разработку плагинов, но концентрированной информации нет.

Советую начать тренировки уже на EDT 1.4 beta "Silver", она только что вышла, потому что неизвестно, что можно ожидать в отношении плагинов в следующих версиях :)
3. Rustig 1189 23.12.16 09:12 Сейчас в теме
(0) к существующей 1c 8.2 ОФ и 8.3 УФ как это относится?
корум; +1 2 Ответить
4. boln 998 23.12.16 13:20 Сейчас в теме
(3) Пока никак. Конфигуратор EDT на данный момент находится в стадии бета-тестирования.
5. MSConfig 3 24.12.16 01:05 Сейчас в теме
Спасибо. Подписался на ваш канал.
6. boln 998 24.12.16 10:58 Сейчас в теме
(5) Спасибо Вам. Правда, на ближайшее время нет планов еще что-либо записывать, но будущее покажет.
7. o.nikolaev 193 25.12.16 10:43 Сейчас в теме
Николай, отличный материал, спасибо! На мой взгляд EDT - потрясающе перспективная вещь. Навскидку, например - скорее всего можно будет разработать плагин, с помощью которого удобно разрабатывать и, самое главное, отлаживать правила обмена.
8. boln 998 25.12.16 13:29 Сейчас в теме
(7) Олег, согласен. Вещь очень перспективная. Производительности бы побольше, но, я полагаю, у Java есть резервы повышения производительности.
9. o.nikolaev 193 25.12.16 14:08 Сейчас в теме
(8)
я полагаю, у Java есть резервы повышения производительности.

Я только Графит себе ставил пока, на мой взгляд производительность была типичная для Eclipse, впрочем, это конечно субъективное мнение. Жду не дождусь рабочую версию, намерен как можно быстрее перейти на EDT.
10. boln 998 25.12.16 14:50 Сейчас в теме
(9) Я могу чисто субъективно предположить, что разработчики ЕDT будут действовать так. Бета-версии делать чисто на Java, а в боевой версии, когда будут отлажены основные алгоритмы, для реализации критических по производительности процессов (загрузка-выгрузка конфигурации и т. п.) привлечь нативный код на C++. Благо, уже есть куча dll для обычного Конфигуратора, где эти алгоритмы уже реализованы и работают. Почему бы их не запрячь?.. Правда, кроссплатформенность ставит тут свои новые задачи... Впрочем, это только мои досужие рассуждения.
11. o.nikolaev 193 25.12.16 15:06 Сейчас в теме
(10) Интересная мысль. Для Java существуют инструменты оптимизации, тот же Exelsior например. Поживем, увидим, как говорится. :-)
12. boln 998 25.12.16 15:09 Сейчас в теме
(11) Ну да, я тоже думаю, что EDT делает толковая команда и они сделают все, чтобы новое детище предстало во всем блеске :)
13. orefkov 1973 25.12.16 16:45 Сейчас в теме
(10)
Так ведь сейчас так и происходит - загрузка/выгрузка конфигурации делается нативными средствами 1С-Предприятия, написанными на С++, разве нет?
14. boln 998 25.12.16 17:02 Сейчас в теме
(13) Сомнительно, Александр. Я дал поиск dll по всему каталогу с EDT, нашлось всего 9 dll, из них 4, судя по названию, относятся к swt, 2 - к http, одна - эклипсовская и две называются localfile. Косвенно по буквам в названии можно судить о их назначении. Вряд ли.
15. boln 998 25.12.16 19:18 Сейчас в теме
(13) Вы частично правы.
Документация:
В том случае, если EDT выполняет загрузку из xml-файлов или информационной базы «1С:Предприятия», используются файлы, которые формируются в конфигураторе системы «1С:Предприятие» (команда Конфигурация – Выгрузить конфигурацию в файлы) или с помощью аналогичной команды пакетного запуска конфигуратора.

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

Решением здесь будет, видимо, создание собственного механизма EDT для загрузки-выгрузки с использованием нативного кода.
16. vadim1011985 65 28.12.16 00:02 Сейчас в теме
Здравствуйте , разбираю Ваше первое видео, не получается импортировать проект в среду отладки - выдает сообщение следующего содержания

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

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

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

при запуске импортирования вылетает ошибка старта сервисов проекта.
Прикрепленные файлы:
18. boln 998 28.12.16 12:42 Сейчас в теме
(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, ознакомительную не берите, ну ее.
20. vadim1011985 65 28.12.16 13:51 Сейчас в теме
(18) Спасибо за совет. я взял послледюю версию с сайта users - 1.4 silver. Вечером дома попробую с 3-мя средами потестить
17. artem_from_minsk 28.12.16 00:44 Сейчас в теме
Эх, забыл я уже про eclipse. Прошлый век. Лучше бы jetBrainse дали по колдовать над EDT. Не было бы это началом конца.
19. boln 998 28.12.16 12:48 Сейчас в теме
(17)
Эх, забыл я уже про eclipse. Прошлый век. Лучше бы jetBrainse дали по колдовать над EDT. Не было бы это началом конца.
Однако же, Эклипс жива :) Вот уже Neon в дело пошла, EDT пока на Mars. Если за 17 лет не умерла, значит, живучая. Может, дустом ее? :)))
47. Dzamba 18.12.18 10:47 Сейчас в теме
(19) Здравствуйте!
Понимаю что прошло уже 2 года, но не могли бы вы подсказать, как определить версию Eclipse RCP для текущей версии EDT?
Два года назад это был Mars 2.
На последнюю версию EDT 1.9.3.53 не получается подобрать нужную версию Eclipse.
Может где-то в самой EDT указано? Не нашел :)
48. boln 998 18.12.18 20:12 Сейчас в теме
(47) Добрый день!

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

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

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

Соответствие номера версии и названия Эклипс можно увидеть здесь.
21. davydoff 7 03.01.17 18:29 Сейчас в теме
Спасибо за видеоурок. Особенно понравилась надпись "Мы победили")
22. boln 998 03.01.17 20:36 Сейчас в теме
(21) Спасибо, что досмотрели кино до конца :)
23. kruglay 102 09.01.17 14:05 Сейчас в теме
Отлично и очень подробно объясняете, благодарю!!!
24. boln 998 09.01.17 14:07 Сейчас в теме
(23) Благодарю на добром слове! Ну, я все же преподаватель профессиональный :)
25. boln 998 12.01.17 16:16 Сейчас в теме
"Хорошая мысля́ приходит опосля́".
Настраивать среду Отладки совсем не обязательно, можно каждый раз компилировать плагин в Рабочую среду и запускать ее. По времени - практически то же самое, но эксперименты получаются более чистыми.
29. boln 998 05.02.17 16:59 Сейчас в теме
(25)
"Хорошая мысля́ приходит опосля́".
Настраивать среду Отладки совсем не обязательно, можно каждый раз компилировать плагин в Рабочую среду и запускать ее. По времени - практически то же самое, но эксперименты получаются более чистыми.
Ляпнул не подумав :(
Ведь в этом случае мы лишаемся возможности работать в Java-отладчике. Так что совет получился далеко не универсальный.
26. boln 998 20.01.17 11:19 Сейчас в теме
1С выложила развернутое описание возможностей последнего бета-релиза EDT 1.4:
http://v8.1c.ru/overview/release_IDE_beta_14/
tormozit; +1 Ответить
27. kote 499 05.02.17 15:00 Сейчас в теме
(26) Пробовал разрабатывать на Эклипсе.. в Виндовс 7- ошибки сыпятся (но я лет 5 не переустанавливал его.. может на чистом будет лучше?)
А вот в Линуксе (Убунту) - всё совсем грусно.. даже пустая конфа не создалась :(

Так что я пока отложил момент близкого знакомства.
28. boln 998 05.02.17 16:32 Сейчас в теме
(27)
Так что я пока отложил момент близкого знакомства.
А пока непосредственной необходимости нет, так и интереса не будет к этой теме. Появится необходимость и интерес - сразу все проблемы разрулите как по волшебству :)
30. boln 998 27.12.17 14:43 Сейчас в теме
Господа, чтобы накатить среду разработки плагинов на EDT 1.7, нужно брать компоненты из репозитория по адресу:
http://download.eclipse.org/eclipse/updates/4.7/R-4.7.1a-201710090410/

Выбираются те же два пункта, что и в первом видео.
Прикрепленные файлы:
36. Hamsik 13 15.02.18 15:29 Сейчас в теме
37. boln 998 15.02.18 15:49 Сейчас в теме
(36) Да не за что, все равно, как пишет (35), не получается ничего.
Я сам еще не пробовал на 1.7, не до этого. Но походу результат известен. EDT весь в дырках.
38. Hamsik 13 15.02.18 17:26 Сейчас в теме
(37) Получилось дойти по последнего пункта первого видео, где происходит импорт конфигурации, почему то после импорта конфигурация имеет не стандартное дерево конфигурации, а как будто исходники *mdo и *bsl и т.д. , что могу делать не так?
EDT (1.7.0.v602)
39. boln 998 15.02.18 17:36 Сейчас в теме
(38) У меня было подобное, конфигурация открывалась как Java-проект. На партнерке разрабы 1С посоветовали "выполнить полную сборку проекта (Проект -> Очистить,,,), после выполнения по исходным файлам в проекте будет перестроена модель, индексы и пр."©
Помогло.

Много, значит, сломали в 1.7...
40. Hamsik 13 15.02.18 17:38 Сейчас в теме
(39) Есть, получилось, спасибо, буду идти дальше по роликам.
31. Tank-yarsk 06.02.18 16:37 Сейчас в теме
32. boln 998 06.02.18 22:17 Сейчас в теме
(31) Странно, но у меня не отображается текст Вашего сообщения. Видна какая-то точка. Хотя в "колокольчике" видно, что текст есть.
33. Tank-yarsk 07.02.18 09:31 Сейчас в теме
(32) Не мог кое-что сделать, но позже разобрался, поэтому стер первоначальное сообщение
34. boln 998 07.02.18 13:38 Сейчас в теме
35. Tank-yarsk 07.02.18 17:34 Сейчас в теме
(34) Почему-то для EDT 1.7 не получается сделать пункт контекстного меню. При открытии редактора модуля в логах пишет предупреждение:

Failed to load class "FormExtendedTooltip" for package "model".

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

Если запускаю отладку eclipse-application без использования этого плагина, то предупреждения нет
41. redeye911 5 30.03.18 17:58 Сейчас в теме
Николай , добрый день ! А как можно реализовать вызов хэндлера при наборе текста?
42. boln 998 30.03.18 20:32 Сейчас в теме
(41) Добрый день! Извините, я сейчас отошел от этой темы.
По-видимому, надо копать класс XTextEditor, смотреть его слушалки. Справка в сети есть, я тогда нашел легко.
43. redeye911 5 31.03.18 19:50 Сейчас в теме
Нашел решение . Возможно оно несколько , но работает. В bindings в sequence поставить "SPACE".
44. boln 998 31.03.18 19:55 Сейчас в теме
(43) А, ну, может быть, все проще, чем я думал :)
Согласен, прежде чем ковырять программный функционал, всегда надо хорошо поискать в параметрических настройках.
45. igor.svarovskih 6 09.09.18 19:39 Сейчас в теме
Помогите советом пожалуйста. При запуске версии отладки (как в видео) возникает ошибка (скриншоты прилагаю). Вот сам лог:
!MESSAGE Ошибка приложения
!STACK 1
org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError: javax/annotation/PostConstruct
at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:410)
at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:318)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createDefaultHeadlessContext(E4Application.java:491)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createDefaultContext(E4Application.java:505)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:204)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:614)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
at org.eclipse.equinox.launcher.Main.main(Main.java:1472)
Caused by: java.lang.NoClassDefFoundError: javax/annotation/PostConstruct
at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:124)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:399)
... 23 more
Caused by: java.lang.ClassNotFoundException: javax.annotation.PostConstruct cannot be found by org.eclipse.e4.core.di_1.6.100.v20170421-1418
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:433)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
... 25 more

!ENTRY org.eclipse.e4.ui.workbench 4 0 2018-09-09 19:33:37.603
!MESSAGE FrameworkEvent ERROR
!STACK 0
java.lang.NoClassDefFoundError: javax/annotation/PreDestroy
at org.eclipse.e4.core.internal.di.InjectorImpl.disposed(InjectorImpl.java:450)
at org.eclipse.e4.core.internal.di.Requestor.disposed(Requestor.java:156)
at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier$ContextInjectionListener.update(ContextObjectSupplier.java:78)
at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:111)
at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.handleInvalid(TrackableComputationExt.java:74)
at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:178)
at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.dispose(EclipseContextOSGi.java:99)
at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.bundleChanged(EclipseContextOSGi.java:141)
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:213)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:120)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:112)
at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:168)
at org.eclipse.osgi.container.Module.publishEvent(Module.java:476)
at org.eclipse.osgi.container.Module.doStop(Module.java:634)
at org.eclipse.osgi.container.Module.stop(Module.java:498)
at org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:202)
at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule$1.run(EquinoxBundle.java:165)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: javax.annotation.PreDestroy cannot be found by org.eclipse.e4.core.di_1.6.100.v20170421-1418
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:433)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
... 21 more
Прикрепленные файлы:
46. boln 998 09.09.18 22:08 Сейчас в теме
(45) Прошу прощения, Игорь, я сейчас отошел от этой темы. Подзабыл основательно.
Да и версия у Вас наверняка уже не та, что в видео. Уже два года ведь прошло.
49. ZhdanovR 30.04.19 09:02 Сейчас в теме
(46) Вы озвучивали, что у 1С есть где то документация по разработке плагинов. А где ее почитать? Что то не нашел.
50. boln 998 30.04.19 10:55 Сейчас в теме
(49) На ИТС смотрели?
Если не там, то в поставке EDT.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Владивосток
зарплата от 80 000 руб. до 120 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Программист 1С
Екатеринбург
зарплата от 120 000 руб. до 120 000 руб.
Полный день

Руководитель проектов 1С
Санкт-Петербург
Полный день