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

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

1С код: что это такое и как с ним работать

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

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

Встроенный язык 1С по синтаксису напоминает упрощённый Pascal и существует в двух вариантах: русском и английском. В типовых российских конфигурациях код пишется на русском — с операторами «Если», «Тогда», «Цикл», «Процедура». Это снижает порог входа: разобраться в логике может не только программист, но и опытный пользователь или внедренец без профильного образования.

Понимать, что такое код 1С и где он находится, полезно даже тем, кто не планирует программировать. Это помогает грамотно ставить задачи разработчику, проверять доработки перед обновлением конфигурации и понимать, почему та или иная ошибка возникает в базе.

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

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

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

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

Где находится код в конфигурации

Весь код конфигурации распределён по модулям, и найти нужный фрагмент можно только в режиме конфигуратора. Основные места расположения кода:

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

Чтобы открыть модуль, в конфигураторе нужно найти объект в дереве конфигурации, вызвать контекстное меню и выбрать пункт «Открыть модуль» или «Открыть модуль формы». Для поиска по всему коду сразу используется глобальный поиск (Ctrl+Shift+F) — он находит нужную процедуру или строку во всех модулях конфигурации.

Как найти нужный код в конфигураторе
  1. 1
    Откройте базу в режиме конфигуратора и раскройте дерево конфигурации
  2. 2
    Найдите нужный объект: документ, справочник или обработку
  3. 3
    Через контекстное меню откройте модуль объекта или модуль формы
  4. 4
    Если место неизвестно — используйте глобальный поиск по тексту процедуры или сообщения об ошибке
  5. 5
    Проверьте найденный фрагмент: убедитесь, что это именно та логика, которая вызывает интересующее поведение

Как выглядит код 1С: базовые конструкции

Минимальная единица кода — процедура или функция. Процедура выполняет действия, функция дополнительно возвращает значение. Внутри используются условия, циклы и обращения к объектам базы.

Функция РассчитатьСуммуСНДС(Сумма, СтавкаНДС)

Если СтавкаНДС = 0 Тогда

Возврат Сумма;

КонецЕсли;

Возврат Сумма + Сумма * СтавкаНДС / 100;

КонецФункции

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

Переменные объявляются неявно, при первом присваивании. Для обращения к реквизитам документа используется точечная нотация: Документ.Сумма, СтрокаТовары.Количество. Для выборки данных применяются запросы — отдельная конструкция с ключевыми словами «ВЫБРАТЬ», «ИЗ», «ГДЕ».

1c
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Номенклатура.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ НЕ Номенклатура.ПометкаУдаления";
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
    // обработка строки
КонецЦикла;

Кто и зачем изменяет код 1С

Стандартный сценарий — доработка типовой конфигурации под специфику компании: добавление нового реквизита в документ, изменение алгоритма расчёта скидки, создание нестандартного отчёта. Такие изменения выполняет штатный программист 1С или специалист внедренца.

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

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

Способы доработки функционала

Изменение кода конфигурации

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

Расширение конфигурации

Подходит для добавления реквизитов, форм и обработчиков без изменения типового кода. Обновление проходит проще, но не все объекты и сценарии доступны для переопределения.

Внешняя обработка или отчёт

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

Риски при изменении кода и как их избежать

Главный риск — повреждение рабочей базы. Ошибка в коде проведения документа может привести к некорректным движениям по регистрам: остатки на складе и в учёте «поплывут», и восстановить правильные данные будет сложно. Ошибка в коде обмена может рассылать неверные данные в связанные системы.

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

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

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

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

Для поиска синтаксических ошибок используется встроенная проверка конфигурации (меню «Конфигурация» → «Проверка конфигурации»). Она выявит несуществующие процедуры, ошибки в запросах и неиспользуемые переменные.

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

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

Проверка конфигурации в конфигураторе
Норма

Ошибок и критичных предупреждений нет

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

Сообщения о несуществующих методах или ошибках в запросах

Проведение тестового документа
Норма

Документ проводится, движения по регистрам соответствуют ожиданиям

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

Ошибка при проведении, лишние или отсутствующие движения

Работа под пользователем с ограниченными правами
Норма

Функция доступна и работает корректно

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

Ошибки доступа или отсутствие кнопок и полей

Обновление конфигурации на тестовой копии
Норма

Обновление проходит без конфликтов, доработка сохраняется

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

Конфликты при объединении, затирание изменений

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

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

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

Для системного изучения используйте официальную документацию платформы (синтакс-помощник встроен прямо в конфигуратор и вызывается по Ctrl+F1 на любом операторе) и учебные конфигурации. Практика на копии реальной базы закрепляет материал лучше, чем абстрактные примеры.

Синтакс-помощник — недооценённый инструмент: выделите любой оператор или метод в коде и нажмите Ctrl+F1, чтобы увидеть описание, параметры и примеры использования. Это избавляет от необходимости искать справку во внешних источниках.
ПЗ
Практическое замечание

Часто задаваемые вопросы

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

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

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

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

Чем расширение конфигурации лучше прямой правки кода?

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

Что делать, если после доработки появилась ошибка в рабочей базе?

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

Где посмотреть код, который вызывает конкретную ошибку?

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

Подходит ли код 1С для интеграции с другими системами?

Да, во встроенном языке есть средства для работы с HTTP-запросами, веб-сервисами, файлами XML и JSON, COM-объектами. Типовые конфигурации содержат готовые механизмы обмена, которые можно использовать как основу для интеграции.

Итог

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

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