Разработка и Конфигурация · 11 мин
С помощью чего осуществляется разработка бизнес-приложений в 1С:Предприятие 8
Разберём, с помощью чего ведётся разработка бизнес-приложений в 1С:Предприятие 8: конфигуратор, 1C:EDT, встроенный язык, СКД, расширения и мобильная платформа.
Разработка бизнес-приложений в системе «1С:Предприятие 8» ведётся не в классических языках программирования вроде C# или Java, а в специализированной среде, где основные объекты бизнеса — справочники, документы, регистры и отчёты — описываются декларативно, а логика дописывается на встроенном языке. Это существенно сокращает объём рутинного кода: платформа сама генерирует формы, таблицы базы данных и механизмы проведения.
Основных инструментов два: традиционный Конфигуратор и современная среда 1C:EDT (Enterprise Development Tools) на базе Eclipse. Оба работают с одной и той же конфигурацией, но по-разному организуют процесс разработки, командную работу и контроль качества кода.
Кроме среды разработки, важную роль играют встроенный язык 1С, система компоновки данных для отчётов, механизм расширений конфигурации, мобильная платформа и средства интеграции — HTTP-сервисы, веб-сервисы, планы обмена. Ниже разберём каждый инструмент: что он делает, когда его выбирать и какие ограничения учитывать.
Конфигуратор — основная среда разработки
Конфигуратор — это штатный режим запуска клиентского приложения 1С, предназначенный для создания и изменения конфигурации. В нём разработчик видит дерево объектов метаданных: справочники, документы, журналы, регистры сведений и накопления, отчёты, обработки, общие модули. Каждый объект настраивается через свойства и модули, а платформа на основе этих описаний автоматически строит структуру базы данных и пользовательский интерфейс.
Для запуска конфигуратора достаточно выбрать базу в стартовом окне и нажать кнопку «Конфигуратор» либо запустить исполняемый файл с параметром DESIGNER. Для изменения объектов конфигурацию нужно предварительно снять с поддержки или включить возможность изменения (меню «Конфигурация» → «Поддержка» → «Настройка поддержки»).
Ключевые возможности конфигуратора: редактор модулей с подсветкой синтаксиса и контекстной подсказкой, конструкторы форм и запросов, отладчик, синтакс-помощник, инструменты сравнения и объединения конфигураций, проверка конфигурации на ошибки. Именно здесь выполняется обновление конфигурации базы данных после изменения структуры метаданных.
1C:EDT — среда разработки нового поколения
1C:EDT — это среда разработки на платформе Eclipse, ориентированная на командную работу и большие проекты. Конфигурация в EDT хранится как проект из текстовых файлов, что позволяет использовать системы контроля версий (Git) штатными средствами, вести ветки, делать код-ревью и собирать конфигурацию автоматически.
Из практических преимуществ EDT: более строгая статическая проверка кода, удобный поиск ссылок и переименование объектов, встроенная поддержка сценарного тестирования и интеграция с инструментами анализа качества. Проект EDT синхронизируется с информационной базой: изменения можно «проталкивать» в базу для отладки и обратно.
Ограничения тоже есть: EDT требовательна к ресурсам компьютера, а часть редких операций (например, некоторые действия с поставкой и поддержкой) привычнее выполнять в конфигураторе. На практике разработчики нередко совмещают оба инструмента: основную работу ведут в EDT, а отдельные административные операции — в конфигураторе.
Конфигуратор или 1C:EDT
Подходит для небольших доработок, быстрого старта и администрирования. Работает напрямую с базой, не требует настройки проекта, но слабо поддерживает командную разработку и контроль версий.
Подходит для командных проектов, Git-процессов и автоматической сборки. Требует больше ресурсов и времени на освоение, отдельные операции всё равно выполняются в конфигураторе.
Встроенный язык 1С и объектная модель
Логика бизнес-приложения пишется на встроенном языке 1С — высокоуровневом языке с русскоязычным и англоязычным синтаксисом. Код размещается в модулях: модулях объектов (например, обработчики проведения документа), модулях форм, общих модулях для переиспользуемых процедур и модулях приложения.
Важно понимать контекст исполнения: один и тот же код может выполняться на клиенте или на сервере. Директивы компиляции &НаКлиенте, &НаСервере, &НаСервереБезКонтекста определяют, где будет работать процедура. Работа с базой данных — запросы, запись объектов — возможна только на сервере, поэтому типовая ошибка новичка — попытка обратиться к данным из клиентского контекста.
Для выборки данных используется собственный язык запросов, похожий на SQL, но работающий с объектами конфигурации, а не с физическими таблицами. Конструктор запросов в конфигураторе и EDT позволяет собирать запросы визуально, что ускоряет разработку и снижает число синтаксических ошибок.
&НаСервере
Процедура ЗаполнитьОстатки() Экспорт
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Товары.Номенклатура, Товары.КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки КАК Товары";
Результат = Запрос.Выполнить().Выгрузить();
КонецПроцедурыСКД и конструкторы — разработка без рутинного кода
Система компоновки данных (СКД) — основной инструмент построения отчётов в 1С. Разработчик описывает источник данных запросом и настраивает структуру отчёта: группировки, отборы, ресурсы, варианты. Платформа сама формирует итоговый запрос, макет и пользовательские настройки, поэтому конечный пользователь может перестраивать отчёт без участия программиста.
Помимо СКД, платформа предлагает набор конструкторов: конструктор форм, конструктор движений документа (автоматически генерирует код проведения по регистрам), конструктор печати, конструктор ввода на основании. Их стоит использовать как отправную точку, а затем дорабатывать сгенерированный код вручную.
Ограничение СКД — сложная отладка нестандартных схем и производительность на очень больших выборках: неоптимально построенная схема может порождать тяжёлые запросы. Проверяйте итоговый запрос через консоль СКД или отладчик, прежде чем отдавать отчёт пользователям.
Расширения конфигурации — безопасная доработка типовых решений
Расширение — это механизм, позволяющий добавлять и изменять объекты типовой конфигурации, не снимая её с поддержки. Расширение подключается к базе поверх основной конфигурации: можно добавлять свои справочники, документы, отчёты, роли, переопределять обработчики модулей и форм через аннотации &ИзменениеИКонтроль, &Вместо, &Перед, &После.
Главная выгода — простое обновление типовой конфигурации: поставщик обновляет основное решение, а расширение остаётся работать, если не задеты изменённые объекты. Поэтому для доработок типовых конфигураций (например, «1С:Бухгалтерия» или «1С:ERP») расширения считаются предпочтительным способом.
Ограничения: в расширении нельзя изменять структуру существующих таблиц произвольно, есть ограничения на изменение ролей и некоторых объектов. После каждого обновления типовой конфигурации расширение нужно проверять: платформа отключает расширение, если обнаруживает несовместимость.
- 1Откройте конфигуратор и перейдите в меню «Конфигурация» → «Расширения конфигурации», создайте новое расширение с понятным префиксом.
- 2Добавьте в расширение нужные объекты или заимствуйте формы и модули типовой конфигурации для переопределения.
- 3Реализуйте логику через аннотации &После, &Вместо или &ИзменениеИКонтроль, избегая полного копирования типовых процедур.
- 4Обновите конфигурацию базы данных и проверьте работу доработки под профилем конечного пользователя, а не только под администратором.
- 5После каждого обновления типовой конфигурации проверяйте, что расширение остаётся совместимым и не отключено платформой.
Интеграция, мобильная разработка и отладка
Для обмена с внешними системами платформа предоставляет HTTP-сервисы и веб-сервисы (SOAP), которые публикуются на веб-сервере, а также планы обмена для организации распределённых баз и синхронизации между конфигурациями. Форматы обмена — XML, JSON — поддерживаются встроенными средствами языка, что позволяет реализовывать интеграции без сторонних библиотек.
Мобильные приложения создаются с помощью мобильной платформы: разработчик готовит отдельную мобильную конфигурацию, собирает её в установочный пакет для Android или iOS и при необходимости настраивает обмен с основной базой. Это единственный штатный способ выпускать автономные мобильные решения на 1С.
Отладка ведётся в конфигураторе или EDT: точки останова, просмотр значений, стек вызовов, замеры производительности. Для клиент-серверных баз может потребоваться включить отладку на сервере 1С (параметр -debug агента сервера), иначе серверный код не остановится на точках останова.
Как выбрать набор инструментов под задачу
Если задача — небольшая обработка, отчёт или разовая доработка собственной конфигурации, достаточно конфигуратора и встроенного языка. Для отчётности первым выбором всегда идёт СКД, а не программное формирование табличного документа: она даёт пользователю гибкие настройки без доработок.
Для командной разработки, долгоживущих проектов и регулярных релизов стоит осваивать 1C:EDT с Git. Для доработки типовых решений — расширения. Для обмена с сайтом или внешней учётной системой — HTTP-сервисы. Комбинация этих инструментов покрывает практически весь спектр задач автоматизации бизнеса на платформе 1С.
Как выбрать инструмент
Что важно запомнить
Разработка в 1С:Предприятие 8 ведётся в Конфигураторе и 1C:EDT на встроенном языке с декларативным описанием объектов. Отчёты делайте на СКД, доработки типовых решений — через расширения, интеграции — через HTTP-сервисы, а перед любой реструктуризацией базы создавайте резервную копию.
Частые вопросы
Нужно ли знать другие языки программирования для разработки в 1С?
Нет, основной объём работы выполняется на встроенном языке 1С. Знание SQL помогает быстрее освоить язык запросов, а основы JavaScript и HTTP пригодятся для интеграций, но обязательными они не являются.
Можно ли разрабатывать в 1С бесплатно для обучения?
Да, фирма «1С» предоставляет учебную версию платформы, которая позволяет изучать конфигуратор, встроенный язык и создавать учебные конфигурации с рядом ограничений, неприемлемых для коммерческой эксплуатации, но достаточных для обучения.
Чем расширение лучше внешней обработки?
Внешняя обработка — это отдельный файл, который запускается вручную или подключается через механизм дополнительных отчётов и обработок. Расширение же встраивается в конфигурацию: может добавлять объекты метаданных, изменять формы и модули типовых объектов. Для точечных пользовательских инструментов достаточно обработки, для изменения поведения системы нужно расширение.
Поддерживает ли 1С контроль версий?
В конфигураторе есть штатное хранилище конфигурации для командной работы, но оно ограничено по возможностям. Полноценная работа с Git доступна через 1C:EDT, где конфигурация хранится как набор текстовых файлов проекта.
Можно ли отлаживать код на рабочем сервере?
Технически да, если сервер запущен с включённой отладкой, но делать это на продуктивной базе не рекомендуется: точки останова блокируют сеансы пользователей. Правильный подход — развёрнуть копию базы и отлаживаться на ней.
Что выбрать новичку: конфигуратор или EDT?
Начинать проще с конфигуратора: он быстрее запускается, работает напрямую с базой и не требует настройки проекта. После освоения основ встроенного языка и объектной модели имеет смысл перейти на EDT для привычной современным разработчикам среды с Git.