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

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

Как изучить код 1С: пошаговый план для начинающих

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

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

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

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

Что нужно знать о платформе перед изучением кода

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

Второй фундамент — объекты метаданных. Справочники хранят нормативную информацию, документы фиксируют хозяйственные операции, регистры накопления и сведений аккумулируют данные для отчётов. Когда вы видите в коде строку вида Документы.РеализацияТоваров.СоздатьДокумент(), она читается как обращение к менеджеру объекта метаданных. Без понимания этой структуры читать код бессмысленно.

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

Осваиваем встроенный язык: синтаксис и базовые конструкции

Синтаксис языка 1С прост: операторы пишутся на русском (допустим и английский вариант), каждый оператор завершается точкой с запятой, блоки выделяются ключевыми словами Если...Тогда...КонецЕсли, Для...Цикл...КонецЦикла. Переменные не требуют объявления типа — тип определяется при присваивании значения. Это ускоряет старт, но порождает ошибки, когда в переменной оказывается значение неожиданного типа.

Основные конструкции, которые нужно освоить в первую очередь: процедуры и функции с параметрами, условные операторы, циклы (включая обход коллекций через Для Каждого...Из...Цикл), работа со строками и датами, структуры и соответствия как универсальные коллекции. Особое внимание уделите значению Неопределено — аналогу null, с которым связана значительная часть ошибок у новичков.

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

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

Язык запросов: обязательная половина кода 1С

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

Изучать запросы удобнее всего через консоль запросов — обработку, которая позволяет писать запрос и сразу видеть результат. Начните с простых выборок из одного справочника, затем добавляйте отборы (ГДЕ), соединения таблиц (ЛЕВОЕ СОЕДИНЕНИЕ), группировки и итоги. Отдельно освойте виртуальные таблицы регистров — Остатки, Обороты, СрезПоследних: без них невозможно писать отчёты и проверки остатков.

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

Отладчик — главный инструмент изучения чужого кода

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

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

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

Как читать типовую конфигурацию и не утонуть в ней

Типовые конфигурации вроде «Управления торговлей» или «Бухгалтерии предприятия» содержат тысячи модулей, и попытка читать их подряд обречена. Правильный подход — идти от задачи. Выберите конкретный сценарий, например «как формируется цена при проведении поступления», и проследите его от кнопки в форме до записи в регистр. Глобальный поиск по конфигурации (Ctrl+Shift+F) — ваш основной навигатор.

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

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

Практика: от простых доработок к собственным решениям

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

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

Маршрут решения

Как выбрать способ доработки

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

Типичные ошибки и как проверить, что вы движетесь правильно

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

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

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

Как проверить результат обучения

Чтение чужого кода
Норма

Можете объяснить логику обработчика проведения документа по шагам

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

Код читается по словам, общий смысл ускользает

Запросы
Норма

Пишете запрос с соединением и итогами без конструктора

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

Без конструктора запрос не получается

Отладка
Норма

Самостоятельно находите место ошибки через точки останова и стек вызовов

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

При ошибке ищете готовое решение, не разбирая причину

Доработки
Норма

Делаете доработку через расширение и проверяете её на копии

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

Правите типовые модули в рабочей базе напрямую

Частые вопросы об изучении кода 1С

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

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

Сколько времени занимает изучение кода 1С до уровня простых доработок?

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

Что изучать первым: конфигуратор или язык запросов?

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

Можно ли учиться на типовой конфигурации, купленной для работы?

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

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

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

Где искать ответы, когда код не работает, а причина непонятна?

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

Итог

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

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