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

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

1С: на чём программировать и какие инструменты выбрать

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

Разработка в экосистеме 1С строится вокруг собственного встроенного языка платформы, который часто неформально называют «язык 1С» или «1С:Предприятие скрипт». Это высокоуровневый предметно-ориентированный язык: в нём из коробки есть объекты «Документ», «Справочник», «РегистрСведений», запросы к базе данных и механизмы проведения, поэтому типовые учётные задачи решаются в разы быстрее, чем на языках общего назначения.

При этом «программировать в 1С» — не всегда значит писать только на встроенном языке. Реальные проекты включают язык запросов 1С, схемы компоновки данных для отчётов, внешние компоненты на C++ или C#, интеграции через HTTP и веб-сервисы, а иногда и мобильную разработку. Понимание того, какой инструмент для какой задачи предназначен, — главный навык начинающего разработчика.

Ниже разберём, какие языки и среды разработки существуют в экосистеме 1С, чем отличается конфигуратор от EDT, когда достаточно расширения, а когда нужна внешняя обработка, и с чего начать обучение без риска «уронить» рабочую базу.

Встроенный язык 1С:Предприятие — основа всей разработки

Встроенный язык — это то, что имеют в виду, когда говорят «программировать в 1С». Синтаксис напоминает смесь Pascal и BASIC, а ключевая особенность — возможность писать код как на русском, так и на английском языке: операторы Если...Тогда...КонецЕсли имеют английские эквиваленты If...Then...EndIf. В типовых конфигурациях и большинстве проектов используется русский синтаксис.

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

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

Язык запросов и СКД: где пишется половина «кода»

Вторая по значимости часть разработки — язык запросов 1С. Он похож на SQL, но работает с объектами конфигурации, а не с физическими таблицами: ВЫБРАТЬ Номенклатура.Наименование ИЗ Справочник.Номенклатура. Запросы поддерживают соединения, группировки, виртуальные таблицы регистров (остатки, обороты, срез последних) и временные таблицы.

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

Частая ошибка новичков — обходные выборки (Выборка.Следующий()) там, где правильнее написать один запрос с соединением. Это приводит к тысячам обращений к базе вместо одного и катастрофической деградации производительности на больших объёмах данных.

Типичные ошибки
01
Запрос в цикле: на каждой итерации идёт обращение к СУБД — замените одним запросом с соединением или пакетным запросом
02
Игнорирование виртуальных таблиц и ручной расчёт остатков обходом регистра
03
Отчёт на программном выводе табличного документа там, где СКД дала бы результат без кода
04
Код в модуле формы вместо общего серверного модуля — логика не переиспользуется

Где писать код: Конфигуратор или 1C:EDT

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

1C:EDT (Enterprise Development Tools) — среда на базе Eclipse, ориентированная на командную разработку. Она даёт контроль версий через Git из коробки, проверку кода статическим анализом, работу с проектами и более удобную навигацию по большим конфигурациям. EDT хранит конфигурацию в виде файлов, что упрощает слияние изменений от нескольких разработчиков.

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

Сравнение вариантов

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

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

1C:EDT

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

Конфигуратор + внешнее хранилище

Компромисс для команд на старом стеке: хранилище конфигурации даёт версионирование, но уступает Git в гибкости

Расширения, внешние обработки и отчёты

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

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

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

Как выбрать форму доработки

Нужна разовая загрузка, обработка данных или дополнительная печатная формаСделайте внешнюю обработку или отчёт — конфигурация не меняется
Нужно изменить поведение типовых документов или добавить свои объектыИспользуйте расширение конфигурации, чтобы сохранить поддержку типовой
Изменения глубокие и расширением не покрываютсяДоработка основной конфигурации с фиксацией изменений для будущих обновлений

Внешние языки: компоненты, интеграции и мобильная разработка

Когда возможностей встроенного языка не хватает, применяют внешние компоненты по технологии Native API или COM — их пишут на C++ или C#. Типичные сценарии: работа с торговым оборудованием, криптография, специфические протоколы обмена. Это уже нишевые задачи, требующие знания соответствующего языка.

Интеграции с внешними системами чаще всего строятся на HTTP-запросах, REST API, веб-сервисах (SOAP) и очередях сообщений. Со стороны 1С это всё тот же встроенный язык (объекты HTTPСоединение, HTTPЗапрос), но понимание JSON, XML и принципов REST обязательно. В веб-клиенте и при разработке нестандартных интерфейсов может понадобиться JavaScript, а мобильные приложения пишутся на платформе мобильной разработки 1С — снова на встроенном языке.

Как начать обучение без риска для рабочей базы

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

Никогда не экспериментируйте в рабочей базе. Правильный порядок: копия базы (файловая копия .dt или копия на тестовом сервере) → доработка и отладка → перенос в рабочую среду. Обновление конфигурации базы данных на рабочей системе без резервной копии — самая частая причина потери данных у начинающих.

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

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

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

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

Можно ли писать код 1С на английском языке?

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

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

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

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

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

Можно ли интегрировать 1С с сайтом или CRM без сторонних языков?

Да, штатными средствами: HTTP-сервисы, веб-сервисы и планы обмена реализуются на встроенном языке. Сторонние языки нужны только на противоположной стороне интеграции — например, для доработки самого сайта.

Где тренироваться, если нет лицензии 1С?

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

Итог

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

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