Разработка и Конфигурация · 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С — это обработчик события в модуле объекта или формы. Например, при проведении документа нужно проверить заполнение реквизита и отказать, если он пуст.
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Если Не ЗначениеЗаполнено(Склад) Тогда
Сообщить("Не указан склад!");
Отказ = Истина;
Возврат;
КонецЕсли;
КонецПроцедуры
Здесь видно характерные черты языка: процедура с параметрами, условный оператор, встроенная функция ЗначениеЗаполнено, булево значение Истина и вывод сообщения пользователю. Установка параметра Отказ в Истина отменяет проведение — это типовой приём управления поведением платформы.
С чего начать изучение языка 1С
Эффективный путь — идти от платформы к языку, а не наоборот. Сначала стоит понять, что такое справочники, документы, регистры и как они связаны, потому что код в 1С почти всегда обслуживает эти объекты. Без понимания метаданных синтаксис сам по себе мало что даёт.
Практика начинается с простых задач: создать учебную конфигурацию, добавить справочник и документ, написать обработчик проведения, сделать простой отчёт через конструктор запросов. Дальше — изучение языка запросов, работы с формами и типовых механизмов вроде движений по регистрам.
- 1Установите учебную версию платформы и откройте конфигуратор
- 2Изучите основные объекты метаданных: справочники, документы, регистры сведений и накопления
- 3Напишите первый обработчик события — например, проверку при проведении документа
- 4Освойте язык запросов и конструктор запросов для выборок данных
- 5Разберите чужой код в типовой конфигурации или учебном примере
- 6Переходите к формам, отчётам на СКД и обменам данными
Для проверки знаний полезно брать реальные учётные задачи: «при продаже списывать товар со склада», «рассчитать остаток на дату». Такие задачи заставляют одновременно применять язык, запросы и понимание предметной области — именно это и требуется от разработчика 1С на практике.
Что важно запомнить
1С — это платформа со встроенным предметно-ориентированным языком, имеющим русский и английский синтаксис. Код исполняется только внутри платформы и описывает поведение объектов учёта. Изучать его эффективнее всего через метаданные и практические учётные задачи.
Частые вопросы о языке 1С
1С — это язык программирования или программа?
Это и то, и другое. «1С:Предприятие» — платформа (среда исполнения), а встроенный язык — средство описания логики внутри неё. Когда говорят «программист 1С», имеют в виду разработчика на встроенном языке платформы.
Правда ли, что в 1С код пишут на русском языке?
Да, синтаксис поддерживает русские ключевые слова: Если, Тогда, Цикл, Функция. Это полноценный вариант языка, а не перевод интерфейса. Параллельно существует равнозначный английский синтаксис, и оба можно использовать в одном проекте.
Похож ли язык 1С на SQL?
Нет, это разные вещи. Встроенный язык 1С — императивный язык общей логики. Но внутри платформы есть отдельный язык запросов, который действительно напоминает SQL: с выборками, соединениями, группировками и условиями, только работает с объектами конфигурации.
Можно ли с знанием 1С перейти на другой язык?
Да. Базовые концепции — переменные, циклы, условия, функции — универсальны. Придётся освоить типизацию, работу с базами через SQL и экосистему нового языка, но алгоритмическое мышление и понимание бизнес-процессов переносятся полностью.
Нужно ли знать программирование, чтобы пользоваться 1С?
Нет. Пользователю достаточно освоить интерфейс прикладного решения. Встроенный язык нужен разработчикам и внедренцам, которые дорабатывают конфигурации, пишут отчёты, обработки и интеграции.
Сложно ли выучить язык 1С с нуля?
Синтаксис прост и считается одним из самых доступных для входа в программирование, особенно русскоязычным новичкам. Основная сложность — не язык, а объём платформы: метаданные, запросы, механизмы учёта и типовые конфигурации требуют времени на изучение.