(1) Я так и понял, что многие уже хотели бы начать разработку плагинов, но концентрированной информации нет.
Советую начать тренировки уже на EDT 1.4 beta "Silver", она только что вышла, потому что неизвестно, что можно ожидать в отношении плагинов в следующих версиях :)
Николай, отличный материал, спасибо! На мой взгляд EDT - потрясающе перспективная вещь. Навскидку, например - скорее всего можно будет разработать плагин, с помощью которого удобно разрабатывать и, самое главное, отлаживать правила обмена.
я полагаю, у Java есть резервы повышения производительности.
Я только Графит себе ставил пока, на мой взгляд производительность была типичная для Eclipse, впрочем, это конечно субъективное мнение. Жду не дождусь рабочую версию, намерен как можно быстрее перейти на EDT.
(9) Я могу чисто субъективно предположить, что разработчики ЕDT будут действовать так. Бета-версии делать чисто на Java, а в боевой версии, когда будут отлажены основные алгоритмы, для реализации критических по производительности процессов (загрузка-выгрузка конфигурации и т. п.) привлечь нативный код на C++. Благо, уже есть куча dll для обычного Конфигуратора, где эти алгоритмы уже реализованы и работают. Почему бы их не запрячь?.. Правда, кроссплатформенность ставит тут свои новые задачи... Впрочем, это только мои досужие рассуждения.
(13) Сомнительно, Александр. Я дал поиск dll по всему каталогу с EDT, нашлось всего 9 dll, из них 4, судя по названию, относятся к swt, 2 - к http, одна - эклипсовская и две называются localfile. Косвенно по буквам в названии можно судить о их назначении. Вряд ли.
В том случае, если EDT выполняет загрузку из xml-файлов или информационной базы «1С:Предприятия», используются файлы, которые формируются в конфигураторе системы «1С:Предприятие» (команда Конфигурация – Выгрузить конфигурацию в файлы) или с помощью аналогичной команды пакетного запуска конфигуратора.
Выходит, загрузка сейчас происходит через предварительную выгрузку конфигурации в файлы, которую делает установленная версия 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) поэтому были глюки , но теперь проблема в другом
при запуске импортирования вылетает ошибка старта сервисов проекта.
Здравствуйте , разбираю Ваше первое видео, не получается импортировать проект в среду отладки - выдает сообщение следующего содержания
"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, ознакомительную не берите, ну ее.
(19) Здравствуйте!
Понимаю что прошло уже 2 года, но не могли бы вы подсказать, как определить версию Eclipse RCP для текущей версии EDT?
Два года назад это был Mars 2.
На последнюю версию EDT 1.9.3.53 не получается подобрать нужную версию Eclipse.
Может где-то в самой EDT указано? Не нашел :)
В каталоге поставки должен где-то быть файлик, который называется .eclipseproduct (именно так, с точки начинается и расширения не имеет). Откройте его в блокноте, там должен быть параметр вида platformversion= и после него идет номер версии Эклипс.
А если Вы говорите о пакете для разработки плагинов, то его лучше накатывать не из дистрибутива Эклипс, как я показывал в роликах, а из репозитория, адрес которого для текущей версии надо поискать на сайте Эклипс - как показано в комментарии [30].
Впрочем, все могло измениться, я отошел от этой темы.
Соответствие номера версии и названия Эклипс можно увидеть здесь.
"Хорошая мысля́ приходит опосля́".
Настраивать среду Отладки совсем не обязательно, можно каждый раз компилировать плагин в Рабочую среду и запускать ее. По времени - практически то же самое, но эксперименты получаются более чистыми.
"Хорошая мысля́ приходит опосля́".
Настраивать среду Отладки совсем не обязательно, можно каждый раз компилировать плагин в Рабочую среду и запускать ее. По времени - практически то же самое, но эксперименты получаются более чистыми.
Ляпнул не подумав :(
Ведь в этом случае мы лишаемся возможности работать в Java-отладчике. Так что совет получился далеко не универсальный.
(26) Пробовал разрабатывать на Эклипсе.. в Виндовс 7- ошибки сыпятся (но я лет 5 не переустанавливал его.. может на чистом будет лучше?)
А вот в Линуксе (Убунту) - всё совсем грусно.. даже пустая конфа не создалась :(
Так что я пока отложил момент близкого знакомства.
Так что я пока отложил момент близкого знакомства.
А пока непосредственной необходимости нет, так и интереса не будет к этой теме. Появится необходимость и интерес - сразу все проблемы разрулите как по волшебству :)
(36) Да не за что, все равно, как пишет (35), не получается ничего.
Я сам еще не пробовал на 1.7, не до этого. Но походу результат известен. EDT весь в дырках.
(37) Получилось дойти по последнего пункта первого видео, где происходит импорт конфигурации, почему то после импорта конфигурация имеет не стандартное дерево конфигурации, а как будто исходники *mdo и *bsl и т.д. , что могу делать не так?
EDT (1.7.0.v602)
(41) Добрый день! Извините, я сейчас отошел от этой темы.
По-видимому, надо копать класс XTextEditor, смотреть его слушалки. Справка в сети есть, я тогда нашел легко.
(43) А, ну, может быть, все проще, чем я думал :)
Согласен, прежде чем ковырять программный функционал, всегда надо хорошо поискать в параметрических настройках.
Помогите советом пожалуйста. При запуске версии отладки (как в видео) возникает ошибка (скриншоты прилагаю). Вот сам лог:
!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
(45) Прошу прощения, Игорь, я сейчас отошел от этой темы. Подзабыл основательно.
Да и версия у Вас наверняка уже не та, что в видео. Уже два года ведь прошло.
Тоже не нашел ту документацию, которая показана в ролике. В папке установки EDT есть документация, но другая. Там нет много того, что показано в той, которая в ролике. Например индекса поиска.