Разработка и Конфигурация · 12 мин
С помощью чего осуществляется разработка бизнес-приложений в системе 1С
Какие инструменты используются для разработки бизнес-приложений в 1С: конфигуратор, встроенный язык, EDT, расширения, внешние компоненты и механизмы интеграции.
Разработка бизнес-приложений в экосистеме 1С строится вокруг технологической платформы «1С:Предприятие», которая включает собственную среду разработки, встроенный язык программирования, систему метаданных и готовые прикладные объекты. Разработчик не пишет приложение «с нуля», а описывает структуру предметной области — справочники, документы, регистры, отчёты — а платформа автоматически формирует интерфейс, таблицы базы данных и механизмы доступа.
Основных инструментов несколько: классический конфигуратор, среда 1C:Enterprise Development Tools (EDT) на базе Eclipse, встроенный язык 1С, механизм расширений конфигурации, а также средства интеграции и внешние компоненты. Выбор конкретного инструмента зависит от задачи: доработка типового решения, создание отраслевой конфигурации, интеграция с внешними системами или построение мобильного клиента.
Ниже разобраны ключевые инструменты и технологии, из которых складывается процесс разработки, с указанием того, когда какой подход уместен и где проходят границы безопасной доработки.
Технологическая платформа как основа разработки
Платформа «1С:Предприятие» — это не просто среда исполнения, а каркас, на котором строится любое бизнес-приложение. Она берёт на себя работу с СУБД (MS SQL Server, PostgreSQL, Oracle, IBM Db2 или файловый вариант), управление пользователями и правами, кластер серверов, механизмы транзакций и блокировок. Разработчик сосредотачивается на бизнес-логике, а не на инфраструктурном коде.
Ключевое понятие платформы — объекты конфигурации (метаданные). Справочники хранят нормативно-справочную информацию, документы фиксируют хозяйственные операции, регистры накопления и сведений обеспечивают хранение показателей в разрезах, отчёты извлекают данные. Достаточно описать структуру объекта в дереве конфигурации, и платформа сама создаст таблицы в базе, формы ввода и стандартные команды.
Этот подход резко сокращает объём ручного кодирования: типовое приложение учёта может на 70–80% состоять из декларативных описаний, а не из программного кода. Код на встроенном языке подключается там, где нужна нестандартная логика — проверки при записи, расчёты, обработчики событий.
Конфигуратор — классическая среда разработки
Конфигуратор — основной и исторически первый инструмент разработчика 1С. В нём выполняется редактирование дерева конфигурации, написание кода в модулях, конструирование форм, запросов, макетов печатных форм и ролей доступа. Запускается он из того же дистрибутива платформы, что и пользовательский режим, — отдельной установки не требуется.
В конфигуратор встроены вспомогательные конструкторы: конструктор запросов с визуальной сборкой соединений таблиц, конструктор печатных форм, конструктор движений документа по регистрам, конструктор форм. Они генерируют шаблонный код, который затем дорабатывается вручную. Для начинающего разработчика это самый быстрый способ получить рабочий результат.
Отладка выполняется через подключение к сеансу предприятия: точки останова, пошаговое исполнение, табло значений, стек вызовов. Изменения структуры метаданных применяются через команду «Обновить конфигурацию базы данных» — платформа сама реструктуризует таблицы, при необходимости перенося данные в новую структуру.
Встроенный язык 1С и язык запросов
Программная логика пишется на встроенном языке 1С — высокоуровневом языке с русскоязычным и англоязычным синтаксисом. Код размещается в модулях: модулях объектов, форм, общих модулях, модулях менеджеров. Язык содержит встроенные типы для работы с датами, таблицами значений, структурами, а также объектную модель доступа к данным конфигурации.
Для выборки данных используется собственный язык запросов, синтаксически близкий к SQL, но работающий с объектами конфигурации, а не с физическими таблицами. Запросы поддерживают соединения, группировки, итоги, виртуальные таблицы регистров (остатки, обороты, срезы последних). Пример простого запроса:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Товар,
| Номенклатура.Наименование КАК Наименование
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ПометкаУдаления";
Результат = Запрос.Выполнить().Выгрузить();
Поверх языка запросов работает система компоновки данных (СКД) — механизм построения отчётов, где разработчик описывает набор данных и настройки, а пользователь может самостоятельно менять группировки, отборы и оформление без изменения кода. СКД — стандартный способ создания аналитических отчётов в прикладных решениях.
1C:EDT — современная среда для командной разработки
1C:Enterprise Development Tools — среда разработки на базе Eclipse, ориентированная на крупные проекты и командную работу. В отличие от конфигуратора, EDT хранит конфигурацию в виде файлов проекта, что обеспечивает полноценную интеграцию с системами контроля версий, прежде всего Git, без промежуточных выгрузок.
EDT предоставляет расширенный анализ кода: проверку типов, поиск неиспользуемых переменных, контроль стандартов разработки, быструю навигацию по метаданным. Среда подходит для проектов, где несколько разработчиков параллельно изменяют одну конфигурацию и требуется ревью изменений через ветки и слияния.
Конфигуратор или EDT
Подходит для одиночной разработки, быстрых доработок и поддержки типовых решений. Ограничение: слабая встроенная поддержка Git и командной работы.
Подходит для командных проектов, разработки собственных конфигураций и расширений с контролем версий. Ограничение: требует больше ресурсов и привыкания к интерфейсу Eclipse.
Выбор между инструментами не является окончательным: конфигурацию можно переносить между форматами, а многие команды комбинируют оба — например, разработку ведут в EDT, а отладку в клиентском приложении запускают из конфигуратора.
Расширения конфигурации — доработка без изменения типового решения
Расширение — это механизм, позволяющий добавить или изменить объекты, формы, модули и роли поверх основной конфигурации, не снимая её с поддержки поставщика. Основная конфигурация остаётся нетронутой, поэтому обновления типового решения устанавливаются штатно, а расширение применяется поверх новой версии.
Через расширения можно добавлять собственные справочники, документы и отчёты, изменять формы, перехватывать обработчики событий с аннотациями «Перед», «После», «Вместо», дополнять модули. Это рекомендуемый способ адаптации типовых конфигураций под требования конкретной компании.
Ограничения у расширений есть: нельзя изменять типы реквизитов заимствованных объектов, часть механизмов (например, планы обмена с особыми настройками) дорабатывается сложнее, а при масштабных изменениях структуры данных всё равно требуется доработка основной конфигурации. Перед выбором подхода оценивается объём изменений: точечные доработки — в расширение, глубокая переработка логики — в отдельную конфигурацию на базе типовой.
Интеграция и внешние компоненты
Бизнес-приложение редко существует изолированно. Платформа предоставляет встроенные механизмы интеграции: HTTP-сервисы и веб-сервисы (SOAP) для приёма внешних запросов, HTTPСоединение для обращения к внешним API, планы обмена для обмена данными между базами 1С, форматы EnterpriseData и XDTO-пакеты для структурированного обмена.
Для задач, которых не покрывает встроенный язык — работа со специфическим оборудованием, криптография, нестандартные протоколы, — применяются внешние компоненты по технологии Native API. Это библиотеки, разрабатываемые на C++ или на языках вроде Python и Delphi, подключаемые к платформе на клиенте или сервере.
Мобильные приложения
Отдельное направление — мобильная платформа 1С, позволяющая собирать приложения для Android и iOS на той же модели метаданных. Разработчик создаёт мобильную конфигурацию, платформа формирует установочный пакет, а синхронизация с основной базой выполняется через веб-сервисы или механизм обмена.
- 1Сформулируйте прикладную задачу и определите, какие объекты метаданных она затрагивает.
- 2Решите, что уместнее: расширение, внешняя обработка или доработка конфигурации.
- 3Реализуйте изменения на копии рабочей базы, покройте код отладкой на тестовых данных.
- 4Проверьте обновление типовой конфигурации вместе с вашей доработкой.
- 5Перенесите результат в рабочую базу в нерабочее время, предварительно создав резервную копию.
Внешние обработки, отчёты и хранилище конфигурации
Для разовых сервисных задач — групповой обработки данных, загрузки из файлов, специализированных отчётов — используются внешние обработки и отчёты (файлы .epf и .erf). Они не изменяют конфигурацию и подключаются через механизм дополнительных отчётов и обработок, что делает их безопасным способом расширения функциональности без остановки системы.
При командной разработке в конфигураторе применяется хранилище конфигурации: разработчики захватывают объекты на редактирование, что исключает одновременное изменение одного объекта. Хранилище сохраняет историю версий и позволяет откатиться к предыдущему состоянию. В EDT эту роль выполняет Git.
Как проверить результат доработки
Расширение подключается без ошибок проверки применимости
Конфликты с заимствованными объектами после обновления конфигурации
Проведение документов и формирование отчётов работают как до доработки
Ошибки в типовых сценариях, не связанных напрямую с изменением
Новые объекты доступны только предусмотренным ролям
Объекты видны всем пользователям или недоступны исполнителям
Как выбрать инструмент под задачу
Единого «правильного» инструмента нет — выбор определяется масштабом и характером задачи. Небольшая печатная форма или загрузка данных — внешняя обработка. Адаптация типовой конфигурации под процессы компании — расширение в конфигураторе. Собственное отраслевое решение с командой разработчиков — EDT с Git. Интеграция с интернет-магазином — HTTP-сервисы плюс, при необходимости, внешние компоненты.
Как выбрать подход
Начинать освоение разумно с конфигуратора и учебной версии платформы: она распространяется бесплатно и позволяет выполнять полный цикл — от описания справочника до отчёта на СКД. Практика на небольшой учебной конфигурации даёт понимание модели метаданных быстрее, чем чтение документации без практики.
Что важно запомнить
Разработка в 1С ведётся в конфигураторе или 1C:EDT на встроенном языке через описание метаданных. Типовые решения дорабатывают расширениями, сервисные задачи решают внешними обработками, интеграции строят на HTTP-сервисах и планах обмена. Любые изменения структуры сначала проверяются на копии базы с резервной копией.
Часто задаваемые вопросы
Можно ли разрабатывать приложения 1С без знания программирования?
Частично да: значительную часть функциональности — справочники, документы, простые отчёты на СКД, печатные формы — можно создать через конструкторы и настройки без написания кода. Однако нестандартные проверки, расчёты и обработчики событий потребуют встроенного языка, поэтому для полноценной разработки базовые навыки программирования всё же нужны.
Чем расширение отличается от внешней обработки?
Расширение изменяет поведение самой конфигурации: добавляет объекты, перехватывает события форм и модулей. Внешняя обработка — отдельный файл, который запускается пользователем и работает с данными, но не меняет структуру и логику конфигурации. Обработка безопаснее, расширение — функциональнее.
Обязательно ли переходить с конфигуратора на 1C:EDT?
Нет. Конфигуратор остаётся полноценным инструментом и подходит для большинства задач доработки и поддержки. EDT оправдан при командной разработке, необходимости полноценного Git- workflow и работе над крупными собственными конфигурациями.
На каких языках можно писать для 1С, кроме встроенного?
Прикладная логика пишется только на встроенном языке 1С. Внешние компоненты по технологии Native API разрабатываются на C++, возможны варианты на других компилируемых языках. Для интеграций внешние системы могут использовать любые языки — взаимодействие идёт через HTTP, веб-сервисы или файловые форматы.
Как безопасно обновить типовую конфигурацию с доработками?
Если доработки выполнены расширением, обновление проходит штатно — после него нужно проверить применимость расширения. При прямой доработке конфигурации обновление выполняется через режим сравнения и объединения с ручным разбором изменённых объектов. В любом случае обновление сначала репетируется на копии базы.