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