Разработка и Конфигурация · 10 мин
Как писать код в конфигураторе 1С: практическое руководство
Как писать код в конфигураторе 1С: модули, встроенный язык, запросы, отладка и типичные ошибки новичков. Пошаговое руководство с примерами кода и проверкой результата.
Конфигуратор — основная среда разработки в платформе 1С:Предприятие. Весь прикладной код здесь пишется на встроенном языке, который часто называют «языком 1С». Он похож на процедурный язык высокого уровня: есть процедуры, функции, переменные, циклы, условия и обращения к объектам конфигурации — справочникам, документам, регистрам. Код может быть написан как на русском, так и на английском синтаксисе, причём платформа понимает оба варианта.
Главная особенность разработки в 1С — код не существует сам по себе, а привязан к объектам конфигурации и контексту исполнения: клиент или сервер, форма или модуль объекта. Поэтому прежде чем писать первую строку, нужно понять, где именно этот код будет выполняться. От этого зависят доступные методы, права и поведение программы.
Ниже разобран практический цикл работы: как открыть конфигуратор и подготовить базу, где размещать код, как использовать синтакс-помощник и отладчик, как выполнять запросы к данным и какие ошибки чаще всего совершают начинающие разработчики.
Подготовка: запуск конфигуратора и безопасная среда
Конфигуратор запускается из ярлыка 1С:Предприятие — в стартовом окне выберите базу и нажмите кнопку «Конфигуратор». Для внесения изменений в конфигурацию нужны права администратора в этой базе. Если база рабочая и в ней ведётся учёт, никогда не экспериментируйте в ней напрямую: создайте копию через «Администрирование → Выгрузить информационную базу» и разверните её как отдельную тестовую базу.
По умолчанию конфигурация может находиться на поддержке, и типовые объекты будут закрыты для редактирования. Чтобы изменить объект, включите возможность изменения: «Конфигурация → Поддержка → Настройка поддержки → Включить возможность изменения». Учтите: снятие объектов с полной поддержки усложняет будущие обновления, поэтому по возможности дорабатывайте через расширения конфигурации — они не затрагивают типовой код.
Где размещать код: виды модулей
Весь код в 1С распределяется по модулям, и выбор модуля определяет контекст исполнения. Основные виды: модуль формы (обработчики событий элементов формы), модуль объекта (логика документа или справочника — проведение, заполнение), модуль менеджера (операции над коллекцией объектов), общие модули (переиспользуемый код) и модуль приложения (события запуска системы).
Общие модули — правильное место для бизнес-логики, которую вызывают из разных точек. Создайте общий модуль через контекстное меню ветки «Общие → Общие модули» и включите у него флажок «Сервер», если код работает с базой данных. Для функций, которые должны быть доступны с клиента, дополнительно отметьте «Вызов сервера». Клиентские процедуры размещайте в отдельных модулях с флажком «Клиент (управляемое приложение)».
Основы встроенного языка: первые процедуры
Код пишется в виде процедур и функций. Процедура выполняет действия, функция дополнительно возвращает значение через оператор «Возврат». Переменные объявляются неявно при первом присваивании, типы определяются автоматически. Каждый оператор завершается точкой с запятой.
Функция ПолучитьЦенуТовара(Номенклатура) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Цены.Цена
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, Номенклатура = &Номенклатура) КАК Цены";
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Результат = Запрос.Выполнить().Выбрать();
Если Результат.Следующий() Тогда
Возврат Результат.Цена;
Иначе
Возврат 0;
КонецЕсли;
КонецФункции
Ключевое слово «Экспорт» делает процедуру доступной из других модулей. Без него процедура остаётся приватной внутри своего модуля. Для клиентских обработчиков в формах используются директивы компиляции: &НаКлиенте, &НаСервере, &НаСервереБезКонтекста — они указывают платформе, где выполнять метод.
&НаСервере
Процедура ЗаполнитьОстатки()
// серверный код с запросом к регистру
КонецПроцедурыРабота с данными: запросы и объекты
Есть два способа обращения к данным. Объектный — через методы вроде Справочники.Номенклатура.НайтиПоКоду() и Документы.РеализацияТоваров.СоздатьДокумент(). Он удобен для создания и изменения отдельных объектов, потому что платформа сама вызывает обработчики событий и контролирует целостность. Запросный — через язык запросов 1С, похожий на SQL. Он предназначен для выборки больших объёмов данных и чтения: запросами нельзя изменять данные.
Для построения текста запроса используйте конструктор запроса: правый клик в модуле → «Конструктор запроса». Он соберёт текст визуально, и вам останется только подставить параметры. Всегда передавайте значения через УстановитьПараметр(), а не конкатенацией строк — это защищает от ошибок и делает запрос предсказуемым.
Объектный метод или запрос
Подходит для создания и изменения объектов одиночно. Срабатывают обработчики проведения и проверки. Медленнее при массовой обработке.
Подходит для чтения и анализа больших выборок, отчётов, поиска. Не умеет изменять данные — только читать.
Отладка и проверка кода
Перед запуском проверьте синтаксис: «Конфигурация → Проверка конфигурации» с флажком «Проверка логической целостности». Быструю проверку одного модуля делает Ctrl+F7 или кнопка с галочкой на панели инструментов редактора модуля. Ошибки компиляции платформа покажет в окне сообщений с указанием строки.
Для пошаговой отладки включите её в конфигураторе: «Отладка → Начать отладку» (F5). Поставьте точку останова кликом по полю слева от строки или клавишей F9. Во время остановки смотрите значения переменных через «Вычислить выражение» (Shift+F9) и табло (Alt+F9). Шаг через процедуру — F10, шаг внутрь — F11.
- 1Включите возможность отладки: Сервис → Параметры → вкладка «Запуск 1С:Предприятия»
- 2Поставьте точку останова на нужной строке модуля (F9)
- 3Запустите отладку клавишей F5 и воспроизведите действие в клиенте
- 4Проверьте значения переменных через «Вычислить выражение» (Shift+F9)
- 5Пройдите код по шагам (F10/F11) и найдите строку с неверным результатом
Синтакс-помощник и полезные инструменты редактора
Синтакс-помощник (Ctrl+Shift+F1 или значок с книгой) — встроенный справочник по всем методам, свойствам и объектам платформы. Поставьте курсор на незнакомый метод и нажмите Ctrl+F1 — откроется описание именно этого метода с примерами. Это основной источник документации при ежедневной работе.
В редакторе модуля работают шаблоны текста (наберите «Если» и нажмите Ctrl+Q — подставится конструкция условия), контекстная подсказка по точке после имени объекта и форматирование выделенного блока. Комментируйте неочевидную логику двойным слэшем — через месяц это сэкономит вам часы разбора собственного кода.
Ограничения и когда привлекать опытного разработчика
Самостоятельно безопасно писать простые доработки: дополнительные печатные формы, обработки заполнения, несложные отчёты на СКД, внешние обработки. Рискованные зоны — изменение проведения документов, движения по регистрам, обмены данными и процедуры обновления. Ошибка в этих местах влияет на учётные данные всей организации, и откатить её бывает сложно.
Если доработка затрагивает регистры бухгалтерии, расчёт зарплаты или обмен с другими системами, минимальное требование — полное тестирование на копии с реальными данными и сверка итоговых отчётов до и после изменения. Без такой проверки выкатывать изменения в рабочую базу нельзя.
Как проверить результат
Нет ошибок компиляции и логической целостности
Ошибки в окне сообщений, ссылки на несуществующие объекты
Код проходит все ветки, переменные содержат ожидаемые значения
Остановка по исключению, пустые выборки там, где ожидались данные
Отчёты и движения документов совпадают с ожиданиями
Расхождения в итогах, дубли движений, ошибки при проведении
Частые вопросы
Можно ли писать код в 1С без опыта программирования?
Да, встроенный язык считается одним из самых доступных для входа: русскоязычный синтаксис, контекстная подсказка и конструкторы снижают порог. Начните с простых обработок и модификации форм, параллельно изучая синтакс-помощник. Для учебы достаточно учебной версии платформы.
Чем расширение конфигурации лучше изменения типового кода?
Расширение накладывается поверх типовой конфигурации и не изменяет её объекты, поэтому обновления устанавливаются штатно. Изменённый типовой код при обновлении придётся сопоставлять вручную, а объекты на полной поддержке вообще не дадут обновиться автоматически.
Как вызвать серверную процедуру из клиентского кода формы?
Создайте в форме процедуру с директивой &НаСервере или &НаСервереБезКонтекста и вызовите её из клиентской процедуры по имени. Альтернатива — экспортная функция в общем модуле с флажками «Сервер» и «Вызов сервера».
Почему запрос выполняется в конфигураторе, но падает в пользовательском режиме?
Чаще всего причина в правах: под администратором запрос видит все данные, а у пользователя включено ограничение доступа на уровне записей (RLS), и выборка оказывается пустой или недоступной. Проверяйте код под учётной записью с реальными правами.
Где искать описание методов платформы?
В синтакс-помощнике конфигуратора: Ctrl+Shift+F1 открывает его полностью, Ctrl+F1 — статью по методу под курсором. Там же есть разделы по объектам конфигурации, языку запросов и системным перечислениям.
Что делать, если после обновления конфигурации базы данных появилась ошибка?
Не запускайте пользователей. Если есть выгрузка .dt до обновления — восстановите базу из неё. Затем воспроизведите проблему на копии, найдите источник в коде или в процедурах обновления и только после исправления повторите обновление.
Что важно запомнить
Код в 1С пишется в модулях с учётом контекста клиент/сервер, данные читают запросами, а изменяют объектными методами. Работайте на копии базы, дорабатывайте через расширения, проверяйте синтаксис и отлаживайте через точки останова перед любым переносом в рабочую среду.