Как хранится разрабатываемая конфигурация в 1с edt
Перейти к содержимому

Как хранится разрабатываемая конфигурация в 1с edt

  • автор:

Конфигурация хранится в виде файлов

1C:EDT хранит конфигурацию в виде файлов собственного формата на диске. Это дает несколько технологических преимуществ.

Самым главным преимуществом, конечно же, является простая возможность использования сторонних систем контроля версий. В 1C:EDT существует встроенная поддержка Git , поэтому с этой системой вы можете работать сразу же и без оговорок.

Технология плагинов Eclipse позволяет вам использовать и другие системы контроля версий. Вы можете использовать их в индивидуальных целях для создания архива своих разработок и их версионирования. Однако пользоваться функциями объединения изменений или групповой разработки не рекомендуется. Без специальной адаптации «родное» объединение XML-файлов может не всегда корректно работать с точки зрения «1С:Предприятия 8». В случае с Git такая адаптация была выполнена, и всеми его функциями вы можете пользоваться в полном объеме.

Еще один положительный момент хранения конфигурации в виде XML-файлов заключается в том, что при необходимости вы имеете доступ к ним в любой момент. Перейдя в перспективу Файлы , вы можете работать с проектом не в виде дерева конфигурации, а в виде набора папок и файлов. Вы можете открывать файлы, редактировать их, копировать и так далее. Это может оказаться полезным в каких-то редких, технологических, сценариях работы.

Обзор 1C:Enterprise Development Tools. Профессиональная IDE для 1С-разработчика

Обзор 1C:Enterprise Development Tools. Профессиональная IDE для 1С-разработчика

Возможности платформы “1С:Предприятие” с точки зрения удобства разработки были всегда, мягко говоря, бедными. Конфигуратор сильно уступал профессиональным IDE, а компания 1С не спешила с обновлениями. Лишь спустя 13 лет, она решилась на глобальный пересмотр основного инструмента прикладного программиста.

Немного истории

Компания 1С выбрала конкурентоспособную нишу и попыталась одним выстрелом убить несколько зайцев: создать лучшую программу для ведения бухгалтерского учета и платформу, позволяющую создавать различные приложения (конфигурации).

Первым 100% попаданием стал выпуск платформы 7.х. Только представьте, решения, созданные на ее базе моментально распространились по всей стране, а вместе с ними появилась новая отрасль разработки — разработка под платформу 1С:Предприятие. Тогда новоиспеченные разработчики стали появляться как грибы после дождичка в четверг, а на рынке образовался новый вид ИТ услуг — сопровождение и внедрение 1С.

Все видели перспективы продаж и сопровождения продуктов на базе 1С, поэтому в “программирование” хлынули все. Настоящих программистов, мигрирующих со “взрослых” языков программирования, было мало, поэтому никаких серьезных требований и претензий к культуре разработки не было. Возможно поэтому, компания 1С особо не пыталась развивать главный инструмент разработчика (конфигуратор). Нет спроса — нет предложений.

Котел с “1С:Предприятие 7” кипел несколько лет пока окончательно не начал разваливаться. Чудовищные ограничения платформы, проблемы с производительностью и масштабированием намекали на переосмысления общей концепции разработки и архитектуры.

Особо креативные и смышленые энтузиасты даже пытались сделать подобную среду разработки, ориентированную на ведение бухгалтерского учета. Проект назывался “Ананас”, но ничего серьезного из него так не вышло. Тем временем, 1С приступила к планомерному апгрейду своей платформы и в итоге представила абсолютно новое решение — “1С:Предприятие 8”.

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

Триумфальный релиз не ударил по тормозам, а наоборот задал новый ритм развития функциональных возможностей платформы. Новые релизы стали выходить постоянно и каждый из них привносил что-нибудь новое в платформу (а заодно что-нибудь и ломал).

Ядро и прикладные технологии активно совершенствовались, а вот про самый главный компонент, “Конфигуратор”, видимо позабыли. По сравнению с 7-й веткой он стал значительно лучше, но все равно проигрывал профессиональным IDE.

Вопросы по совершенствованию конфигуратора стали все чаще возникать на профильных конференциях, но трансформироваться в конкретные ответы они смогли совсем недавно.

В конце апреля, компания 1С представила тестовую версию абсолютно нового инструмента для разработки решений на базе восьмой версии платформы — 1C:Enterprise Development Tools. Инструмент абсолютно новый (это не очередная версия привычного конфигуратора) и именно он должен открыть новую главу в разработке новых бизнес-решений.

Стартовая форма EDT

Профессиональная IDE для 1С

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

Разрабатываемая конфигурация хранится в информационной базе и взаимодействовать с ней возможно только из конфигуратора. Других средств для работы с кодом/объектами вне конфигуратора попросту нет. Точней один вариант есть, но пользоваться им затруднительно. Да и официальная методология обходит его стороной.

Обновленный дизайн форм

Второй главный минус — несоответствие времени. В отличии от внутреннего функционала, конфигуратор развивается крайне медленно. Из-за этого подавляющее число разработчиков вынуждены самостоятельно решать задачи, которые в продвинутых IDE уже давно решены.

Взять хотя бы простой пример — покрытие кода тестами. Идея классная, но вменяемой реализации в 1С ее нет и быть не может. Есть велосипеды, но это все же не то. Более того, функционал конфигураторов отличается от версии к версии и при поддержке конфигураций, требующих более старую версию платформы, приходиться терпеть ограничения старых версий конфигураторов.

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

Редактор кода в EDT

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

Архитектура Eclipse позволяет безболезненно расширять функционал и подстраиваться под любую технологию. Благодаря этому, Eclipse одинаково хорошо работает с различными языками программирования.

Если в начале своего пути он был ориентирован в первую очередь на Java разработчиков, то сегодня никаких границ не существует вовсе. За счет плагинов, отдельных сборок, Eclipse сыскал популярность у C++, PHP, JavaScript, Python и других языках программирования.

Новый подход к разработке

Первое на что сразу стоит обратить внимание — для разработки больше не требуется подключение к информационной базе. ИБ необходима для тестирования и отладки создаваемого решения. В связи с этим, конфигурация переехала в файловую систему и располагается там в виде множества отдельных файлов (описание форм, модулей и т.д.). Непосредственно в ИБ она будет попадать во время сборки проекта.

Небольшое архитектурное изменение в виде смены формата хранения конфигурации сразу же решило несколько глобальных проблем. Самая важная из них — теперь нет преград для использования внешних инструментов для работы с исходным кодом. Весь код решения лежит в файловой системе и мы можем с ним делать все что угодно: модифицировать другими программами; создавать собственные сценарии для проверки; защищать исходный код; и многое другое.

Импорт конфигурации

Само собой, переезд в файловую систему и Eclipse в частности, положительно сказался на применение систем контроля версий. Да, никаких проблем с использованием GIT’а больше нет. Скажу даже больше, теперь не имеет значения какую систему контроля версий использовать. Требование по факту одно — выбранную технологию должен поддерживать Eclipse или вы должны обладать знаниями как их подружить. Про использование GIT мы поговорим отдельно.

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

Безусловно, пока говорить о полноценной поддержки OS X не приходится. Создать конфигурацию стало возможным, но протестировать решение на данном этапе не получится по причине отсутствия версии платформы “1С:Предприятие” для OS X (уже есть тестовая версия). Это вопрос времени и наверняка он будет решен к моменту релиза первой стабильной версии.

Резюмируя выше сказанное получаем, что теперь процесс разработки будет таким: пишем конфигурацию -> пушим код в определенную ИБ (или несколько) -> тестируем/исполняем.

Самые интересные возможности EDT

Делать обзор всего функционала EDT я не стану. У Eclipse слишком много функций из коробки и многие из них применимы к разработке под 1С:Предприятие. Мы посмотрим на наиболее интересные из них, которые прямо сейчас могут помочь 1С-разработчикам.

GIT/SVN вместо хранилище конфигурации

1С-разработчики с самого начала были обделены возможностью применения профессиональных систем контроля версий. Из-за особенностей хранения исходных кодов конфигурации, программистам были всегда недоступны такие популярные инструменты как: GIT, SVN и т.д. Вместо этого, компания «1С» пыталась продвигать собственную разработку под названием «Хранилище конфигурации».

У 1С-разработчиков появилась, пускай бедная, но все же возможность командной работы. Мучительные вещи вроде объединения конфигурации перед релизом, а заодно и случайные затирания чужих изменений остались в прошлом. Правда применение хранилища конфигураций добавило новые трудности. Оно периодически сыпалось, на больших конфигурациях жутко тормозила, а при активной командной разработке и вовсе превращалось в стопорный механизм.

В EDT эта проблема решена на уровне самой среды. Хранилище оставили в там, где оно и было, а вместо него добавили поддержку GIT/SVN. Последний сегодня применяется крайне редко, а вот GIT стал настоящим стандартом.

Работа с GIT стала возможной благодаря пересмотру алгоритма хранения кода конфигурации. Разработчики из коробки получают все плюшки GIT, а заодно возможность воспользоваться услугами многочисленных облачных git-хостингов (GitHub, BitBucket и т.д.). Тут даже неважно GIT вы предпочитаете, SVN, или что-то еще. Интегрироваться вполне реально с любой системой контроля версий.

Взаимодействие с GIT выполняется с помощью простых мастеров. Давайте попробуем создать в EDT новый проект и импортировать в него конфигурацию из репозитория, подготовленного компанией 1С.

Переходим в «Навигатор 1С:Предприятие» и в контекстном меню дерева конфигурации выбираем пункт «Импортировать». Мастер импорта предложит различные источники, но нас будет интересовать непосредственно Git. Выбираем “Project from Git”.

Клонирование репозитория

Далее нам будет предложено выбрать репозиторий: локальный или удаленный. Поскольку мы хотим клонировать существующий репозиторий, то выбираем «Clone URI». На следующем шаге указываем источник — https://github.com/1C-Company/dt-demo-configuration.git. Дальше остается только выбрать ветку, которую мы собираемся клонировать (мастер) и запустить процесс. Результат клонирования — проект из 490 файлов.

Выбор источника для клонироваиня

Одна IDE — разные платформы исполнения

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

Работа с несколькими конфигурациями

Пока наличие установленных платформ необходимо (для исполнения, отладки разрабатываемого решения), но сама разработка будет вестись в одной среде. Таким образом, программист может одновременно работать над несколькими проектами — разрабатываемые конфигурации одновременно отображаются в “Навигаторе 1С предприятия”.

Для удобства отладки/запуска можно сразу выбрать платформу и определенную ИБ. Причем создаваемую конфигурацию можно таргетировать сразу на несколько информационных баз.

Расширение функционала IDE

К каждой версии платформы 1С:Предприятия, сторонние разработчики старались создать дополнительные инструменты. В 1С:Предприятие 7.7 был TurboConf/1C++, а в восьмерке — Снегопат (https://snegopat.ru). Каждый из этих инструментов привносил в конфигуратор дополнительный функционал, которого так не хватало разработчикам.

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

Список установленных модулей

С переходом на EDT проблема должна полностью разрешиться. Eclipse прекрасно расширяется за счет плагинов, поэтому возможность написать собственную надстройку доступна прямо из коробки. Плагинов для Eclipse уже не мало, поэтому многие вещи переносить попросту не придется.

Продвинутый редактор кода

Большую часть времени разработки, программист проводит в редакторе кода. Хорошо, когда редактор умный и ориентирован на упрощение труда разработчика. В стандартном конфигураторе есть ряд «фишек», но “большим” IDE он все же проигрывает.

Наглядный список ошибок конфигурации

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

  • Шаблоны для автоматической генерации кода;
  • Проверка конфигурации на лету. Ошибки находятся автоматически и среда предлагает решения для их исправления;
  • Поддержка тегов в коде (TODO, FIXME и т.д.)
  • Формирование схем модулей;
  • Валидация запросов. Ошибки в синтаксисе, отсутствие полей — информация об ошибке становится доступной до исполнения кода платформой 1С:Предприятие;
  • Продвинутые инструменты рефакторинга, которые можно расширить своими паттернами;
  • Конструктор запроса;
  • Конструктор СКД;
  • Расширенная контекстная подсказка для методов/свойств объектов прямо в редакторе кода.
  • и т.д.

Список тегов

Валидация на лету

В целом работать с новым редактором кода приятно. Пока до конца не проработана подсветка кода, то наличие новых функций от Eclipse и доступность стандартных для каждого 1С’ка инструментов вроде “Конструктор запроса” и “Конструктор СКД” позволяют быстро адаптироваться к новой среде.

Обновленный отладчик

Механизм отладки в EDT был существенно пересмотрен. В первую очередь это отразилось на внутренних механизмах. Что это означает? Первое и самое важное — создана обертка, позволяющая использовать возможности отладки Eclipse, которые несомненно шире, чем у встроенного в конфигуратор. Например, теперь в процессе отладки можно изменять значения переменных.

Однако, изменение отразились на совместимости. Пока отладка приложений доступна только при использовании версии платформы, входящий в поставку EDT (8.3.6). В состав этой версии входит сервер отладки (dbgs.exe), позволяющий выполнять отладку конфигурации по протоколу HTTP.

Возможность удаленной отладки

Сервер является координатором процесса отладки. Во-первых, он хранит списки предметов отладки, а во-вторых является посредником между EDT и исполняемым решением.

Не бывает плюсов без минусов

Прочитав обзор функциональных возможностей, и мои прогнозы на светлое будущее, сильно радоваться не стоит. “Как?!” — возмутятся 1С-разработчики. Разве не об этом мы так долго мечтали? Не хочется принимать не свойственную мне роль пессимиста, но на данном этапе релиза, отчетливо прослеживается ряд проблем.

Начнем с самого главного — фундамента. Eclipse — проверенный временем инструмент со своими особенностями. Развивается достаточно давно и его успела полюбить целая армия разработчиков. Среда универсальная и одинаково полезна для разработки на различных языках программирования: Java, C++, PHP, JavaScript и т.д. Более того, Eclipse — это в первую очередь открытая платформа, на основе которой реально построить и другие приложения (не IDE). Не буду вдаваться в подробности. Их вы сможете прочитать на сайте проекта или в wikipedia.

Eclipse требователен к ресурсам

Мощь и универсальность Eclipse оспорить сложно. Но также сложно не признать его существенный недостаток — прожорливость к ресурсам. Не буду приводить тестов, а ограничусь собственным опытом. Этой средой я начал пользоваться еще в начале 2008 года. Тогда Eclipse выделялся на фоне конкурентов и стал для меня лучшей IDE. Функционал из коробки, кросс-платформенность, сторонние плагины срезали шероховатости и убеждали терпеть постоянные тормоза.

Eclipse требователен к объему оперативной памяти, а ее много не бывает. Тогда у меня было 4 гигабайта, но даже они не позволяли долго и комфортно работать с Eclipse. Периодически возникали тормоза и ошибки вроде Out of Memory.

Я использовал Eclipse сугубо для разработки на PHP, а это просто работа с текстом. В мире 1С все несколько иначе. Разработчику приходится работать с конфигурацией, а они бывают очень большими. Что говорить, если даже последние версии топовых решений притормаживают в стоковом конфигураторе.

В “1C:Enterprise Development Tools” я попробовал поработать одновременно с несколькими проектами (это одна из долгожданных для меня функций). Конфигурации обоих решений содержали слишком много объектов (УТ11, БП 3) и пока шел импорт, EDT успел съесть почти 4 гигабайта оперативной памяти. Объем не маленький, учитывая, что я толком ничего не делал. При тестировании и публикации конфигураций эта цифра будет значительно больше, а следовательно появится новые требования к железу.

Справедливо заметить, что перед нами пока тестовая версия продукта и вроде как обижаться на производительность не стоит. Однако, мне, как любителю Eclipse в прошлом, пока слабо вериться, что 1С сможет подтянуть его производительность до приемлемого уровня. Возможно, ставка делается на время. EDT будут “пилить” не один год, а за это время уровень железа существенно подрастет. Но это опять же в теории. С 2008 года я пережил 3 апгрейда своей рабочей машины, но Eclipse у меня все равно тормозит.

Ошибка дизайнера форм

Тут можно долго рассуждать, но пока ваш покорный слуга видит большие проблемы с быстродействием. Чем больше в Eclipse напичкают “примочек”, тем сильней возрастут требования к железу.

На мой взгляд, компания 1С выбрала не самую удачную основу для этого проекта. Тем более на рынке профессиональных IDE уже давно лидирует JetBrains. У них прекрасно получаются IDE и возможно имело смысл воспользоваться их опытом. Опять же, это всего лишь мои домыслы. Возможно, команда разработчиков EDT видят пути оптимизации выбранной технологии.

Вместо заключения

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

1С:Предприятие давно позволяет создавать самые разнообразные решения (в том числе и для мобильных платформы), но пока их главные потребители — российский компании. Переход на профессиональный инструмент вроде Eclipse запросто может подогреть интерес со стороны западных разработчиков, а именно это сегодня необходимо компании 1С. Российский рынок завоеван, пришло время новых побед.

1C:Enterprise Development Tools
Изменяем процесс разработки на 1С

Начнем знакомство с новой IDE прежде всего с установки. Здесь ждет первый неприятный сюрприз: я его называю «здравствуй JVM». При всем моем уважении к Java и куче серьезных продуктов класса Enterprise, на нем разработанных, все-таки интерфейс приложений, использующих JVM, для пользователей ОС Windows является как минимум непривычным (речь не идет о веб-интерфейсе в данном случае, конечно), если не сказать хуже. Визуально Java-приложения далеки даже от Windows Forms для .Net, не говоря уже о новых интерфейсных возможностях приложений, основанных на WPF или UWP. Таким образом, мы увидим красивую заставку (см. рис. 1).

Рисунок 1. Заставка и логотип Enterprise Development Tools

Рисунок 1. Заставка и логотип Enterprise Development Tools

Но далее откроется сильно «искуроченный» Eclipse. Да, тот самый Eclipse, который с каждым днем теряет популярность у Java-разработчиков, уже весьма существенно уступая IntelliJ IDEA и NetBeans. Сама рабочая область выглядит, как показано на рис. 2.

Рисунок 2. Потребление памяти 1C:EDT

Как видим, все очень сильно напоминает конфигуратор. Действительно, с точки зрения интерфейсных деталей создатели EDT постарались сделать переход на нее как можно менее болезненным для прикладных разработчиков. Собственно, остается только сесть и начать работать. Для прикладного разработчика разница практически незаметна. Страшно даже представить, каких трудов стоила 1С реализация некоторых функций и гладкое встраивание их внутрь Eclipse IDE. Архитектурно эторешение кажется весьма странным – частичное использование готовой IDE даст преимущества в начале проекта, позволяя достаточно быстро реализовать основные функции. Но если речь зайдет о каких-то тонкостях, а тем более о копировании поведения с текущей IDE (конфигуратора), как правило, встраивание внутрь существующей IDE становится более трудоемкой операцией по мере роста функциональности итогового решения.

На первом этапе знакомства радостно только то, что новую IDE нет необходимости устанавливать (впрочем, для Java-приложений это скорее правило, чем исключение). Просто нужно скачать с сайта 1С комплект EDT, разархивировать его и запустить, предварительно не забыв установить JRE, конечно.

Прежде чем переходить к более детальному описанию отличий и основных функций, хотел бы подчеркнуть, что лично я целиком и полностью поддерживаю наконец появившееся стремление 1С улучшить жизнь разработчиков, особенно работающих на крупных проектах, желание сделать практически открытую и расширяемую среду разработки. Все описанные недостатки вполне подлежат исправлению в последующих релизах. А темпы, с которыми развивается данный проект, просто поражают. Ребята молодцы и делают очень правильное дело.

Теперь о главном, для чего это нужно: текущая концепция разработки, которой до сих пор следует 1С, так или иначе ориентирована главным образом на работу одного разработчика. Разработка полностью привязана к конкретной информационной базе. Понятие «репозиторий» у 1С весьма своеобразное.

Шаг в сторону 1С:Enterprise Development Tools – это попытка отвязать разработку от информационной базы, использовать нормальную систему управления версиями, сделать возможными совместные правки одних и тех же объектов разными разработчиками

Шаг в сторону EDT – это попытка отвязать разработку от информационной базы, использовать нормальную систему управления версиями, сделать возможными совместные правки одних и тех же объектов разными разработчиками, интегрироваться с системами контроля версий (в частности, с git), использовать ветвления. По сути дела, с появлением EDT для 1С стало возможным внедрять gitflow в процесс разработки.

Теперь тоже можно создавать ветки, выполнять их merge, запускать автоматические тесты и выкатывать ветку master в production-среду. Это существенный шаг вперед по сравнению с тем, что было ранее. Наличие соответствующих инструментов позволит крупным проектам развиваться проще и быстрее, потому как по достижении определенного количества участников команды проекты разработки на 1С начинают «буксовать».

Надеюсь, мне удалось подчеркнуть важность и нужность наличия такого инструмента, как EDT, и передать то нетерпение, с которым данный продукт ожидается. Я написал «ожидается» в будущем времени, несмотря на наличие и регулярные обновления коммерческой версии данного продукта, потому как не верю, что он останется в текущем его виде. Также не хочется верить в то, что вся разработка EDT будет свернута. Сейчас есть достаточно широкий перечень недостатков, и тем не менее сEDT уже можно работать, что я бы и стал делать, если у вас, к примеру, вся логика сосредоточена в нескольких объектах метаданных или в нескольких модулях, которые жизненно необходимо модифицировать нескольким разработчикам, чтобы не тормозить течение проекта.

Ну а теперь о грустном… А грустное начинается уже сразу после запуска IDE. С открытым проектом она достаточно прожорлива к объему потребляемой памяти. Вот так, к примеру, это выглядит у меня в диспетчере задач (см. рис. 3).

Рисунок 3. Внешний вид 1С:EDT

Это, конечно, издержки использования JVM и нагрузки Eclipse не совсем теми задачами, для которых она была разработана. Но в современных компьютерах разработчиков, как правило, не менее 8-16 Гб памяти, поэтому можно считать, что 3-4 Гб на запуск и работу с любимой IDE мы можем себе позволить. Только вот конфигуратор 1С с той же информационной базой и таким же, в сущности, набором функций (а по большому счету и куда большим) требует себе всего около 200 Мб оперативной памяти. Данный факт кажется несколько несправедливым.

Второй неприятный сюрприз ждет при попытке начать работу. Если в списке информационных баз нажать на кнопку «Импорт конфигурации» (см. рис. 4), то можно достаточно долго наблюдать процесс переноса конфигурации в Eclipse для работы с ней. Как видим, данная процедура уже практически исключает возможность использования EDT для оперативной работы с кучей разных баз одного разработчика. Ожидание скорее всего будет неоправданным. Длительность его обычно зависит отобъема информационной базы и производительности конечного компьютера. Но нужно настраиваться на ожидание не менее часа.

Рисунок 4. Импорт конфигурации информационной базы в 1C:EDT

Самое интересное заключается в том, что в этот момент времени происходит весьма банальная вещь – запускается конфигуратор и выгружаются все файлы конфигурации штатным образом в текстовый вид. Складывается твердое впечатление, что в компании «1С» команды EDT и основной платформы практически никак не связаны. Наверняка можно было организовать или другой механизм хранения конфигурации в 1С (уже давно пора бы), или более быстрый способ сохранения конфигурации в файлы, которые без EDT мы используем крайне редко, поэтому о его эффективности наверняка никто особенно не заботился. Но вместо этого продукт 1С:EDT использует только штатные возможности конфигуратора 1С, как будто он находится «в стороне» от основной платформы.

Больше всего я, конечно, ждал изменений в редакторе кода. Как поклонник проекта Снегопат [1] я ожидал развитой автоподстановки, потому как Ctrl+Пробел уже давно нажимать отвык. И каково было мое удивление, когда я узнал, что даже для Java в Eclipse эти функции являются не особо продуманными, а для 1С, конечно, опять не предусмотрены.

Вообще редактор кода выглядит примерно следующим образом (см. рис. 5).

Рисунок 5. Внешний вид редактора кода в EDT

Для сравнения: вот так редактор кода у меня выглядит в конфигураторе (см. рис. 6).

Рисунок 6. Внешний вид редактора кода в 1С (для сравнения)

Ну и не смогу удержаться от картинки «как хотелось бы» – на рис. 8 вид редактора кода в MS Visual Studio. В Visual Studio, если ты вводишь хотя бы один новый символ, а IDE тебе при этом ничего не предлагает, значит, нужно задуматься, а не ошибся ли ты синтаксисом. IntelliSence от Microsoft ушел далеко вперед и от Eclipse, и тем более от 1С.

Еще очень раздражает долгий поиск в конфигураторе 1С, в случае если информационная база достаточно большая. Для этого я чаще всего пользуюсь функционалом поиска GitLab. Собственно, можно продолжать им пользоваться – поиск работает медленно. Еще медленнее, чем в конфигураторе.

Не работает «любимое» <Ctrl> + <F1> – синтаксис-помощник теперь открывается по кнопке <F2>, зато будет работать при установке курсора – если открыт на отдельной вкладке. Если привыкнуть, пожалуй, несколько удобнее. Но чем разработчикам не понравился старый добрый <F1> – непонятно.

Несколько удобнее стала работа с отладчиком – иерархия точек останова, сохранение их в файл, очень удобная иерархия вызовов; в общем, все то, к чему уже давно привыкли разработчики на других языках программирования.

Ну и, наконец, на рис. 7 представлено то меню, ради которого это все нужно, – единственная причина перейти на EDT, которая может перевесить в разы все недостатки. Репозиторий теперь никак не привязан к базе. По сути дела, вы можете вести разработку на 1С, вообще не имея никакой базы.

Рисунок 7. Возможности 1C:EDT для совместной работы

Рисунок 8. Внешний вид редактора кода MS Visual Studio

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

1С:EDT и Git: новые возможности командной разработки

Мы уже рассказывали о том, что используем фреймворк Scrum в разработке программных продуктов. Описывали инструменты и технологии, которые применяют Scrum-команды «Компании КомЛайн». В этой статье мы рассмотрим возможности совместной работы в 1С:EDT и Git.

1С:EDT – современная среда разработки, созданная на основе Eclipse, одним из главных достоинств которой является работа с распределенной системой контроля версий Git. Это самостоятельное приложение, которое устанавливается отдельно от платформы.

У 1C:EDT, по сравнению с привычным для разработчиков на языке 1С конфигуратором, есть ряд преимуществ. Отметим только некоторые из них.

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

1С:EDT. Несколько проектов - одно рабочее пространство

2. Встроенные инструменты, например, сервер Apache. В конфигураторе для использования веб-сервисов его необходимо устанавливать отдельно, что требует времени. В 1С:EDT вы видите опубликованные веб-сервисы в самой среде разработки, а не в отдельном окне администрирования веб-сервера.

3. Работа с ошибками и предупреждениями. Каждый раз, меняя конфигурацию или получая из репозитория чьи-то доработки, вы видите ошибки и возможные неполадки.

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

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

В модулях и дереве метаданных в 1С:EDT ошибки и предупреждения визуально подсвечиваются

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

4. Контекст рабочего пространства. При закрытии окна 1С:EDT весь контекст сохраняется. Так что при следующем запуске приложения открываются те же самые вкладки, которыми вы пользовались до закрытия.

Но главное преимущество 1C:EDT — это возможность групповой разработки с помощью децентрализованной системы контроля версий Git.

Работа с хранилищем в случае конфигуратора понятна и проста. Но она накладывает ряд ограничений, таких как, например, невозможность редактировать один и тот же модуль одновременно двумя разработчиками. Git, напротив, заточен для командной работы. Тот же самый модуль в 1С:EDT могут разрабатывать сразу несколько программистов: каждый — например, отдельную функцию, а затем автоматически объединить результаты.

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

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

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

Жизненный цикл разработки в Git в простейшем виде, когда задачу решают 2-3 человека, выглядит так.

Есть master-ветка — основная ветка. Именно здесь хранится версия конфигурации, готовая к производственной эксплуатации. Все, что находится в этой ветке, должно работать точно и быть протестированным.

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

Завершив разработку фичи и полностью ее протестировав, программисты сливают feature-ветку с master-веткой, то есть отправляют изменения кода в master.

1С:EDT. История внесения изменений в репозиторий

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

Подобный процесс разработки приемлем, когда в команде — 2-3 человека. Но когда она расширяется, появляется необходимость в правилах внесения изменений. Соблюдение этих правил позволит не допустить путаницы или возникновения ситуаций, когда один программист ломает наработки другого.

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

Добавить комментарий

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