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

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

1С: что это за язык программирования и как он работает

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

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

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

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

Что представляет собой встроенный язык 1С

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

Синтаксис напоминает помесь BASIC и Pascal: блочная структура через ключевые слова, окончание операторов точкой с запятой, процедуры и функции с явным окончанием КонецПроцедуры / КонецФункции. Регистр букв не имеет значения: Сообщить и СООБЩИТЬ — одна и та же команда.

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

Русский и английский синтаксис: в чём разница

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

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

Выбор варианта синтаксиса

Русский синтаксис

Стандарт для доработки типовых конфигураций; код согласуется с существующими модулями и документацией 1С

Английский синтаксис

Подходит для новых проектов и команд с опытом других языков; при доработке типовых решений создаёт смешение стилей

Смешанный стиль

Технически работает, но затрудняет чтение и сопровождение — в командной разработке обычно запрещён стандартами

Где пишется код: конфигуратор и EDT

Основная среда разработки — конфигуратор, встроенный в платформу. В нём есть редактор кода с подсветкой синтаксиса, контекстной подсказкой, синтакс-помощником и отладчиком. Отладка работает по точкам останова, с просмотром значений переменных и стека вызовов — этого достаточно для большинства прикладных задач.

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

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

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

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

Третье — ограничения. На встроенном языке не напишешь драйвер, игру или веб-сервер. Для задач вне учёта (парсинг сложных форматов, машинное обучение, высоконагруженные сервисы) 1С интегрируют с внешними инструментами через HTTP-сервисы, COM, внешние компоненты или обмен файлами.

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

Как устроен простой фрагмент кода

Типичный код в 1С — это обработчик события в модуле объекта или формы. Например, при проведении документа нужно проверить заполнение реквизита и отказать, если он пуст.

Процедура ОбработкаПроведения(Отказ, РежимПроведения)

Если Не ЗначениеЗаполнено(Склад) Тогда

Сообщить("Не указан склад!");

Отказ = Истина;

Возврат;

КонецЕсли;

КонецПроцедуры

Здесь видно характерные черты языка: процедура с параметрами, условный оператор, встроенная функция ЗначениеЗаполнено, булево значение Истина и вывод сообщения пользователю. Установка параметра Отказ в Истина отменяет проведение — это типовой приём управления поведением платформы.

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

С чего начать изучение языка 1С

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

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

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

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

Итог

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

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

Частые вопросы о языке 1С

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

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

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

Да, синтаксис поддерживает русские ключевые слова: Если, Тогда, Цикл, Функция. Это полноценный вариант языка, а не перевод интерфейса. Параллельно существует равнозначный английский синтаксис, и оба можно использовать в одном проекте.

Похож ли язык 1С на SQL?

Нет, это разные вещи. Встроенный язык 1С — императивный язык общей логики. Но внутри платформы есть отдельный язык запросов, который действительно напоминает SQL: с выборками, соединениями, группировками и условиями, только работает с объектами конфигурации.

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

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

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

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

Сложно ли выучить язык 1С с нуля?

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