Разработка и Конфигурация · 11 мин
1С код: что это такое и как с ним работать
Что такое код 1С, на каком языке пишут программы в 1С:Предприятие, где находится код, как его читать и изменять без риска для базы данных.
Код 1С — это текст программы, написанный на встроенном языке платформы «1С:Предприятие», который определяет, как конфигурация обрабатывает документы, справочники, отчёты и другие объекты учёта. Когда пользователь нажимает кнопку «Провести» в документе или открывает отчёт, за этими действиями стоит именно код: он выполняет расчёты, проверяет заполнение полей, формирует движения по регистрам и выводит результат на экран.
Встроенный язык 1С по синтаксису напоминает упрощённый Pascal и существует в двух вариантах: русском и английском. В типовых российских конфигурациях код пишется на русском — с операторами «Если», «Тогда», «Цикл», «Процедура». Это снижает порог входа: разобраться в логике может не только программист, но и опытный пользователь или внедренец без профильного образования.
Понимать, что такое код 1С и где он находится, полезно даже тем, кто не планирует программировать. Это помогает грамотно ставить задачи разработчику, проверять доработки перед обновлением конфигурации и понимать, почему та или иная ошибка возникает в базе.
Что такое встроенный язык 1С и чем он отличается от других языков
Встроенный язык — это собственный язык программирования платформы, который работает только внутри «1С:Предприятие». Его нельзя использовать для написания отдельных программ вне платформы: весь код привязан к объектам конфигурации — документам, справочникам, регистрам, обработкам.
Ключевые особенности языка: мягкая типизация (тип переменной определяется значением), встроенные конструкции для работы с данными базы (запросы, выборки), событийная модель (код реагирует на события вроде записи документа или открытия формы). Программисту не нужно вручную описывать соединение с базой данных или SQL-запросы к таблицам — платформа делает это автоматически.
Для выборки данных из базы внутри кода используется язык запросов 1С — декларативный язык, похожий на SQL, но работающий с объектами конфигурации, а не с физическими таблицами. Запрос описывает, какие данные нужны, а платформа сама строит оптимальное обращение к СУБД.
Где находится код в конфигурации
Весь код конфигурации распределён по модулям, и найти нужный фрагмент можно только в режиме конфигуратора. Основные места расположения кода:
- Модуль объекта — обработчики событий документа или справочника: проведение, запись, проверка заполнения.
- Модуль формы — логика экранной формы: реакция на нажатие кнопок, изменение полей, открытие и закрытие.
- Общие модули — процедуры и функции, вызываемые из разных объектов: расчёт налогов, обмен данными, служебные операции.
- Модуль приложения и модуль сеанса — код, выполняемый при запуске системы и начале сеанса пользователя.
- Модули менеджеров и команд — обработка команд интерфейса и получение данных объекта.
Чтобы открыть модуль, в конфигураторе нужно найти объект в дереве конфигурации, вызвать контекстное меню и выбрать пункт «Открыть модуль» или «Открыть модуль формы». Для поиска по всему коду сразу используется глобальный поиск (Ctrl+Shift+F) — он находит нужную процедуру или строку во всех модулях конфигурации.
- 1Откройте базу в режиме конфигуратора и раскройте дерево конфигурации
- 2Найдите нужный объект: документ, справочник или обработку
- 3Через контекстное меню откройте модуль объекта или модуль формы
- 4Если место неизвестно — используйте глобальный поиск по тексту процедуры или сообщения об ошибке
- 5Проверьте найденный фрагмент: убедитесь, что это именно та логика, которая вызывает интересующее поведение
Как выглядит код 1С: базовые конструкции
Минимальная единица кода — процедура или функция. Процедура выполняет действия, функция дополнительно возвращает значение. Внутри используются условия, циклы и обращения к объектам базы.
Функция РассчитатьСуммуСНДС(Сумма, СтавкаНДС)
Если СтавкаНДС = 0 Тогда
Возврат Сумма;
КонецЕсли;
Возврат Сумма + Сумма * СтавкаНДС / 100;
КонецФункции
Обработчик события выглядит похоже, но привязан к событию объекта. Например, код в модуле документа, срабатывающий при проведении, называется «ОбработкаПроведения» — именно здесь формируются движения по регистрам учёта.
Переменные объявляются неявно, при первом присваивании. Для обращения к реквизитам документа используется точечная нотация: Документ.Сумма, СтрокаТовары.Количество. Для выборки данных применяются запросы — отдельная конструкция с ключевыми словами «ВЫБРАТЬ», «ИЗ», «ГДЕ».
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Номенклатура.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ НЕ Номенклатура.ПометкаУдаления";
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
// обработка строки
КонецЦикла;Кто и зачем изменяет код 1С
Стандартный сценарий — доработка типовой конфигурации под специфику компании: добавление нового реквизита в документ, изменение алгоритма расчёта скидки, создание нестандартного отчёта. Такие изменения выполняет штатный программист 1С или специалист внедренца.
Второй сценарий — исправление ошибок и диагностика. Когда программа выдаёт сообщение об ошибке с указанием модуля и строки, разработчик открывает этот фрагмент кода, анализирует логику и находит причину: некорректные данные, необработанное исключение, конфликт доработок с обновлением.
Третий сценарий — создание внешних обработок и отчётов. Это отдельные файлы с кодом, которые подключаются к базе без изменения конфигурации. Такой способ безопаснее: обработку можно отключить в любой момент, и она не мешает обновлению.
Способы доработки функционала
Подходит для глубоких изменений логики учёта. Ограничение: усложняет обновление типовой конфигурации, требует снятия объектов с поддержки или использования расширений.
Подходит для добавления реквизитов, форм и обработчиков без изменения типового кода. Обновление проходит проще, но не все объекты и сценарии доступны для переопределения.
Подходит для разовых операций, печатных форм и аналитики. Не меняет конфигурацию, но не может изменить поведение типовых документов.
Риски при изменении кода и как их избежать
Главный риск — повреждение рабочей базы. Ошибка в коде проведения документа может привести к некорректным движениям по регистрам: остатки на складе и в учёте «поплывут», и восстановить правильные данные будет сложно. Ошибка в коде обмена может рассылать неверные данные в связанные системы.
Второй риск — конфликт с обновлениями. Если типовой код изменён напрямую, при очередном обновлении конфигурации доработки могут быть затёрты или начнут конфликтовать с новой логикой поставщика. Поэтому прямые правки типовых модулей считаются крайней мерой.
Как проверить результат после изменения кода
После любой доработки нужно пройти контрольный сценарий вручную: создать тестовый документ, заполнить его, провести и сверить результат с ожидаемым. Если изменён расчёт — сверить цифры с расчётом «на бумаге». Если изменена форма — проверить её работу у пользователя с ограниченными правами, а не только под полными правами.
Для поиска синтаксических ошибок используется встроенная проверка конфигурации (меню «Конфигурация» → «Проверка конфигурации»). Она выявит несуществующие процедуры, ошибки в запросах и неиспользуемые переменные.
Как проверить результат доработки
Ошибок и критичных предупреждений нет
Сообщения о несуществующих методах или ошибках в запросах
Документ проводится, движения по регистрам соответствуют ожиданиям
Ошибка при проведении, лишние или отсутствующие движения
Функция доступна и работает корректно
Ошибки доступа или отсутствие кнопок и полей
Обновление проходит без конфликтов, доработка сохраняется
Конфликты при объединении, затирание изменений
С чего начать изучение кода 1С
Начинать лучше с чтения типового кода, а не с написания своего. Откройте демонстрационную базу, найдите простой документ и проследите путь от нажатия кнопки «Провести» до формирования движений. Это даёт понимание событийной модели и типовых приёмов.
Затем полезно освоить отладчик: установите точку останова в обработчике, запустите базу в режиме отладки и выполните действие в пользовательском режиме. Отладчик покажет значения переменных и порядок выполнения кода — это самый быстрый способ понять, как работает чужая логика.
Для системного изучения используйте официальную документацию платформы (синтакс-помощник встроен прямо в конфигуратор и вызывается по Ctrl+F1 на любом операторе) и учебные конфигурации. Практика на копии реальной базы закрепляет материал лучше, чем абстрактные примеры.
Синтакс-помощник — недооценённый инструмент: выделите любой оператор или метод в коде и нажмите Ctrl+F1, чтобы увидеть описание, параметры и примеры использования. Это избавляет от необходимости искать справку во внешних источниках.
Часто задаваемые вопросы
Нужно ли знать программирование, чтобы работать в 1С?
Для работы пользователем — нет: ввод документов и формирование отчётов не требуют знания кода. Базовое понимание логики кода полезно администраторам и внедренцам для диагностики ошибок и постановки задач разработчикам.
Можно ли писать код 1С на английском языке?
Да, платформа поддерживает английский вариант синтаксиса, и оба варианта могут сочетаться в одной конфигурации. На практике в российских конфигурациях используется русский синтаксис, а английский чаще встречается в международных проектах.
Чем расширение конфигурации лучше прямой правки кода?
Расширение хранит доработки отдельно от типового кода, поэтому обновление конфигурации проходит без конфликтов и не затирает изменения. Прямая правка оправдана только там, где возможностей расширения недостаточно.
Что делать, если после доработки появилась ошибка в рабочей базе?
Остановите использование изменённого функционала, восстановите базу из резервной копии, сделанной перед доработкой, или отключите расширение, если правки выполнялись через него. Затем исправьте код на тестовой копии и повторите внедрение после проверки.
Где посмотреть код, который вызывает конкретную ошибку?
В сообщении об ошибке обычно указаны модуль и строка. Откройте конфигуратор, найдите этот модуль через глобальный поиск по имени объекта и перейдите к указанной строке. Если сообщение неинформативно, включите технологический журнал или отладчик для отслеживания места сбоя.
Подходит ли код 1С для интеграции с другими системами?
Да, во встроенном языке есть средства для работы с HTTP-запросами, веб-сервисами, файлами XML и JSON, COM-объектами. Типовые конфигурации содержат готовые механизмы обмена, которые можно использовать как основу для интеграции.
Что важно запомнить
Код 1С — это программы на встроенном языке платформы, хранящиеся в модулях объектов, форм и общих модулях. Просматривать код можно в конфигураторе, изменять — только на копии базы с предварительной резервной копией. Для доработок предпочтительны расширения и внешние обработки, а результат всегда проверяется на тестовых сценариях до переноса в рабочую базу.