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

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

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

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

Для разработки и доработки конфигураций 1С нужен один основной язык — встроенный язык платформы «1С:Предприятие», который часто называют «язык 1С» или по аналогии «1С-скрипт». Он синтаксически напоминает Pascal и Basic, поддерживает русские и английские ключевые слова и работает только внутри платформы: отдельно скомпилировать программу на нём вне 1С нельзя. Именно этот язык используется в модулях объектов, форм, отчётов и обработок.

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

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

Какие языки реально используются в экосистеме 1С

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

Встроенный язык 1С — это язык бизнес-логики: проведение документов, расчёты, обработчики событий, печатные формы. Язык запросов — язык чтения данных: отчёты, подборы, динамические списки. SQL нужен на уровне СУБД (MS SQL Server, PostgreSQL), когда требуется диагностика производительности или прямой анализ данных. JavaScript встречается в веб-расширениях, мобильных клиентах и при работе с внешними сервисами.

Язык / технологияГде применяетсяОбязательность
Встроенный язык 1СМодули, обработчики, бизнес-логикаОбязателен
Язык запросов 1СОтчёты, выборки, динамические спискиОбязателен
СКД (схема компоновки данных)Отчёты без программирования кодаЖелательна
SQLРабота с СУБД, оптимизация, диагностикаДля администраторов и опытных разработчиков
JavaScriptВеб-клиент, мобильная разработка, интеграцииПо необходимости
HTTP, JSON, XMLОбмен с сайтами, API, ЭДОДля интеграционных задач

Встроенный язык 1С: что это и на что он похож

Встроенный язык 1С — предметно-ориентированный язык, заточенный под учётные задачи. Синтаксис ближе всего к Pascal и Visual Basic: процедуры, функции, условные операторы «Если…Тогда…КонецЕсли», циклы «Для» и «Пока». Ключевая особенность — возможность писать код полностью на русском языке, что снижает порог входа для специалистов без программистского прошлого.

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

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

Язык запросов 1С и SQL: в чём разница

Язык запросов 1С внешне похож на SQL: те же ключевые слова ВЫБРАТЬ, ИЗ, ГДЕ, СГРУППИРОВАТЬ ПО. Но он оперирует не таблицами базы данных, а объектами метаданных — справочниками, документами, регистрами накопления. Платформа сама транслирует запрос в SQL-диалект конкретной СУБД, поэтому разработчик не заботится о физической структуре хранения.

Особенности языка запросов 1С, которых нет в классическом SQL: виртуальные таблицы (например, «Остатки» и «Обороты» регистров), обращение к реквизитам через точку, иерархические итоги, разрезы периодов. Эти конструкции закрывают типовые учётные задачи буквально несколькими строками.

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

Что учить под конкретную роль

Набор языков зависит от того, кем вы планируете работать. Универсального «списка для всех» нет, и попытка выучить всё сразу — типичная причина брошенного обучения.

Пользователь или консультант

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

Разработчик конфигураций

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

Специалист по интеграциям

К базовому набору добавляются HTTP-запросы и REST API, форматы JSON и XML, веб-сервисы (HTTP-сервисы и SOAP внутри платформы), механизмы обмена данными и планы обмена. Здесь же полезен JavaScript — для понимания внешних систем, с которыми обменивается 1С.

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

Только встроенный язык 1С

Подходит для старта и простых доработок. Ограничение: без языка запросов вы не сможете делать отчёты и эффективные выборки.

Встроенный язык + запросы + СКД

Стандартный набор разработчика 1С, закрывает большинство рабочих задач и вакансий.

Полный стек с SQL и JavaScript

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

С чего начать обучение: порядок действий

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

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

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

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

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

Типичные ошибки при выборе и изучении языка

Главная ошибка — начинать с изучения «внешних» языков: Python, C#, Java, полагая, что они пригодятся в 1С напрямую. Внутри конфигурации они не используются. Внешние компоненты и скрипты — нишевые сценарии, и начинать с них бессмысленно.

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

Типичные ошибки
01
Учить Python или C# вместо встроенного языка — внутри 1С они не выполняются, время потрачено впустую для этой цели
02
Игнорировать язык запросов и выбирать данные циклами — код работает медленно и плохо масштабируется
03
Писать серверную логику в клиентском контексте формы — падает в веб-клиенте и нарушает архитектуру
04
Править типовую конфигурацию напрямую вместо расширений — теряется поддержка и усложняется обновление
05
Учить синтаксис без практики на объектах — знания не складываются в рабочий навык

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

Признак того, что язык освоен на рабочем уровне, — вы можете самостоятельно выполнить типовую задачу от постановки до результата: создать или доработать объект, написать проведение, построить отчёт и проверить его на реальных данных. Не «понимаю, что делает код», а «могу написать и отладить сам».

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

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

Как проверить уровень владения

Написание обработчика проведения документа
Норма

Код пишется без подглядывания в справку, движения по регистрам корректны

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

Код копируется из примеров и не работает при малейшем изменении условий

Построение отчёта
Норма

Отчёт собран на СКД с запросом, параметры и отборы работают

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

Данные собираются циклом в коде, отчёт тормозит на больших объёмах

Поиск ошибки
Норма

Ошибка находится отладчиком за разумное время

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

Единственный метод — метод тыка и сообщения пользователю

FAQ: частые вопросы о языках для 1С

Можно ли программировать в 1С на английском синтаксисе?

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

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

Нет. Пользовательская работа — ввод документов, отчёты, закрытие периода — не требует написания кода. Полезно лишь умение настраивать отчёты через «Изменить вариант отчёта», что программированием не является.

Правда ли, что 1С — это «не настоящее» программирование?

Нет. Разработка в 1С включает проектирование структур данных, оптимизацию запросов, клиент-серверную архитектуру, интеграции и работу с высокими нагрузками. Язык предметно-ориентированный, но задачи — полноценные инженерные.

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

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

Нужен ли Python или C# для работы с 1С?

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

Что такое расширения конфигурации и нужен ли для них отдельный язык?

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

Итог

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

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