Разработка и Конфигурация · 10 мин
Какой язык программирования используется в 1С 8.3
Разбираем, на каком языке программируют в 1С 8.3: встроенный язык, синтаксис, русские и английские команды, где писать код и с чего начать изучение.
Платформа «1С:Предприятие 8.3» использует собственный встроенный язык программирования, который часто называют «язык 1С» или «встроенный язык 1С». Это не C++, не Java и не Python — отдельная разработка фирмы «1С», созданная специально для описания бизнес-логики: проведения документов, расчёта итогов, формирования отчётов и обработки данных учёта.
Главная особенность языка — полная поддержка русского синтаксиса. Ключевые слова, имена процедур и встроенных функций можно писать по-русски («Если», «Цикл», «Сообщить») или по-английски («If», «Do», «Message») — оба варианта равнозначны и могут смешиваться в одном модуле. Это снижает порог входа для бухгалтеров и аналитиков, которые начинают программировать без технического образования.
Код на встроенном языке выполняется не как отдельная программа, а внутри платформы 1С: в модулях объектов, форм, общих модулях и обработчиках событий. Платформа сама управляет компиляцией, выполнением и взаимодействием с базой данных, поэтому разработчик работает с прикладной логикой, а не с низкоуровневыми деталями.
Что представляет собой встроенный язык 1С
Встроенный язык 1С — это предметно-ориентированный язык высокого уровня. Он типизирован динамически: тип переменной определяется значением в момент присваивания, объявлять типы заранее не требуется. Язык поддерживает процедуры и функции, условные операторы, циклы, работу с коллекциями (массивы, структуры, соответствия, списки значений), датами, строками и числами.
Главное отличие от языков общего назначения — тесная интеграция с объектами конфигурации. Из кода напрямую доступны документы, справочники, регистры, перечисления и отчёты: например, выражение Документы.РеализацияТоваров.СоздатьДокумент() создаёт новый документ без SQL-вставок и ручной работы с таблицами.
Русский и английский синтаксис: как это работает
Каждая конструкция языка имеет два написания. Например, условие можно записать как Если Сумма > 0 Тогда, так и If Sum > 0 Then. Компилятор воспринимает оба варианта одинаково, а конфигуратор умеет автоматически переводить текст модуля между синтаксисами.
В российских типовых конфигурациях (1С:Бухгалтерия, 1С:Зарплата и управление персоналом, 1С:Управление торговлей) код написан на русском синтаксисе. При доработке типового решения лучше придерживаться того же стиля, чтобы модуль оставался читаемым для других разработчиков и не ломался при обновлениях.
Имена собственных переменных, процедур и функций также можно задавать кириллицей. Это законная и распространённая практика: идентификатор ОстатокНаСкладе ничем не хуже WarehouseBalance, а для предметной области учёта часто понятнее.
Где именно пишется код в 1С 8.3
Весь код размещается в модулях — текстовых контейнерах внутри конфигурации. Основные виды модулей: модуль объекта (например, документа или справочника), модуль формы, модуль менеджера объекта, общие модули, модуль приложения и модуль внешнего соединения. Каждый из них выполняется в своём контексте — на клиенте, на сервере или в обоих режимах.
Редактирование ведётся в конфигураторе — штатной среде разработки платформы. Открыть модуль можно из дерева конфигурации: двойной щелчок по объекту, вкладка с модулем. Современная альтернатива — 1C:Enterprise Development Tools (EDT), среда на базе Eclipse с более развитыми средствами анализа кода, но конфигуратор остаётся основным инструментом для большинства доработок.
Код срабатывает через события: «ПриЗаписи», «ОбработкаПроведения», «ПриОткрытии» формы и другие. Разработчик не запускает программу «с нуля», а дополняет реакцию системы на действия пользователя или регламентные операции.
- 1Откройте конфигуратор и загрузите конфигурацию базы
- 2В дереве конфигурации найдите нужный объект, например документ
- 3Откройте модуль объекта через контекстное меню
- 4Добавьте процедуру с обработчиком события, например ОбработкаПроведения
- 5Выполните синтаксическую проверку модуля
- 6Обновите конфигурацию базы данных и проверьте поведение в режиме предприятия
Язык запросов — вторая половина разработки
Кроме встроенного языка, в 1С 8.3 есть отдельный язык запросов. Он декларативный и похож на SQL: разработчик описывает, какие данные нужны, а платформа сама строит оптимальный план выборки. Запросы пишутся по-русски: ВЫБРАТЬ ... ИЗ ... ГДЕ ..., поддерживают соединения, группировки, итоги, виртуальные таблицы регистров.
Типичная схема работы: запрос выбирает данные из базы, а встроенный язык обрабатывает результат — обходит выборку, вычисляет значения, заполняет табличные части или формирует отчёт. Писать обходы данных вручную через циклы вместо запроса — распространённая ошибка новичков, которая резко замедляет работу на больших объёмах.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Товар
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ПометкаУдаления";
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
Сообщить(Строка(Результат.Товар));
КонецЦикла;Чем язык 1С отличается от других языков программирования
Сравнивать встроенный язык 1С с языками общего назначения корректно только по отдельным характеристикам. Ниже — ключевые различия, важные для выбора инструмента и обучения.
| Критерий | Встроенный язык 1С | Языки общего назначения (C#, Java, Python) |
|---|---|---|
| Область применения | Только внутри платформы 1С, учётная логика | Любые программы и сервисы |
| Синтаксис | Русский и английский на выбор | Английский |
| Работа с данными | Объекты конфигурации и язык запросов из коробки | Через драйверы БД и SQL |
| Среда исполнения | Платформа 1С:Предприятие | ОС, виртуальные машины, интерпретаторы |
| Порог входа | Низкий для специалистов предметной области | Требуется базовая подготовка по программированию |
Для интеграций 1С умеет обращаться к внешнему миру: HTTP-запросы, веб-сервисы, COM-объекты, файлы, работа с XML и JSON встроены в платформу. Но обратное неверно — выполнить код на встроенном языке вне платформы нельзя.
Когда какой инструмент выбирать
Для всей учётной логики внутри конфигурации: проведение, расчёты, печатные формы, обмены. Единственный вариант для доработки типовых решений.
Для выборки и агрегации данных из базы. Всегда предпочтительнее ручных циклов по таблицам.
Для смежных задач вне платформы: отдельные сервисы, интеграционные шины, обработка файлов до загрузки в 1С.
С чего начать изучение языка 1С 8.3
Эффективный порядок освоения выглядит так: сначала структура конфигурации и объекты метаданных, затем базовый синтаксис встроенного языка, далее язык запросов и только потом специализированные темы — СКД, управляемые формы, обмены данными. Попытка учить язык отдельно от объектов конфигурации даёт мало пользы, потому что вся сила языка — в работе с метаданными.
Практику удобно начинать на учебной версии платформы и простой самостоятельной конфигурации: создать справочник, документ с проведением по регистру и отчёт. Такой минимальный комплект покрывает основную массу реальных задач доработки.
Ограничения встроенного языка и способы их обойти
У языка есть объективные границы: нет наследования классов в привычном ООП-смысле, нет многопоточности внутри одного сеанса, ограниченные средства работы с памятью и низкоуровневыми структурами. Для учётных задач это редко становится проблемой, но для сложных вычислений или нестандартных интеграций возможностей может не хватать.
Стандартные пути расширения возможностей: внешние компоненты по технологии Native API или COM, вызов веб-сервисов, фоновые задания для параллельного выполнения, вынос тяжёлой логики во внешние сервисы с обменом через HTTP или файлы. Выбирать способ стоит исходя из задачи, а не пытаться реализовать всё внутри одного модуля.
Что важно запомнить
В 1С 8.3 программируют на собственном встроенном языке с русским и английским синтаксисом, дополненном языком запросов. Код живёт в модулях конфигурации, исполняется платформой и напрямую работает с объектами учёта. Для эффективной разработки учите язык вместе с объектной моделью конфигурации и всегда тестируйте доработки на копии базы.
Частые вопросы
Можно ли программировать в 1С 8.3 на английском языке?
Да. Все ключевые слова и встроенные функции имеют английские аналоги, и конфигуратор умеет переключать отображение синтаксиса. Однако типовые российские конфигурации написаны на русском варианте, поэтому для их доработки знание русского синтаксиса практически обязательно.
Похож ли язык 1С на BASIC или Pascal?
По структуре язык напоминает BASIC-подобные языки: простой синтаксис, отсутствие обязательной типизации, служебные слова вместо фигурных скобок. Но прямой совместимости нет — это самостоятельный язык, заточенный под работу с объектами конфигурации и запросами.
Нужно ли знать SQL для работы с 1С 8.3?
Знание SQL не обязательно, но понимание логики выборок сильно помогает: язык запросов 1С построен на тех же принципах — выборка, соединение, группировка. Прямые SQL-запросы к базе в обход платформы использовать не рекомендуется, это нарушает целостность данных и лицензионные условия.
Можно ли использовать Python или C# внутри 1С?
Напрямую выполнять код на других языках внутри платформы нельзя. Интеграция делается иначе: через внешние компоненты, COM-объекты, веб-сервисы и HTTP-запросы, когда внешняя программа и 1С обмениваются данными.
Что такое EDT и заменяет ли он конфигуратор?
1C:Enterprise Development Tools — среда разработки на базе Eclipse с расширенной проверкой кода, системой контроля версий и поддержкой расширений. Она не заменяет конфигуратор полностью: оба инструмента поддерживаются, и выбор зависит от проекта и привычек команды.
Сколько времени нужно, чтобы научиться писать на языке 1С?
Базовые доработки — простые обработки, печатные формы, небольшие изменения документов — обычно осваиваются за несколько недель практики при наличии понимания учётных процессов. Уверенное владение, включая запросы, СКД и оптимизацию, требует месяцев реальной работы над задачами.