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

Разработка и Конфигурация · 13 мин

С помощью чего осуществляется разработка бизнес-приложений в 1С:Предприятие

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

Разработка бизнес-приложений в системе «1С:Предприятие» ведётся не в сторонних средах программирования, а в специализированных инструментах, которые поставляются вместе с технологической платформой. Основной из них — Конфигуратор: встроенная среда разработки, в которой создаются и изменяются конфигурации, то есть прикладные решения для учёта, торговли, зарплаты и других задач. Дополнительно используется среда 1C:Enterprise Development Tools (1C:EDT) на базе Eclipse, а также вспомогательные механизмы платформы — расширения конфигурации, внешние обработки и отчёты.

Ключевая особенность платформы — метаданные вместо «ручного» проектирования базы данных. Разработчик описывает объекты прикладного решения (справочники, документы, регистры, отчёты) в дереве конфигурации, а платформа сама создаёт таблицы в СУБД, строит формы, обеспечивает права доступа и журналы регистрации. Поэтому значительная часть бизнес-логики реализуется декларативно, а программный код на встроенном языке добавляется там, где требуется нестандартное поведение.

Ниже разобраны все основные инструменты разработки в 1С: что делает каждый из них, когда какой выбирать, как устроен встроенный язык и какие ограничения важно учитывать, чтобы не сломать рабочую базу.

Конфигуратор — основная среда разработки

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

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

После внесения изменений конфигурация базы данных обновляется через команду «Конфигурация → Обновить конфигурацию базы данных» (клавиша F7). Платформа анализирует изменения и выполняет реструктуризацию таблиц. На больших базах реструктуризация при удалении или изменении типа реквизитов может занимать значительное время, поэтому обновление рабочих баз проводят в нерабочие часы и только после резервного копирования.

Встроенный язык 1С и модули

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

Язык тесно интегрирован с метаданными: обращение к справочнику или документу выполняется через менеджер объекта, например Справочники.Номенклатура.НайтиПоКоду("000001"). Для выборки больших объёмов данных используется язык запросов 1С — декларативный язык, похожий на SQL, но работающий с терминами метаданных и поддерживающий виртуальные таблицы регистров (остатки, обороты, срезы).

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

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

Механизм метаданных и прикладные объекты

Бизнес-приложение в 1С строится из типовых «кирпичей» — прикладных объектов. Справочники хранят нормативно-справочную информацию (номенклатура, контрагенты, сотрудники). Документы фиксируют факты хозяйственной деятельности и проводятся по регистрам. Регистры накопления и сведений хранят итоговые и детальные данные для учёта и аналитики. Отчёты и обработки извлекают и обрабатывают информацию.

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

МетаданныеСтруктура приложения

Дерево конфигурации: справочники, документы, регистры, отчёты, роли

Встроенный языкБизнес-логика

Модули объектов, форм и общие модули с процедурами и функциями

Запросы и СКДРабота с данными

Язык запросов и система компоновки данных для отчётов

ФормыИнтерфейс

Управляемые формы, декларативно описываемые в конфигураторе

1C:EDT — среда для командной разработки

1C:Enterprise Development Tools — альтернативная среда разработки на базе платформы Eclipse. В отличие от Конфигуратора, который хранит конфигурацию монолитно в базе, EDT работает с проектом в виде набора файлов, что делает её удобной для командной разработки с системами контроля версий, прежде всего Git. Поддерживаются ветвление, слияние, код-ревью и интеграция с CI-процессами.

EDT предоставляет расширенные возможности редактора кода: контент-ассист, проверку ошибок «на лету», рефакторинг, настраиваемые проверки качества кода. Среда особенно оправдана на крупных проектах с несколькими разработчиками и формализованным процессом выпуска релизов. Для небольших доработок одним специалистом Конфигуратор обычно проще и быстрее.

Сравнение инструментов разработки

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

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

1C:EDT

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

Расширения конфигурации

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

Внешние обработки и отчёты

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

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

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

Внешние обработки и отчёты — файлы с расширением .epf и .erf, которые открываются в режиме предприятия или подключаются через механизм «Дополнительные отчёты и обработки» (БСП). Это оптимальный путь для сервисных утилит: загрузки данных из Excel, обмена с сайтом, массовой обработки документов, печатных форм. Разрабатываются они в том же Конфигураторе через «Файл → Новый → Внешняя обработка».

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

Как выбрать способ доработки

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

СКД, запросы и конструкторы: инструменты отчётности

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

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

Порядок создания простой доработки
  1. 1
    Сделайте резервную копию базы или разверните копию для разработки
  2. 2
    Откройте базу в Конфигураторе и определите, что меняется: метаданные, форма или только логика
  3. 3
    Выберите инструмент: расширение для типовой конфигурации, внешнюю обработку для сервисной функции
  4. 4
    Реализуйте изменение, используя конструкторы и встроенный язык
  5. 5
    Протестируйте на копии под пользователем с реальными правами
  6. 6
    Перенесите доработку в рабочую базу и проверьте результат на контрольных примерах

Хранилище конфигурации и типичные ошибки

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

Отдельно стоит упомянуть вспомогательные инструменты платформы: синтакс-помощник (встроенная справка по языку, вызывается из редактора модуля), глобальный поиск и замена по конфигурации, проверка конфигурации (выявляет ошибки модулей, неразрешённые ссылки, нарушения прав), а также инструменты поставки и поддержки конфигураций.

Типичные ошибки разработчиков
01
Снятие типовой конфигурации с поддержки ради мелкой доработки — вместо расширения; итог: штатное обновление становится трудоёмким или невозможным
02
Обновление конфигурации базы данных без копии — при ошибке реструктуризации данные могут быть потеряны
03
Выполнение тяжёлых запросов в клиентском контексте вместо серверного — падение производительности у пользователей
04
Изменение типовых модулей напрямую вместо переопределения обработчиков в расширении — конфликты при каждом обновлении
05
Тестирование только под полными правами — у рядовых пользователей доработка не работает из-за ограничений ролей

Как проверить результат доработки

Готовность доработки определяется не только тем, что она «запускается». Проверка конфигурации штатным механизмом (Конфигурация → Проверка конфигурации) должна проходить без критических ошибок. Функциональность тестируется на копии базы под учётной записью с правами реального пользователя, а не администратора. Для расширений дополнительно проверяется совместимость после обновления типовой конфигурации: заимствованные объекты могут измениться, и контроль расширения укажет на расхождения.

Контрольные точки

Как проверить результат

Проверка конфигурации
Норма

Нет критических ошибок модулей и метаданных

Тревожный признак

Ошибки компиляции модулей, битые ссылки на объекты

Работа под правами пользователя
Норма

Функция доступна и выполняется без ошибок прав

Тревожный признак

Ошибки «Нарушение прав доступа» у рядовых пользователей

Обновление типовой конфигурации
Норма

Расширение применяется без отключения после обновления

Тревожный признак

Расширение отключается из-за изменения заимствованных объектов

Производительность
Норма

Операция выполняется за приемлемое время на реальном объёме данных

Тревожный признак

Заметные задержки, блокировки, рост нагрузки на сервер

Итог

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

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

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

Можно ли разрабатывать для 1С на Python, C# или Java?

Напрямую бизнес-логику конфигурации пишут только на встроенном языке 1С. Внешние языки применяются опосредованно: через внешние компоненты по технологии Native API/COM, веб-сервисы и HTTP-интеграции, где 1С обменивается данными с системами на других языках.

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

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

Чем расширение отличается от доработки самой конфигурации?

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

Можно ли добавить новый справочник через внешнюю обработку?

Нет. Внешние обработки и отчёты не изменяют состав метаданных. Новые объекты добавляются либо в самой конфигурации, либо через расширение конфигурации.

Нужна ли отдельная лицензия для Конфигуратора?

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

Как безопасно перенести доработку в рабочую базу?

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