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

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

1С — это язык программирования? Разбираемся в терминах

Что такое 1С: платформа, язык программирования или программа? Объясняем разницу простыми словами, показываем примеры кода и объясняем, с чего начать изучение.

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

Короткий ответ: 1С — это не один язык программирования, а целая технологическая платформа, внутри которой есть собственный встроенный язык. Официально он называется «встроенный язык 1С» (в среде разработчиков его часто называют просто «язык 1С» или «1С script»). Он компилируется в байт-код и выполняется внутри платформы «1С:Предприятие», а не сам по себе, как Python или C++.

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

Что на самом деле скрывается за словом «1С»

Термин «1С» используется минимум в четырёх значениях. Первое — фирма «1С», компания-разработчик. Второе — платформа «1С:Предприятие», технологическая основа, которая включает среду исполнения, систему управления базами данных, механизмы отчётности и интеграции. Третье — прикладные решения (конфигурации): «1С:Бухгалтерия», «1С:Зарплата и управление персоналом», «1С:Управление торговлей» и другие. Четвёртое — встроенный язык программирования.

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

Как устроен встроенный язык 1С

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

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

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

bsl
Процедура РассчитатьСкидку(Документ) Экспорт
	Если Документ.Сумма > 100000 Тогда
		Документ.Скидка = Документ.Сумма * 0.05;
	Иначе
		Документ.Скидка = 0;
	КонецЕсли;
КонецПроцедуры

Где именно пишут код в 1С

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

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

Типичный сценарий: доработка типовой конфигурации

На практике большинство задач выглядит так: нужно добавить проверку при проведении документа, вывести дополнительное поле в отчёт или сделать обмен данными с сайтом. Разработчик открывает конфигуратор, находит нужный объект метаданных, дописывает обработчик события (например, «ПриЗаписи») и проверяет результат на тестовой копии базы.

Как выполнить первую доработку
  1. 1
    Сделайте копию рабочей базы и выполняйте все изменения только на ней
  2. 2
    Откройте конфигуратор и найдите нужный объект метаданных через поиск
  3. 3
    Добавьте код в обработчик события или общий модуль
  4. 4
    Обновите конфигурацию базы данных (клавиша F7)
  5. 5
    Запустите режим предприятия и проверьте поведение на тестовых данных
  6. 6
    Только после успешной проверки переносите изменения в рабочую базу

Чем язык 1С отличается от универсальных языков

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

Запросы к данным пишутся на отдельном языке запросов, похожем на SQL, но с обращением к объектам метаданных, а не к физическим таблицам. Это ещё один «язык внутри языка», который обязателен для разработчика 1С.

КритерийВстроенный язык 1СУниверсальные языки (Python, C#)
Область примененияТолько внутри платформы «1С:Предприятие»Любые задачи: веб, десктоп, аналитика, игры
СинтаксисРусский или английский, предметно-ориентированныйАнглийский, универсальный
Работа с БДВстроена в платформу, язык запросов на объектахЧерез библиотеки и ORM
Интерфейс пользователяГенерируется платформой из метаданныхСоздаётся отдельными средствами
Переносимость кодаНе работает вне платформыЗависит от языка, обычно высокая

Стоит ли учить язык 1С и кому он подходит

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

Как первый язык «для общего развития» он подходит хуже: навыки слабо переносятся в другие области программирования. Если планируете работать в веб-разработке, мобильных приложениях или data science, рациональнее начать с Python или JavaScript, а 1С осваивать уже как профильный инструмент.

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

Как выбрать путь

Нужно автоматизировать учёт, склад или зарплату в российской компанииИзучайте платформу 1С и встроенный язык — это прямой путь к задачам
Хотите универсальную профессию разработчика без привязки к одной экосистемеНачните с Python или JavaScript, 1С оставьте как опцию
Уже работаете бухгалтером или внедренцем и хотите дорабатывать конфигурацииДостаточно встроенного языка и языка запросов, универсальные языки не обязательны
Планируете интеграции 1С с внешними системамиДобавьте к языку 1С базовые знания HTTP, JSON и SQL

Частые ошибки новичков при изучении языка 1С

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

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

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

Как проверить, что вы движетесь в правильном направлении

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

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

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

Тестирование
Норма

Код проверен на копии базы с реальными объёмами данных

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

Проверка только на пустой тестовой базе

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

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

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

Заметные паузы при проведении документов

Обновляемость
Норма

Изменения вынесены в расширение или аккуратно задокументированы

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

Типовой код переписан без следов, обновление невозможно

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

1С — это язык программирования или программа?

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

На каком языке написана сама 1С?

Ядро платформы «1С:Предприятие» написано преимущественно на C++. Пользователи и разработчики прикладных решений с этим не сталкиваются — они работают со встроенным языком и конструкторами конфигуратора.

Почему в 1С код пишут на русском языке?

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

Можно ли найти работу, зная только язык 1С?

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

Сколько времени нужно, чтобы освоить язык 1С с нуля?

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

Нужно ли знать SQL для работы с 1С?

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

Итог

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

1С — это платформа со встроенным предметно-ориентированным языком, а не самостоятельный язык программирования. Код пишется в модулях конфигурации, тесно связан с объектами метаданных и работает только внутри платформы. Изучать его стоит вместе с основами учёта и языком запросов, а все доработки проверять на копии базы.