1с как среда разработки
В статье рассмотрена среда разработки нового поколения 1C:Enterprise Development Tools (EDT). Данное ПО представляет из себя самостоятельное приложение, которое устанавливается отдельно от платформы.«1С:Предприятие». Изучив статью, Вы узнаете:
- Чем конфигуратор отличается от EDT?
- Как установить EDT?
- Как подключить плагины?
- Как сменить используемую тему?
- Какие базовые приемы разработки имеются в новой среде и как их применять на практике?
Применимость
В статье использовалась первая тестовая версия EDT, вышедшая в апреле 2015 г. Для актуальной версии основные приемы, проиллюстрированные в материале, остались теми же.
Установка EDT
1C:Enterprise Development tools – это среда для разработки конфигурации в IDE Eclipse.
Основное отличие от конфигуратора в том, что при использовании EDT можно вести разработку конфигурации вне контекста 1С:Предприятие.
Для того чтобы начать работать с EDT, выясните, соответствует ли ваша система следующим требованиям.
[styled_table]Операционная система | Версия | Архитектура процессора | JRE | Оконная система |
Windows | 7/8/8.1 | x86 32-bit x86 64-bit | Oracle Java 8 | Win32 |
Ubuntu Long Term Support | 12.04 | x86 32-bit x86 64-bit | Oracle Java 6 Update 37 IBM Java 6 SR11 | GTK |
Apple Mac OS X | 10.8 | Universal 32-bit x86 64-bit | Oracle Java 7u9 | Cocoa |
Вам потребуется весь набор для тестирования.
Установите тестовый релиз 1С. Затем разархивируйте папку с утилитами и запустите файл dt.exe. Если возникнут ошибки, перепроверьте, стоит ли у вас нужная версия java.
После запуска файла откроется Eclipse, где, собственно, и должна происходить вся разработка.
Новая среда разработки
Сама по себе среда Eclipse, при прочих равных, не особо отличается от конфигуратора и имеет тот же самый базовый функционал. Однако благодаря различным плагинам есть возможность значительно его расширять.
В свою очередь каждая из них дает свой набор возможностей. К примеру, перспектива 1С:Предприятие имеет вот такой набор возможностей:
Теперь давайте переключимся на другую перспективу , делать это можно справа вверху:
Нажмите на отладку:
В чем особенность использования Eclipse?
Например, вы хотите сделать две цветовые схемы для разработки: одну дневную – светлую, другую вечернюю – темную. В конфигураторе же мы не можем влиять на фон некоторых элементов формы, не получится сохранить и несколько вариантов настроек.
Давайте посмотрим эти же настройки в Eclipse. По умолчанию включена светлая тема, выглядит она так:
Теперь окно выглядит так:
Неплохо, правда? Но это только вершина айсберга. Еще есть возможность устанавливать плагины.
Плагины в EDT
После перехода по ссылке скопируйте следующую ссылку, как показано на картинке:
Тестировать можно так: скопировали код, скопировали другой код, вставили его через Ctrl+V и, не отпуская Ctrl, несколько раз нажали на V.
Summary
Как видите, не успев перейти на Eclipse, вы уже получили кучу бонусов.
Более того, есть множество источников, из которых можно скачать разные плагины.
Но все это лишь приятные дополнения к тому, что теперь у вас появилась возможность полноценно работать с git – системой контроля версий. Об этом мы расскажем во второй статье.
Привет, Хабр!
В этой статье мы начнем рассказ о том, как устроена внутри платформа «1С:Предприятие 8» и какие технологии используются при ее разработке.
Нативные приложения
- STL (в частности, строки, контейнеры и алгоритмы)
- множественное наследование, в т.ч. множественное наследование реализации
- шаблоны
- исключения
- умные указатели (собственная реализация)
Компоненты
- Разделение способствует лучшему проектированию, в частности лучшей изоляции кода
- Из набора компонентов можно гибко собирать разные варианты поставки:
- Например, инсталляция тонкого клиента будет содержать wbase, но не будет backend
- а на сервере wbase, наоборот, не будет
- оба варианта будут, конечно, содержать nuke и bsl
- Предоставляет фабричные методы, позволяющие создать класс из другой компоненты зная только его название (без раскрытия реализации)
- Предоставляет инфраструктуру умных указателей с подсчетом ссылок. За временем жизни SCOM-класса не нужно следить вручную
- Позволяет узнать реализует ли объект конкретный интерфейс и автоматически привести указатель на объект к указателю на интерфейс
- Создать объект-сервис, всегда доступный через метод get_service и т.д.
Этот макрос опишет специальный статический класс-регистратор, конструктор которого будет вызван при загрузке компоненты в память.
После это можно создать его экземпляр в другой компоненте:Для поддержки сервисов SCOM предлагает дополнительную, достаточно сложную инфраструктуру. Центральным в ней является понятие SCOM-процесса, который служит контейнером для запущенных сервисов (т.е. выполняет роль Service Locator), а также содержит привязку к локализуемым ресурсами. SCOM процесс привязывается к потоку ОС. Благодаря этому внутри приложения можно вот так получать сервисы:
Более, того переключая логические (SCOM) процессы привязанные к потоку, можно получить практически независимые с точки зрения информационного пространства приложения, выполняющиеся в рамках одного потока. Так устроен наш тонкий клиент, работающий с файловой базой — внутри одного процесса ОС находятся два SCOM-процесса, один связан с клиентом, а второй — с сервером. Такой подход позволяет унифицировать написания кода, который будет работать как на локальной файловой базе, так и в «настоящем» клиент-серверном варианте. Цена за такое единообразие — накладные расходы, но практика показывает, что они того стоят.
На основе компонентной модели SCOM реализована и бизнес-логика и интерфейсная часть 1С: Предприятия.
Пользовательский интерфейс
Кстати, об интерфейсах. Мы не используем стандартные контролы Windows, наши элементы управления реализованы напрямую на Windows API. Для Linux-версии сделана прослойка, работающая через библиотеку wxWidgets.
Библиотека элементов управления не зависит от других частей «1С:Предприятия» и используется нами еще в нескольких небольших внутренних утилитах.За годы развития 1С:Предприятие внешний вид контролов менялся, но серьезное изменение принципов произошло только один раз, в 2009 году, с выходом версии 8.2 и появлением «управляемых форм». Помимо изменения внешнего вида, фундаментально изменился принцип компоновки формы — произошел отказ от попиксельного позиционирования элементов в пользу flow-компоновки элементов. Кроме того, в новой модели элементы управления работают не напрямую с доменными объектами, а со специальными DTO (Data Transfer Objects).
Эти изменения позволили создать веб-клиент «1С:Предприятия», повторяющий С++ логику контролов на JavaScript. Мы стараемся поддерживать функциональную эквивалентность между тонким и веб клиентами. В том случае, когда это невозможно, например, из-за ограничений доступных из JavaScript API (например, возможности работы с файлами очень ограничены), мы часто реализуем нужную функциональность при помощи расширений браузеров, написанных на C++. На данный момент мы поддерживаем Internet Explorer и Microsoft Edge (Windows), Google Chrome(Windows), Firefox (Windows и Linux) и Safari (MacOS).Кроме того, технология управляемых форм используется для создания интерфейса мобильных приложений на платформе 1С. На мобильных устройствах отрисовка контролов реализована с использованием «родных» для операционной системы технологий, но уже для логики компоновки формы и реакции интерфейса используется тот же код, что и в «большой» платформе «1С:Предприятие».
Интерфейс 1С на ОС Linux
Интерфейс 1С на мобильном устройстве
Интерфейс 1С на ОС Windows
Интерфейс 1С — веб-клиентOpen source
Заключение
В статье мы коснулись нескольких основных аспектов разработки платформы «1С: Предприятие». В ограниченном объеме статьи мы затронули лишь некоторые интересные, на наш взгляд, аспекты.
Общее описание различных механизмов платформы можно посмотреть тут.
Какие темы были бы интересны Вам в следующих статьях?Как реализована мобильная платформа 1С?
Описание внутреннего устройства веб-клиента?
Или, может быть, Вам интересен процесс выбора фич для новых релизов, разработки и тестирования?Встречайте — 1C: Enterprise Development Tools.
Начну с предыстории.
На днях, произошел очень интересный этап в истории развития 1С – была выпущена новая среда разработки под 1С — 1C:Enterprise Development Tools.
1C:EDT – это новая среда для разработки под «1С: Предприятие 8», которая основана на базе открытой платформы Eclipse.
Да, да, да – встречайте, во всех странах СНГ и не только – Eclipse с разработкой на русском языке!
(под катом много больших картинок)
На текущий момент это всего лишь ознакомительная версия, тут нет очень многих вещей, и даже объектов, которые необходимы для полноценной разработки в 1С. Но и это не плохо, так как 1С официально заявило следующее:«Данная версия не предназначена для полноценной разработки, она может быть использована только для ознакомления с концепциями и технологиями разрабатываемого инструмента, а также для разработки небольших, простых конфигураций».
Список ограничений на текущий момент зашкаливает, однако это очень приятный шаг со стороны 1С, так как ранее они ничего не публиковали в общий доступ, если это не прошло хотя бы предварительные бета тесты, и то, публикуют это все-равно в разделы для тестирования. Эта линия очень четко отслеживается по мобильной платформе 1С.
Так как 1С взяли за основу Eclipse, то автоматом получились вот такие требования:
Естественно, что работает все на Windows 8/8.1, однако в этом случае надо Java 8, а не 7.
Однако, теперь разрабатывать можно и в среде Mac OS.
Но, для начала, перед тем как обрадуются поклонники Mac OS, следует немного объяснить принципы работы в Eclipse, в случае 1С – Eclipse, это текстовый редактор, который просто позволяет редактировать xml, в которых описаны объекты 1С, а это значит, что вы работаете не с базой 1С, как это обычно привыкли делать программисты 1С, а только с конфигурацией, которую вы потом обновляете в конкретной базе данных.
А отсюда следует, что разработка под Mac OS, в отличие от Windows и Linux, может заключаться только в редактировании данных, без возможности привычной нам отладки.Ну и как можно догадаться, без полноценного 1С предприятия и доступа к конфигуратору отладка не получится.
Одно из ключевых преимуществ (как по мне) — к каждой базе теперь можно подключить n-проектов, т.е. ранее мы не могли, работая с одной базой данных, разрабатывать несколько конфигураций. Точнее могли, но тогда надо было бы возиться с двумя (тремя … n) конфигураторами, выгружать и загружать конфигурации, и вообще – каждый конфигуратор, это отдельное окно. Теперь каждый конфигуратор — это, по сути, отдельный проект.Но, хватит полемики, давайте перейдем уже к действиям и скринам. Из описанного выше – понятно, что нам надо иметь установленную версию 1С, полноценную, ну и теперь необходимо скачать еще один дополнительный файл. Все это скачать можно тут (только для тех, кто подписан на ИТС). А справка по этому продукту находится тут.
На странице скачивания вы выбираете нужную версию 1С, как это делается обычно, и нужную версию 1C:EDT. Обратите внимание, что разрядность EDT и Java должны совпадать, т.е. или оба x86 или оба x64.
Далее необходимо установить саму 1С, если не установите – работать ничего не будет, т.е. нужно установить именно ту версию, которая дается на этой странице.После этого надо разархивировать архив com._1c.g5.v8.dt.rcp-win32.win32.x86_64, и можно приступать к работе в Eclipse. Для этого достаточно запустить файл dt.exe. Но, перед запуском – удостоверьтесь, что у вас более 4Гб оперативки, так как со стандартными настройками – виртуальная машина отъедает 3Гб, если у вас меньше оперативки, то можно изменить настройки в файле dt.ini, там есть такая строка -Xmx3072m, вот число – это объем памяти, меньше 2Гб лучше не ставить, а то чревато ошибкой Out of memory.
Сам по себе архив – это компиляция Eclipse с предустановленными плагинами. Т.е. в данном случае не получится подключить свои плагины и настройки из стандартной версии Eclipse, как это можно сделать в случае разработки под Android, когда просто мы указываем путь, выбираем нужные объекты и Eclipse автоматом все настраивает и обновляет. Но, я думаю, что 1С и это вскоре сделает.Первый запуск будет долгий, и так будет всегда, увы, так как создается виртуальная среда, которая после выхода – уничтожается. Но, с другой стороны, это не большая проблема, так как вам для работы с разными базами не надо будет открывать 100500 вариантов Eclipse.
При запуске вы увидите вот такое красивое окошко:
Итак, после запуска – для тех, кто раньше работал в Eclipse, — не будет ничего особо нового. Интерфейс по умолчанию выглядит вот так:
Тут сразу видно, что появились новые перспективы:
Давайте познакомимся поближе с перспективой 1С. Справа внизу находятся доступные базы данных, причем это всего лишь отображение подключенных баз у текущего пользователя. В данном случае 1С просто считывает файл ibases.v8i. Так что тут сразу будут импортированы те базы, которые у вас уже были ранее подключены.
Там же и происходит управление веб-сервером:
Тут ничего особенного, тут обычные настройки, которые необходимы для публикации базы. Причем все на английском. Вообще тут надо привыкнуть, ибо интерфейс русско-английский, ну и конечно – это в будущем исправят.
Теперь можно добавить конфигурацию в проект:
Для этого ее необходимо импортировать. После импорта, те базы, конфигурации которых у вас импортированы, будут иметь дополнение в наименовании в фигурных скобках, как в данном случае.
Далее нам станут доступны объекты этой конфигурации, и мы ее увидим уже в привычном нам виде:
Увы, но на текущий момент недоступно слишком много свойств и объектов. Однако это совершенно не мешает разрабатывать простенькие конфигурации, например, для мобильной платформы 1С.
Вот так выглядит форма документа:
Стоить отметить, что в целом – 1С сумели сохранить привычный всем вид рисования форм. Но и добавили несколько плюшек (или это баги?). Например, ранее – добавляя поле на форму – мы не видели его тип, и это не страшно, когда вопрос касался примитивных типов. Но когда начинаешь указывать ссылки, то можно и запутаться, особенно когда форма достаточно большая, и в ней существует несколько вариантов отображения данных, в зависимости от начальных условий. Особенно это касается новых конфигураций (например, УНФ).
А тут нам сразу указывается и тип, ну не чудесно ли? Осталось надеяться, что это не баг :)Ну пока формы кривоваты, но тем не менее, для альфа релиза – я ожидал худшего.
Теперь я подключу другую конфигурацию, и посмотрим какой-то код:
Как видно – теперь вполне одновременно можно работать с разными объектами разных конфигураций в одной среде, слева доступен список функций и процедур, список поделен по областям (которые в стандартном конфигураторе чуть более чем бесполезные).
Выделяются экспортные функции, параметры, и подсвечивается текущая функция, в которой вы находитесь, для примера, вот так это выглядело ранее:
Но все это мелочи по сравнению с тем, что 1С сделали дальше. А дальше они сделали удобной функцию удаленной отладки. Т.е. теперь можно использовать отдельный сервер для отладки данных. К сожалению – информации немного на этот счет. Но, как можно догадаться из настроек – поднимается некий веб-сервер для отладки и через него происходит работа с отладкой всех платформ, в том числе и мобильной.
А это в свою очередь значит, что получен удобный механизм, когда разработчикам 1С больше не надо тягать базы к себе на компы, потому что обычно среда тестового сервера не располагает всеми возможностями, которые есть на своих компьютерах. Да и каждый раз прыгать от сервера к серверу – было не круто.
Теперь можно управлять кучей серверов, удаленно отлаживать данные, работать в своей среде на своем компьютере. К тому же 1С сделали возможность зашифровать канал передачи данных (на что, увы, 99% 1Сников и админов не обратят внимания).
Кроме этого всего – 1С подключили плагины для работы с git. Так что вскоре, для всех тех, кто страдает от работы с хранилищем конфигураций, можно будет смело перейти на git. Описывать работу с гитхабом я смысла не вижу, там «все как обычно».
1С даже создали свою ветку, где они выложили одну из демо конфигураций в свободный доступ.
Но, на фоне того, что 1С начала работать вплотную над проектом EDT, они были вынуждены сделать несколько решений, которые они все-таки внедрили в старый добрый конфигуратор:
Я думаю рассказывать тут особо нечего, все понятно из скрина.
Таким образом, случилось то, чего боялись большинство программистов «не 1С» — русский язык идет в ваши ряды :)
С другой стороны, для программистов 1С – это большой скачок в развитии. Теперь уже порог входа немного увеличился, и, я думаю, немалая часть программистов отвалится, оставшись на старых версиях конфигуратора, как это было с 7.7. Но те, кто смогут осилить новые парадигмы и принципы – будут вознаграждены тем, что научаться работать в популярной среде. А значит, переключаться между разными языками программирования будет намного проще. А, как все однэсники знают – мы одним 1С не ограничиваемся, ибо вечно надо что-то допилить на JS,VBS, SQL, Bash, HTML, а с выходом мобильной платформы – надо будет еще писать и под Андроид, а тут все это в одном флаконе устроить можно будет.
Конечно, обидно, что нет поддержки IDEA, но я думаю и это не за горами, так как когда только выбрали это направление в 1С – IDEA была еще не слишком популярной, даже Android разработчики обходили ее стороной, из-за отсутствия среды для рисования форм, что в 1С – является ключевым функционалом.
Так что жди, мир! Мы идем!
P.S. Специально для тех, кто очень хочет увидеть русский язык в Eclipse и рассказать о том, что программировать на русском – это убожество, то прошу под спойлер:
Берегите глаза
Тут очень хорошо видно, как удобно реализованы области.
А вот так реализована отладка. При чем localhost с портом (слева вверху) как бы намекает на то, что там может стоять ip адрес другого компа.
Эта статья – первая из нашего цикла. Данный материал будет полезен не только начинающим программистам и администраторам, которые по роду своей деятельности сталкиваются с установкой платформы «1С:Предприятие 8», но и рядовым пользователям, самостоятельно купившим какую-либо коробочную конфигурацию и сталкивающимися с вопросами развертывания системы.
В статье подробно рассматривается пример развертывания, попутно объясняются базовые понятия, такие как платформа, конфигурация и ее режимы работы.
Применимость
Статья написана для платформы «1С:Предприятие» версии 8.3.4.437, но если вы работаете с более поздней версией платформы, то весь материал является абсолютно актуальным.
Установка и запуск 1С:Предприятие 8
Можно выделить два режима работы с информационной базой: файловый и клиент-серверный. Мы пока будем говорить только о файловом режиме работы, так как именно с ним, как правило, и сталкиваются новички.
Предназначен файловый режим работы только для небольшого количества пользователей (обычно до 5-10 человек). При этом вся информационная база, конфигурация, список и настройки пользователей находятся в одном файле (1cv8.1CD) в локальной сети.
Всего набора объектов достаточно для решения задач автоматизации учета, связанного с бизнесом (и многих сопутствующих задач).
Таким образом, из имеющегося в платформе набора объектов можно создавать конкретные приложения (часто используют термин – конфигурации). Очень важно, что конфигурация – это решение, открытое для редактирования.
То есть, в самой конфигурации программист может что-то добавить из имеющегося в его распоряжении набора объектов, или что-то изменить в уже имеющихся объектах конфигурации.
Однако следует учитывать, что данный механизм достаточно опасен, особенно в руках новичков, не знающих всех возможностей конкретной конфигурации. Бывали случаи, что вместо глобального переписывания программного кода, достаточно было поставить 1-2 галочки в настройках системы в пользовательском режиме.
Следует отметить, что с помощью одной платформы можно не только создать несколько конфигураций, но и обеспечить работу многих информационных баз (баз данных).
Похоже, что отличие платформы от конфигурации Вы уже поняли. А чем же конфигурация отличается от базы?
Для наглядности и простоты понимания платформу можно сравнить с пишущим DVD приводом. Он позволяет и записывать что-то, и воспроизводить. При этом конфигурацию можно сравнить с образом для записи диска. С одного образа можно записать множество дисков, которые в данном примере можно сравнить с информационными базами.
Когда Вы приходите к клиенту с новой коробкой (этим часто занимаются стажеры в фирмах-франчайзи), в которой содержатся диски и документация, следует иметь в виду, что на дисках, как правило, содержится уже устаревшие платформа и конфигурация. Поэтому к визиту нужно как следует подготовиться.
Для этого разместите на своей флешке последний дистрибутив «Технологическая платформа 1С:Предприятие для Windows» (внимание, некоторые путают с дистрибутивом «Тонкий клиент 1С:Предприятия», который не везде подходит). На флешке Вам еще понадобится полный дистрибутив или дистрибутив обновления конфигурации, и кое-что еще, о чем будет сказано несколько позже.
Дистрибутивы – это установочные файлы (комплекты файлов), которые содержат в себе программное обеспечение и позволяют корректно установить его на компьютере.
Что устанавливать раньше (платформу или конфигурацию) принципиального значения не имеет, а вот работающую базу без платформы Вы не создадите точно. Начнем с установки платформы. К тому же, чтобы сразу гарантированно определить каталог шаблонов, лучше все же сначала ставить платформу (о каталоге шаблонов поговорим несколько позже в другой статье). Рассмотрим самые простые сценарии, когда установка полностью производится в ручном режиме.
Для разных операционных систем существуют различные дистрибутивы платформы. Наиболее полная линейка разных дистрибутивов платформы представлена для 32-разрядной (x86) версии Windows.
С помощью этих дистрибутивов можно устанавливать толстого клиента (в котором можно выполнять конфигурирование, программирование), есть возможность установки сервера Приложений 1С, есть отдельный дистрибутив для тонкого клиента (ранее отмечалось).
Тонкий клиент предназначен только для пользовательского режима (все вычисления будут выполняться на сервере, а на клиенте будет происходить отображение). Следует отметить, что для 64-битной версии Windows можно устанавливать 32-битные приложения, они будут работать в режиме эмуляции.
Рассмотрим процесс установки платформы. Будем считать, что у Вашего клиента стоит операционная система Windows XP, Windows 7 или Windows 8. Тогда смело можете устанавливать заготовленный Вами дистрибутив платформы.
Первое время Вам, действительно, довольно часто будут попадаться единичные (т.е. на один компьютер) или локальные установки. При этом в состав устанавливаемых компонентов необходимо выбрать те, что показаны на рисунке.
Помечая первую строку, мы выбираем основные компоненты 1С:Предприятия, включая компоненты для администрирования, конфигурирования, толстый и тонкий клиент.
Если Вы нажмете на кнопку «Изменить» (справа внизу), то сможете поменять директорию для установки платформы. Однако без веских оснований этого делать не следует, так как разные релизы платформы не замещают друг друга, а скапливаются в директории C:\Program Files (x86)\1cv8. По умолчанию запускается последний релиз платформы, по необходимости, может быть запущен любой из них.
На последнем шаге система предлагает установить драйвер защиты. Причем флажок установки по умолчанию включен.
Драйвер защиты необходим лишь в том случае, если на данном компьютере имеется ключ защиты (локальный или серверный). При использовании сетевой лицензии или программной защиты драйвер защиты смысла ставить нет.
Для запуска платформы в каждом релизе платформы в подкаталоге bin существует по три исполняемых файла:
- 1cv8.exe – запуск в режиме толстого клиента;
- 1cv8с.exe – запуск тонкого клиента (невозможна работа в режиме Конфигуратора);
- 1cv8s.exe – в зависимости от выбранных параметров базы вызывает один из двух предыдущих.
Кроме того в каталоге C:\Program Files (x86)\1cv8\common\ существует интерактивная программа запуска 1сеstart.exe. Отличие от предыдущих исполняемых файлов – запускается последний релиз платформы, установленный в системе.
В меню Пуск – 1С:Предприятие 8 ярлык на данную программу запуска стоит первым. Именно последний способ запуска платформы является рекомендуемым.
Надеемся, что у Вас все благополучно получилось, и в следующей статье мы сможем перейти к рассмотрению вопросов установки шаблонов конфигураций (на основе которых будут создаваться информационные базы), а также установки обновлений для конфигураций.
PDF-версия статьи для участников группы ВКонтакте
Статья в PDF-формате
Читайте также: