К статье
Практический материал

Разработка и Конфигурация · 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

Конфигуратор

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

1C:EDT

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

Встроенный язык 1С и объектная модель

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

Важно понимать контекст исполнения: один и тот же код может выполняться на клиенте или на сервере. Директивы компиляции &НаКлиенте, &НаСервере, &НаСервереБезКонтекста определяют, где будет работать процедура. Работа с базой данных — запросы, запись объектов — возможна только на сервере, поэтому типовая ошибка новичка — попытка обратиться к данным из клиентского контекста.

Для выборки данных используется собственный язык запросов, похожий на SQL, но работающий с объектами конфигурации, а не с физическими таблицами. Конструктор запросов в конфигураторе и EDT позволяет собирать запросы визуально, что ускоряет разработку и снижает число синтаксических ошибок.

bsl
&НаСервере
Процедура ЗаполнитьОстатки() Экспорт
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ Товары.Номенклатура, Товары.КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки КАК Товары";
	Результат = Запрос.Выполнить().Выгрузить();
КонецПроцедуры

СКД и конструкторы — разработка без рутинного кода

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

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

Ограничение СКД — сложная отладка нестандартных схем и производительность на очень больших выборках: неоптимально построенная схема может порождать тяжёлые запросы. Проверяйте итоговый запрос через консоль СКД или отладчик, прежде чем отдавать отчёт пользователям.

Расширения конфигурации — безопасная доработка типовых решений

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

Главная выгода — простое обновление типовой конфигурации: поставщик обновляет основное решение, а расширение остаётся работать, если не задеты изменённые объекты. Поэтому для доработок типовых конфигураций (например, «1С:Бухгалтерия» или «1С:ERP») расширения считаются предпочтительным способом.

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

Как добавить доработку через расширение
  1. 1
    Откройте конфигуратор и перейдите в меню «Конфигурация» → «Расширения конфигурации», создайте новое расширение с понятным префиксом.
  2. 2
    Добавьте в расширение нужные объекты или заимствуйте формы и модули типовой конфигурации для переопределения.
  3. 3
    Реализуйте логику через аннотации &После, &Вместо или &ИзменениеИКонтроль, избегая полного копирования типовых процедур.
  4. 4
    Обновите конфигурацию базы данных и проверьте работу доработки под профилем конечного пользователя, а не только под администратором.
  5. 5
    После каждого обновления типовой конфигурации проверяйте, что расширение остаётся совместимым и не отключено платформой.

Интеграция, мобильная разработка и отладка

Для обмена с внешними системами платформа предоставляет HTTP-сервисы и веб-сервисы (SOAP), которые публикуются на веб-сервере, а также планы обмена для организации распределённых баз и синхронизации между конфигурациями. Форматы обмена — XML, JSON — поддерживаются встроенными средствами языка, что позволяет реализовывать интеграции без сторонних библиотек.

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

Отладка ведётся в конфигураторе или EDT: точки останова, просмотр значений, стек вызовов, замеры производительности. Для клиент-серверных баз может потребоваться включить отладку на сервере 1С (параметр -debug агента сервера), иначе серверный код не остановится на точках останова.

Типичные ошибки разработчиков
01
Доработка типовой конфигурации напрямую вместо расширения — каждое обновление превращается в ручное слияние и риск потери изменений.
02
Обращение к данным базы из клиентского контекста — код падает с ошибкой или вынуждает делать лишние серверные вызовы, замедляя форму.
03
Запросы в цикле вместо одного запроса с соединениями — резкое падение производительности на больших объёмах данных.
04
Отсутствие резервной копии перед реструктуризацией — при ошибке обновления конфигурации БД данные восстановить не из чего.
05
Проверка доработки только под полными правами — у рядовых пользователей функционал не работает из-за нехватки прав на новые объекты.

Как выбрать набор инструментов под задачу

Если задача — небольшая обработка, отчёт или разовая доработка собственной конфигурации, достаточно конфигуратора и встроенного языка. Для отчётности первым выбором всегда идёт СКД, а не программное формирование табличного документа: она даёт пользователю гибкие настройки без доработок.

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

Маршрут решения

Как выбрать инструмент

Нужно доработать типовую конфигурацию, которая регулярно обновляетсяИспользуйте расширение конфигурации, не снимая основную конфигурацию с поддержки
Нужен отчёт с настраиваемыми отборами и группировкамиСтройте отчёт на СКД, а не программным выводом в табличный документ
Проект ведут несколько разработчиков и нужна история измененийПереносите разработку в 1C:EDT с хранением проекта в Git
Требуется обмен данными с внешней системой в реальном времениПубликуйте HTTP-сервисы или веб-сервисы на веб-сервере
Нужно автономное приложение на смартфоне или планшетеСоздавайте отдельную конфигурацию под мобильную платформу
Итог

Что важно запомнить

Разработка в 1С:Предприятие 8 ведётся в Конфигураторе и 1C:EDT на встроенном языке с декларативным описанием объектов. Отчёты делайте на СКД, доработки типовых решений — через расширения, интеграции — через HTTP-сервисы, а перед любой реструктуризацией базы создавайте резервную копию.

Частые вопросы

Нужно ли знать другие языки программирования для разработки в 1С?

Нет, основной объём работы выполняется на встроенном языке 1С. Знание SQL помогает быстрее освоить язык запросов, а основы JavaScript и HTTP пригодятся для интеграций, но обязательными они не являются.

Можно ли разрабатывать в 1С бесплатно для обучения?

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

Чем расширение лучше внешней обработки?

Внешняя обработка — это отдельный файл, который запускается вручную или подключается через механизм дополнительных отчётов и обработок. Расширение же встраивается в конфигурацию: может добавлять объекты метаданных, изменять формы и модули типовых объектов. Для точечных пользовательских инструментов достаточно обработки, для изменения поведения системы нужно расширение.

Поддерживает ли 1С контроль версий?

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

Можно ли отлаживать код на рабочем сервере?

Технически да, если сервер запущен с включённой отладкой, но делать это на продуктивной базе не рекомендуется: точки останова блокируют сеансы пользователей. Правильный подход — развёрнуть копию базы и отлаживаться на ней.

Что выбрать новичку: конфигуратор или EDT?

Начинать проще с конфигуратора: он быстрее запускается, работает напрямую с базой и не требует настройки проекта. После освоения основ встроенного языка и объектной модели имеет смысл перейти на EDT для привычной современным разработчикам среды с Git.