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

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

Как разобраться в 1С-программировании: практическое руководство для начинающих

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

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

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

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

С чего начать: роль пользователя и предметная область

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

Поэтому первый шаг — 2–4 недели работы в режиме «Предприятие» в учебной или демонстрационной базе. Заводите номенклатуру, контрагентов, создавайте документы, смотрите отчёты и движения документов (кнопка «Дт/Кт» или аналогичная). Зафиксируйте для себя цепочку: справочник → документ → движения по регистрам → отчёт. Эта цепочка — скелет всей 1С-разработки.

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

Устройство платформы: что нужно понять до написания кода

Платформа 1С состоит из нескольких уровней, и путаница между ними — частый источник непонимания. Есть технологическая платформа (исполняемые файлы, сервер, СУБД), есть конфигурация (прикладное решение) и есть информационная база (данные конкретной организации плюс конфигурация). Когда вы «программируете в 1С», вы изменяете конфигурацию, а не платформу.

Ключевые объекты метаданных, которые нужно освоить в первую очередь:

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

Отдельно стоит разобраться с разделением кода по контекстам исполнения: клиент и сервер, тонкий/толстый клиент, директивы компиляции (&НаКлиенте, &НаСервере). В управляемых формах код с директивой &НаКлиенте не имеет прямого доступа к запросам к базе — это ограничение платформы, а не ошибка в вашем коде.

Встроенный язык 1С: синтаксис и ключевые конструкции

Встроенный язык 1С похож на смесь Basic и Pascal с русскоязычным синтаксисом (англоязычные варианты ключевых слов тоже поддерживаются). Он слабо типизирован: переменная может менять тип значения в процессе выполнения. Это удобно, но провоцирует ошибки — значение «Неопределено» или NULL из запроса легко попадает в арифметическую операцию.

Минимальный набор, который нужно освоить на старте:

  • объявление переменных, операторы Если...Тогда...ИначеЕсли...КонецЕсли, циклы Для...Цикл и Пока...Цикл;
  • процедуры и функции, передача параметров по значению и по ссылке (параметр Знач);
  • работа с коллекциями: массивы, структуры, соответствия, таблицы значений;
  • обращение к объектам базы через менеджеры: Справочники.Номенклатура.НайтиПоКоду(...), Документы.РеализацияТоваровУслуг.СоздатьДокумент();
  • язык запросов 1С — декларативный синтаксис, похожий на SQL, для выборки данных.

Язык запросов заслуживает отдельного внимания: в типовых конфигурациях большая часть выборок делается именно запросами, а не перебором объектов. Научитесь читать и писать запросы с соединениями таблиц, группировками и виртуальными таблицами регистров (РегистрНакопления.ТоварыНаСкладах.Остатки). Конструктор запросов в конфигураторе помогает собирать их визуально и сразу видеть текст.

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| Остатки.Номенклатура КАК Номенклатура,

| Остатки.КоличествоОстаток КАК Остаток

|ИЗ

| РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, Склад = &Склад) КАК Остатки";

Запрос.УстановитьПараметр("Период", ТекущаяДатаСеанса());

Запрос.УстановитьПараметр("Склад", Склад);

Результат = Запрос.Выполнить().Выгрузить();

bsl
Процедура ПриЗаписи(Отказ)
	Если ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;
	// прикладная логика
КонецПроцедуры

Конфигуратор как основной инструмент

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

  • навигация по дереву конфигурации и поиск объектов (главное меню → Правка → Найти);
  • поиск по всем модулям сразу (Глобальный поиск, Ctrl+Shift+F) — основной способ понять, где используется процедура;
  • переход к определению метода по F12 и просмотр мест вызова;
  • работа с палитрой свойств объекта и конструкторами (формы, запросы, движения документа).

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

Порядок изучения типового механизма
  1. 1
    В режиме «Предприятие» выполните операцию и посмотрите её результат (отчёт, движения документа)
  2. 2
    В конфигураторе найдите объект (документ или обработку) и откройте его модуль
  3. 3
    Найдите обработчик события (ОбработкаПроведения, ПриЗаписи, ПриНажатии)
  4. 4
    Поставьте точку останова и повторите операцию под отладчиком
  5. 5
    Просмотрите значения переменных в табло и сопоставьте с тем, что увидели в отчёте

Отладка и чтение чужого кода

Отладчик — главный инструмент понимания 1С-кода. Включите отладку в конфигураторе (Отладка → Начать отладку), поставьте точку останова в интересующей строке и выполните операцию в клиенте. Платформа остановится на вашей строке, и вы сможете пошагово (F10/F11) пройти выполнение, наблюдая значения переменных в табло (Alt+F9) и стек вызовов.

Несколько практических приёмов:

  • используйте «Вычислить выражение» (Shift+F9), чтобы проверить значение сложного выражения, не меняя код;
  • для серверных процедур убедитесь, что отладка сервера разрешена (в файловом режиме она обычно работает сразу, в клиент-серверном — требует настройки сервера);
  • изучайте стек вызовов, чтобы понять, откуда пришло выполнение — в типовых конфигурациях обработчики часто вызываются из общих модулей подсистем.

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

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

Практика: какие задачи решать на старте

Теория без практики в 1С не закрепляется. Подходящая лестница учебных задач — от простого к сложному:

  1. Добавить новый реквизит в справочник и вывести его на форму.
  2. Создать собственный отчёт на СКД (система компоновки данных) по регистру накопления.
  3. Написать внешнюю обработку, которая выгружает данные в таблицу или файл.
  4. Создать простой документ с проведением по регистру накопления и проверить движения.
  5. Добавить подписку на событие записи документа с проверкой заполнения реквизитов.
  6. Доработать копию типовой конфигурации через расширение, не меняя основную конфигурацию.

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

Типичные ошибки новичков и как их избежать

Большинство проблем начинающих 1С-разработчиков повторяются. Зная их заранее, вы сэкономите десятки часов отладки:

Типичные ошибки
01
Перебор объектов вместо запроса: выборка Справочники.Номенклатура.Выбрать() с обходом в цикле работает медленно и грузит базу — используйте язык запросов
02
Запросы внутри цикла: каждый проход обращается к СУБД, производительность падает катастрофически — выносите запросы из циклов, используйте временные таблицы
03
Изменение типовой конфигурации напрямую вместо расширения: при обновлении доработки теряются или блокируют обновление
04
Игнорирование контекста исполнения: вызов серверных методов с клиента без серверной процедуры приводит к ошибкам компиляции
05
Работа без копии базы: одна неудачная обработка может испортить данные всей организации

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

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

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

Понимание учётной цепочки
Норма

Можете устно объяснить путь данных от документа до отчёта

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

Код кажется набором случайных команд без связи с учётом

Владение отладчиком
Норма

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

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

Единственный способ поиска ошибки — Сообщить() в каждой строке

Качество доработки
Норма

Изменения сделаны через расширение, типовая конфигурация на поддержке

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

Конфигурация снята с поддержки, обновление невозможно

Производительность кода
Норма

Выборки сделаны запросами, циклы без обращений к базе

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

Обработка тысячи строк занимает минуты, база подвисает

FAQ: частые вопросы начинающих

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

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

Сколько времени нужно, чтобы начать решать реальные задачи?

При регулярной практике по 1–2 часа в день простые доработки (добавление реквизитов, внешние печатные формы, отчёты на СКД) обычно становятся доступны через 2–3 месяца. Уверенное чтение и изменение типовых механизмов требует от полугода практики на реальных задачах.

Что лучше для старта: файловая или клиент-серверная база?

Для обучения достаточно файловой базы — она не требует установки сервера и СУБД, быстро разворачивается и копируется обычным копированием папки. Клиент-серверный вариант стоит осваивать позже, когда дойдёте до администрирования и отладки на сервере.

Учиться на типовой конфигурации или писать свою с нуля?

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

Что такое СКД и нужно ли её изучать?

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

Где искать ответы на вопросы по встроенному языку?

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

Итог

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

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