Разработчики «1С» рассказали об Eclipse как платформе для 1C:Enterprise Development Tools

Возврат к списку

09.03.2017     
В материале говорится как об общих принципах Eclipse, так и об ее отдельных компонентах, применяемых в EDT.

Как пишут авторы в блоге на «Хабрахабре», они попробовали «рассмотреть некоторые основы архитектуры Eclipse как платформы для построения интегрированных средств разработки и дать начальное представление о компонентах Eclipse, образующих фундамент технологической платформы для “нового Конфигуратора” 1C:Предприятие, 1C:Enterprise Development Tools».

В первой части материала охарактеризованы общие аспекты и дана другая обзорная информация. В частности, перечислены и кратко описаны основные компоненты Eclipse Platform, а также рассмотрена Eclipse Java development tools (JDT), первая интегрированная среда разработки, появившаяся в Eclipse.

Что касается отдельных компонентов, то, помимо Eclipse Platform, предоставляющей базовую инфраструктуру, используются:

  • Eclipse Modeling Framework (EMF) – предоставляет общие средства моделирования структурированных данных;
  • Eclipse Xtext – предоставляет инфраструктуру «текстового моделирования»;
  • Eclipse Handly – подпроект проекта верхнего уровня Eclipse Technology, который появился в результате начальной контрибуции кода в Eclipse Foundation, осуществленной фирмой «1C» в 2014 году. 

Последнему по понятным причинам уделено наибольшее внимание. Если вкратце, коммитерами Handly являются сотрудники фирмы, а сам проект «небольшой, но занимает достаточно уникальную нишу в Eclipse: главной его целью является поддержка разработки handle-based моделей».

Напомним, что в декабре прошлого года вышла бета-версия 1.4.0 1C:EDT, а в готовящемся обновлении платформы «1С:Предприятие» появились дополнительные возможности, «заточенные» под эту среду разработки. 


Комментарии
1. Ivan Khorkov (vano-ekt) 820 09.03.17 16:00 Сейчас в теме
а где камменты? тут и на хабре их нет...
2. DenisCh Гейтс (DenisCh) 09.03.17 16:04 Сейчас в теме
Еклипс не нужен (с)
Даёшь Вим. Нативно, в cf!
3. Сан Саныч (herfis) 55 09.03.17 16:28 Сейчас в теме
Так а что тут комментировать?
Ну, рассказали об архитектуре Eclipse. Ну да, такая архитектура...
Не будь ее, не было бы и EDT. С нуля рисовать альтернативную IDE никто не стал бы.
4. Евгений Колтович (depresnjak) 2 09.03.17 16:30 Сейчас в теме
(1) Так рано ещё - все работают =)
5. Сан Саныч (herfis) 55 09.03.17 16:42 Сейчас в теме
Вот, кстати, интересно - сколько времени занимает хваленая инкрементальная сборка конфы какого-нить ERP, если буковку в модуле поменять?
6. Павел Одинцов (Darklight) 09.03.17 17:11 Сейчас в теме
(5) По идеи достаточно быстро должно быть, т.к. в платформе уже есть функция частичного обновления (загрузки) конфигурации по внешнему файлу(ам) (XML).
7. Антон Степанов (Stepa86) 633 09.03.17 17:44 Сейчас в теме
(5) С учетом работы через агента и инкрементальной загрузки - должно быть сравнимо с работой из конфигуратора. Но пока не выйдет ЕДТ мы этого не узнаем.
8. Виталий Попов (Сурикат) 129 09.03.17 21:22 Сейчас в теме
EDT медленная и прожорливая штука даже для УТ, пока что нормально в нем поработать не удалось =(
Фоновые операции EDT загрузили диск под 99% (хоть они SSD) и процессор i3 (правда не самый последний) под 90%...
9. Вадим . (tindir) 10.03.17 04:23 Сейчас в теме
EDT норм по ресурсам. это ж IDE. Я когда у себя VS включаю, тоже все немного подтупливать начинает=)
10. Игорь Фелькер (Brawler) 282 10.03.17 08:00 Сейчас в теме
(9)
немного подтупл

Вот VS и эту поделку EDT даже сравнивать противозаконно...
VS замечательный продукт по сравнению с EDT.
1С могли бы VS Shell или как-его там заюзать под создание EDT однако же поперлись на Eclipse...
В общем тут больше дело вкуса.
11. Артем Титеев (a_titeev) 10.03.17 08:57 Сейчас в теме
Имхо, Эклипс очень неудобная среда, к тому-же тормозящая. В свое время с удовольствием ушел с нее на Android Studio, когда делал что-то под мобилы. Тоже тупенькая, но намного удобнее. А VS - это да. Это идеал, практически.
depresnjak; +1 1 Ответить
12. Артем Титеев (a_titeev) 10.03.17 09:15 Сейчас в теме
И не пойму 1С. Почему было не взять для этого дела Visual Studio Code???
13. Алексей Роза (DoctorRoza) 10.03.17 09:27 Сейчас в теме
(12)
И не пойму 1С. Почему было не взять для этого дела Visual Studio Code???
Видимо потому, что Java проще в пониманию и освоении! Плюсы же созданы даже не для средних умов!
14. Артем Титеев (a_titeev) 10.03.17 11:46 Сейчас в теме
(13) То есть не хватило мозгов, хотите сказать? :)
Вообще, за внешней простотой java скрывается много. Нормальную прикладуху написать - не каждый осилит.
Но здесь то речь идет о выборе IDE, а не ЯП...
15. Светлана . (Swetlana) 9 10.03.17 12:07 Сейчас в теме
(12) да вроде же нет разницы, какую ide использовать. Какую хочешь ту и используешь.
16. Perlamutor Perlamutor (PerlAmutor) 10.03.17 13:11 Сейчас в теме
Пробовал бету EDT и Eclipse отдельно. Тормоза и глюки те еще.
Qt Creator рулит.
17. Алексей Роза (DoctorRoza) 10.03.17 15:35 Сейчас в теме
(14) ИМХО, работа с Eclipse, как раз и направлена, чтобы объединить теплое с мягким 1С и нормальный ЯП! Иначе Конфигуратор просто не получил бы дальнейшего развития! Тем более, можно было и Code::Blocks взять за основу и т.п.! Надо посмотреть, что в итоге получится! По крайней мере, тренд идет положительный.
18. Алексей Роза (DoctorRoza) 10.03.17 15:37 Сейчас в теме
(15) не совсем так! Eclipse открыт и бесплатен, а вот, например, IDEA - нет!
boln; bow; +2 Ответить
19. Александр Орефков (orefkov) 1450 10.03.17 15:45 Сейчас в теме
Меня, конечно, можно считать заинтересованным лицом :), но я считал и буду считать, что EDT - ошибочный путь развития платформы 1С, распыляющий силы её разработчиков и приводящий к необходимости дублирования реализации одного функционала на разных языках, и как следствие - увеличивающий потенциальные угрозы багов.
Конфигуратор у 1С сам по себе очень и очень хорошая среда разработки, и если бы те ресурсы, которые были потрачены на разработку EDT были вложены в развитие Конфигуратора - результат бы был много лучше. Возможно, фирма 1С не смогла найти дополнительных квалифицированных сиплюсплюсников на доработку платформы, и взяла вместо них джаверов - может быть. Однако как показал опыт, при должной доработке конфигуратора, чтобы пилить плюшки к нему - вовсе не обязательно знать С++ или Java - хватает и умения работать с толстыми формами плюс знание javascript или OneScript - то есть под силу обычному одинэснику.
depresnjak; Vladimir87; Solovyeff; a_titeev; omut; Mnemonik; +6 Ответить 3
20. Александр Орефков (orefkov) 1450 10.03.17 15:49 Сейчас в теме
(17)
Вы немного путаете среду разработки и ЯП.
Это как думать, что вы станете писателем, если начнёте вместо Блокнота тексты набирать в Ворде.
21. Игорь Фелькер (Brawler) 282 10.03.17 20:48 Сейчас в теме
(19) Поддержу. Тоже не понимаю наклепа они ринулись писать второй конфигуратор... Если так сложно разрабатывать на С++, то ну запилили бы часть этого самого конфигуратора на жабе или C#, потом постепенно все перевели на один язык разработки.
MS VS тоже же как я понял изначально была на С++ или просто С, хз, но теперь там явно львиная часть на С# написана, и ничего, бегает добротно.
22. Николай Больсунов (boln) 906 10.03.17 21:53 Сейчас в теме
(21)
Тоже не понимаю наклепа они ринулись писать второй конфигуратор... Если так сложно разрабатывать на С++, то ну запилили бы часть этого самого конфигуратора на жабе или C#, потом постепенно все перевели на один язык разработки.
Походу ключевое слово - расширяемость. Эклипс: а) расширяемая; б) халявная.
23. Николай Больсунов (boln) 906 10.03.17 22:02 Сейчас в теме
(5)
Вот, кстати, интересно - сколько времени занимает хваленая инкрементальная сборка конфы какого-нить ERP, если буковку в модуле поменять?
Что-то у меня тоже эта "инкрементальная сборка" энтузиазма не вызывает. Не радикальное решение вопроса производительности, "паллиатив".
24. Игорь Фелькер (Brawler) 282 10.03.17 22:15 Сейчас в теме
(22)
Походу ключевое слово - расширяемость. Эклипс: а) расширяемая; б) халявная.

Как будто бы нельзя в родном конфигураторе сделать механизмы плагинов/расширений.
25. Николай Больсунов (boln) 906 10.03.17 22:19 Сейчас в теме
(24)
Как будто бы нельзя в родном конфигураторе сделать механизмы плагинов/расширений.
Они на форуме не раз говорили, что такое направление признано неперспективным.
https://partners.v8.1c.ru/forum/topic/1522592
26. Игорь Фелькер (Brawler) 282 10.03.17 22:45 Сейчас в теме
(25) к сожалению, а может быть и к лучшему, доступа к партнерке по ссылке я не имею)) не натрудил еще за 6 лет 1С-иния)))
27. Николай Больсунов (boln) 906 10.03.17 22:46 Сейчас в теме
(26) Ну, кто-нибудь из коллег на работе подсобит :)
28. Игорь Фелькер (Brawler) 282 10.03.17 22:49 Сейчас в теме
(27) ))) не, такие нет. Фиксики мы все)))
29. Николай Больсунов (boln) 906 11.03.17 12:09 Сейчас в теме
(13)
Видимо потому, что Java проще в пониманию и освоении! Плюсы же созданы даже не для средних умов!
Чем проще? Указателей нет? Зато есть понятие интерфейса, и это еще приучить себя надо - мыслить больше интерфейсами, чем классами.
30. Сисой Сисой (Сисой) 78 11.03.17 12:11 Сейчас в теме
31. Сисой Сисой (Сисой) 78 11.03.17 12:13 Сейчас в теме
Напишите ваше сообщение
(28) Фиксик фиксику рознь. У тех кто начинал в нулевые, доступ к партнерскому форуму вполне может быть (через "Комплект специалиста....").
32. Николай Больсунов (boln) 906 11.03.17 12:14 Сейчас в теме
(31) Там еще нужен сертификат спеца и чтобы у фирмы была куплена NFR-версия.
33. Артем Титеев (a_titeev) 11.03.17 17:58 Сейчас в теме
(19) Абсолютно согласен.
Неперспективность направления развития конфигуратора, вообще, понятна. Это подпись под тем, что 1С более не будет фирмой разрабатывающей, собственно, программы. То есть все хотят отдать партнерам на разработку - от конфигураций, до развития платформы разработки конфигураций. А естественно, для этого надо дать халявную расширяемую среду. В принципе, никто, наверное, особо и не против. Но непонятен выбор инструмента.
Так что запасаемся SSD, большими объемами оперативы и прочее. Интересно, люди писали про тесты - УТ 11 билдится минут 50 :)
34. Артем Титеев (a_titeev) 11.03.17 18:15 Сейчас в теме
Похоже и поддержка тогда уже совсем не так должна будет выглядеть. Развернуть полноценную среду у клиента нереально будет практически. И операции типа - поковырял отладчиком, нашел что делать или исправил, более тоже не прокатят. Просто тупо попробую импортировать Комплексную сегодня ради интереса.
Хотя, да. Это уже решено. И вроде как окончательно...
35. DenisCh Гейтс (DenisCh) 11.03.17 18:55 Сейчас в теме
(29) Ой, а что в плюсах интерфейсов нет? Ещё в 97м их рисовал для построения дерева классов...
36. Николай Больсунов (boln) 906 11.03.17 21:31 Сейчас в теме
(35)
Ой, а что в плюсах интерфейсов нет? Ещё в 97м их рисовал для построения дерева классов...
Имел в виду конструкцию языка interface. В Java она прямо подталкивает "проектировать интерфейсы, а не реализацию"©.
37. Артем Титеев (a_titeev) 11.03.17 21:35 Сейчас в теме
Тащемта, взял последнюю EDT с releases. Комплексная 2 (релиз не самый свежий, что-то от конца 2016 года наверное).
Итак, развертка среды (скачка и установка Java и EDT) + скачка/обновление платформы (не захотел работать с используемой мной версией, а она не самая свежая) - 20-25 минут.
Немного поднастроил среду под себя + регистрация инсталляций платформы в EDT - 2 минуты.
Загрузка:
- Выгрузка с помощью 1С (ее сама среда запускает) файлов конфигураций - 1 час примерно.
- Потом - загрузка файлов - в принципе быстро - минут 3-5.
- Непонятно что, с надписями типа Resource synchronization. На этой операции среда ожидаемо сожрала всю доступную память и висела в статусе "не отвечает", иногда отдупляясь и все же обновляя интерфейс - минут 15.
Потом неожиданно модальный бегунок пропал, но какие-то действия продолжались (чего-то типа Расчет ссылочного индекса). Видимо заработала хваленая эклипсовская многозадачность. То есть ничего сделать нельзя толком, так как все ресурсы съедены и все тормозит и "не отвечает", но вроде как уже можно - доступно меню, ввод. Но потом, еще минут через 5 все просто зависло сожрав еще и 55% процессорного времени, иногда увеличивая его по 75%, а иногда наоборот падая до 1%.
Застрелился Проводник :) Весь этот процесс, показывая 47% процентов прогресса в правом нижнем углу, занял еще чуть больше 1 часа.
И тут фиаско! Неожиданно перескочило на 48% и выдало ошибку "An internal error occurred during: "Perform operations...". Waiting has been interrupted by timeout".
Идиотизм. Не выдержал - прервал. Эта гадость из памяти не выгружается при выходе, снимаем процесс. Судя по сообщениям на партнерке - при возникновении ошибок, ничего не загрузится... И не вижу смысла еще час ждать до следующей ошибки. Больше не буду пока, подожду следующей беты.

По прежнему не хавает - бизнес-процессы, гео-схемы, оформление отчетов, веб-сервисы. Все это осталось в папке unknown. Не знаю почему, но не вкурило два отчета

АнализСостоянияНалоговогоУчетаПоНалогуНаПрибыль и АнализСостоянияНалоговогоУчетаПоНДС. Не смотрел еще. Наверное из за их красивеньких форм.

Тестил на обычном ноуте - i5, 2,2GHz 2 ядра 4 лог.процессора, 4 ГБ ОЗУ. Все лежит на диске не SSD, но в принципе быстром, HGST 7200 об. Диск постоянно съеден на 100%, память тоже. Антивирусник перед этим остановил, остановил также SQLEXPRESS и еще все то, что могло ресурсы освободить.
Вот над чем и нужно будет поработать. Даешь SSD под разработку и много памяти.
38. Игорь Фелькер (Brawler) 282 12.03.17 11:39 Сейчас в теме
(37) да шляпа этот EDT. Тоже пробовал ее и в ранних версиях и в версии 1.3, тормоза одуренные (Win 10, i7 4770, 16Gb, SSD), стоит запустить ее, открыть пару тройку форм в конфигурации и у тебя уже нет одного гига памяти, а дальше только хуже...
Интерфейс эклипса ИМХО убожество...

Если 1С уберет конфигуратор, то уровень цен на услуги по обновлению и разработке возрастут, а из-за этого начнется отток клиентов)))
Скорее всего 1C будут тянуть две среды разработки и далее, спрашивается нафига они вообще затеяли писать ETD и кинули туда столько ресурсов?...
Сервер 1С так и будет написан на С++, клиенты вероятнее всего тоже на С++ будут...
И в итоге им придется поддерживать на разных языках общие по функционалу программные коды... те что в Сервере и Клиентах и те что в EDT.
39. Виталий Попов (Сурикат) 129 12.03.17 12:50 Сейчас в теме
(19)
го функционала на разных языках, и как следствие - увеличивающий потенциальные угрозы багов.

8.4 пишется на java...
Видимо 1С постепенно уходит от С++ и переходит на java и за-за этого и делается новый конфигуратор, а не развивается старый
40. Александр Орефков (orefkov) 1450 12.03.17 13:34 Сейчас в теме
(39)
8.4 пишется на java...

Щито????
Чем-то можете подтвердить столь сильное заявление?
41. Виталий Попов (Сурикат) 129 12.03.17 14:08 Сейчас в теме
(40)
В документации к 8.4.1 почти все компоненты требуют установленный пакет JRE
http://its.1c.ru/db/v841doc#bookmark:v8:TI000000030

Наверное нужно уточнить, что не вся 8.4.1, а только новый кластер
42. Александр Орефков (orefkov) 1450 12.03.17 15:38 Сейчас в теме
(41)
А, ну так так это такие же сервисные обёртки вокруг движка, как и EDT. Переписать саму платформу на Java - имхо нереально.
43. Николай Больсунов (boln) 906 12.03.17 15:44 Сейчас в теме
(42)
А, ну так так это такие же сервисные обёртки вокруг движка, как и EDT. Переписать саму платформу на Java - имхо нереально.
Только непонятно, зачем это вообще понадобилось. Какой профит? Хотя бы предположения есть у кого-нибудь?
44. Виталий Попов (Сурикат) 129 12.03.17 23:23 Сейчас в теме
(43)
Ну мне кажется, что легче поддержка кроссплатформенности (это чисто пальцем в небо). Если кто-то расскажет чем Objective C++ отличается от Java будет очень здорово =)
Была очень интересная статья на хабре про методы борьбы с утечками памяти...И там было высказано мнение, что сборщик Java лучше, чем умные указатели. На управляемых формах утечки памяти - это просто кошмар. Все время перезапускать рабочие процессы кластера из-за них ИМХО не есть хорошо
(42)
То что всю платформу переписать нереально, это да
Но кластер-то полностью новый. Т.е. менеджер кластера, балансировщик, все на java...И явно написаны с нуля, микросервисов раньше не было.
Еще и архитектора на java была вакансия у 1С (http://1c.ru/rus/firm1c/vacan/vacancy.jsp?id=218 ) =)
Т.е. в этом направлении движутся =)
45. Николай Больсунов (boln) 906 13.03.17 11:30 Сейчас в теме
(44) Спасибо за гипотезу. Это действительно могло послужить основанием.

Им бы только не увлечься Java в ущерб производительности...
46. Александр Орефков (orefkov) 1450 13.03.17 13:23 Сейчас в теме
(44)
Нет такого - "Objective C++"
Есть "Objective C", который широко применяется в IOS разработке, и "С++", на котором написана платформа 1Cv8.
От Java отличается всем :)
47. Биг Босс (BigBoss) 2 13.03.17 13:58 Сейчас в теме
Я думал они уже забросили это направление)
48. Артем Титеев (a_titeev) 13.03.17 15:02 Сейчас в теме
(41)
В документации к 8.4.1 почти все компоненты требуют установленный пакет JRE
да и все примеры управления кластером были на жабе. а еще апач зукипер радует. короче зоопарк реальный уже становится. притом что из этого будет в какой момент глючить, не понятно пока.
Книга Эксперта по технологическим вопросам будет походу в нескольких томах под каждый компонент и платформу... :)
49. Артем Титеев (a_titeev) 13.03.17 15:08 Сейчас в теме
(44)
Еще и архитектора на java была вакансия у 1С (http://1c.ru/rus/firm1c/vacan/vacancy.jsp?id=218 ) =)
Т.е. в этом направлении движутся =)
в принципе 1С упорно давно java продвигает. все эти детские клубы программистов и прочее. понятно что не просто так. уходят в нее для кроссплатформы...
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа