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

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

Что нужно знать для программирования в 1С

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

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

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

Ниже разобраны конкретные области знаний, без которых уверенная разработка в 1С невозможна, а также порядок их освоения и типичные ошибки начинающих.

Базовая подготовка: что должно быть до старта

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

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

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

Встроенный язык 1С и работа в конфигураторе

Язык 1С контекстно-зависимый: один и тот же код ведёт себя по-разному в модуле объекта, модуле формы, общем модуле или модуле менеджера. Поэтому первое, что нужно освоить, — структура модулей и порядок выполнения обработчиков событий. Например, код в обработчике ПередЗаписью выполняется на сервере при записи объекта, а ПриОткрытии формы — на клиенте, и у них разный доступный контекст.

Ключевые темы языка, которые нужно знать уверенно:

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

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

Метаданные: сердце платформы

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

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

Куда поместить данные

Справочник

Номенклатура, контрагенты, сотрудники — редко меняющиеся данные. Не подходит для хранения остатков и оборотов.

Регистр накопления

Остатки товаров, взаиморасчёты, движения денег. Требует документов-регистраторов, не редактируется напрямую.

Регистр сведений

Цены, курсы валют, настройки в разрезе измерений. Периодический регистр хранит историю изменений.

Документ

Факты хозяйственной жизни с датой, номером и проведением. Не предназначен для справочных данных.

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

Язык запросов и СКД

Большинство данных в 1С получают не перебором в цикле, а запросами. Язык запросов 1С похож на SQL: ВЫБРАТЬ ... ИЗ ... ГДЕ ... СГРУППИРОВАТЬ ПО, соединения, вложенные запросы, виртуальные таблицы регистров (Остатки, Обороты, СрезПоследних). Виртуальные таблицы — самое важное: они позволяют одной строкой получить остатки на дату или срез последних значений периодического регистра.

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

bsl
ВЫБРАТЬ
	Остатки.Номенклатура КАК Номенклатура,
	Остатки.КоличествоОстаток КАК Остаток
ИЗ
	РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, Склад = &Склад) КАК Остатки
ГДЕ
	Остатки.КоличествоОстаток > 0

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

Типичные ошибки новичков
01
Запрос внутри цикла — каждая итерация обращается к базе, время выполнения растёт катастрофически. Решение: один запрос с соединением и обход результата.
02
Хранение остатков в справочнике — данные расходятся с документами, невозможно получить остаток на прошлую дату.
03
Код на клиенте с обращением к данным — в тонком клиенте такой код просто не скомпилируется или вызовет серверный вызов на каждую строку.
04
Изменение типовой конфигурации вместо расширения — при обновлении доработки теряются или блокируют обновление.
05
Отсутствие проверки результата запроса на пустоту — обращение к полям пустой выборки роняет код с ошибкой.

Предметная область: учёт и типовые конфигурации

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

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

Администрирование и инфраструктура на минимальном уровне

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

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

Порядок обучения: с чего начать и как проверять себя

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

Порядок освоения
  1. 1
    Установите платформу и создайте пустую конфигурацию в конфигураторе.
  2. 2
    Сделайте справочник «Товары», документ «ПриходнаяНакладная» и регистр накопления «ОстаткиТоваров»; напишите проведение документа.
  3. 3
    Напишите запрос к виртуальной таблице остатков и постройте на его основе отчёт на СКД.
  4. 4
    Освойте отладчик: поставьте точку останова в обработке проведения и пройдите код пошагово.
  5. 5
    Возьмите учебную типовую конфигурацию и сделайте доработку через расширение, не трогая основной код.
  6. 6
    Проверьте результат: документ проводится, остатки в отчёте сходятся с движениями, конфигурация обновляется без снятия с поддержки.

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

Итог

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

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

Частые вопросы

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

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

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

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

Что важнее для трудоустройства: сертификат или практика?

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

Можно ли программировать в 1С без знания бухгалтерии?

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

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

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

Где брать задачи для практики без работы в компании?

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