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