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