С чего начать разработчику 1С: платформа, язык и первые шаги

· 9 мин

Содержание

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

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

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

Что поставить на компьютер и в каком режиме работать

Для старта хватит одного ноутбука. Нужны две вещи: платформа и среда разработки.

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

Среда разработки. Их две, и выбор влияет на привычки:

  • Конфигуратор — классический инструмент, входит в поставку платформы. Здесь работает большинство специалистов, его знание спрашивают на собеседованиях. Начинайте с него.
  • 1C:EDT (1C:Enterprise Development Tools) — современная среда на базе Eclipse: Git, рефакторинг, сравнение версий. Удобна для командной разработки, но новичку добавляет лишний слой. Освоите позже.

Не ставьте EDT первым инструментом. Сначала научитесь видеть дерево конфигурации в Конфигураторе — это базовая картина мира 1С-разработчика.

Режимов запуска базы два, и их нельзя путать:

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

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

Рабочее место разработчика 1С
Выполнено: 0 / 5

Встроенный язык: синтаксис и первая процедура

Встроенный язык 1С — простой и русскоязычный. Есть и английские аналоги всех операторов, но в России пишут по-русски, так принято в коде типовых конфигураций.

Базовые правила, которые закрывают 80% кода новичка:

  • строки — в двойных кавычках: "Привет";
  • операторы завершаются точкой с запятой ;;
  • переменные объявлять заранее не обязательно, тип определяется при присваивании;
  • процедуры и функции — блоками Процедура … КонецПроцедуры и Функция … КонецФункции.

Первый код, который можно запустить прямо из модуля:

Процедура ПоказатьПриветствие()
    Имя = "мир";
    Сообщить("Привет, " + Имя + "!");
КонецПроцедуры

Циклы и условия выглядят привычно. Вот обход коллекции — обратите внимание на оператор Для Каждого:

Итого = 0;
Для Каждого Строка Из ТаблицаТоваров Цикл
    Если Строка.Количество > 0 Тогда
        Итого = Итого + Строка.Сумма;
    КонецЕсли;
КонецЦикла;
Сообщить("Итого: " + Формат(Итого, "ЧГ=0; ЧДЦ=2"));

Число со строкой напрямую не склеивайте в денежных суммах — оборачивайте в Формат(...), иначе получите системное представление с лишними знаками.

Что освоить в языке по порядку:

  1. Типы данных: число, строка, дата, булево, Неопределено.
  2. Коллекции: массив, структура, соответствие, таблица значений.
  3. Работа с датами: НачалоДня, КонецМесяца, ДобавитьМесяц.
  4. Обработка исключений: Попытка … Исключение … КонецПопытки.
  5. Общие модули — куда выносят переиспользуемые функции.

Повторяющийся код выносите в общие модули. У модуля есть флаги контекста — «Клиент», «Сервер», «Вызов сервера», — и они определяют, откуда функцию можно вызвать. Это та же клиент-серверная логика, что и на формах, только на уровне всей конфигурации. Привыкайте складывать переиспользуемые функции туда с самого начала, а не копировать их по модулям объектов.

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

Метаданные: справочники, документы и регистры

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

Основные виды объектов и когда их применяют:

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

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

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    Движения.ТоварыНаСкладах.Записывать = Истина;
    Для Каждого СтрокаТовары Из Товары Цикл
        Движение = Движения.ТоварыНаСкладах.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
        Движение.Период = Дата;
        Движение.Номенклатура = СтрокаТовары.Номенклатура;
        Движение.Количество = СтрокаТовары.Количество;
    КонецЦикла;
КонецПроцедуры

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

Запросы: как выбирать данные из базы

Перебирать справочники циклом в коде — медленно и неправильно. Данные в 1С получают запросами на языке запросов. Он похож на SQL, но работает поверх объектов метаданных, а не таблиц напрямую.

Простой запрос — получить активную номенклатуру:

ВЫБРАТЬ
    Номенклатура.Наименование КАК Наименование,
    Номенклатура.Артикул КАК Артикул
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    НЕ Номенклатура.ПометкаУдаления
УПОРЯДОЧИТЬ ПО
    Наименование

Выполняется запрос из кода через объект Запрос:

Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ Ссылка, Наименование
    |ИЗ Справочник.Номенклатура
    |ГДЕ НЕ ПометкаУдаления";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    Сообщить(Выборка.Наименование);
КонецЦикла;

Что обязательно освоить в запросах:

  • Параметры — &ДатаНачала, задаются через Запрос.УстановитьПараметр(...). Значения в текст запроса не подставляют строками.
  • Соединения — ЛЕВОЕ СОЕДИНЕНИЕ, чтобы связать документ со справочником.
  • Группировки и агрегаты — СГРУППИРОВАТЬ ПО, СУММА, КОЛИЧЕСТВО.
  • Виртуальные таблицы регистров — главный приём 1С. Остатки берут не перебором движений, а из виртуальной таблицы РегистрНакопления.ТоварыНаСкладах.Остатки. Платформа сама посчитает итоги на дату.
  • Временные таблицы и пакетные запросы — для сложной выборки в несколько шагов.

Остатки и обороты всегда получайте через виртуальные таблицы регистров, а не суммированием документов в цикле. На реальной базе ручной перебор будет работать минутами вместо долей секунды.

Удобный инструмент на этом этапе — конструктор запроса (правая кнопка в модуле → собрать запрос визуально) и консоль запросов из состава инструментов разработчика. Они помогают увидеть, какие таблицы и поля вообще доступны.

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

Управляемые формы и клиент-серверная модель

Интерфейс в 8.3 строят на управляемых формах. Их принципиальное отличие — код выполняется в двух местах, и это нужно держать в голове постоянно.

  • Клиент — браузер или тонкий клиент пользователя. Здесь нет прямого доступа к базе данных.
  • Сервер — там, где лежат данные. Только серверный код может читать и писать в базу.

Поэтому у каждой процедуры в модуле формы стоит директива компиляции, которая говорит, где она исполняется:

&НаКлиенте
Процедура РассчитатьИтог(Команда)
    РассчитатьИтогНаСервере();
КонецПроцедуры

&НаСервере
Процедура РассчитатьИтогНаСервере()
    // здесь доступны запросы и объекты базы
КонецПроцедуры

Главные директивы, которые нужно различать:

  • &НаКлиенте — реакция на действия пользователя: нажатия, ввод в поля.
  • &НаСервере — работа с данными; получает и возвращает контекст формы, это «дорогой» вызов.
  • &НаСервереБезКонтекста — серверный расчёт, которому не нужны данные формы. Самый экономичный серверный вызов, предпочитайте его.

Сама форма состоит из трёх вещей: реквизиты (данные формы), элементы (как они показаны на экране) и команды (кнопки и их обработчики). Платформа умеет собрать форму автоматически, а разработчик правит её под задачу.

Правило для новичка простое: минимизируйте переходы клиент↔сервер. Не делайте серверный вызов внутри цикла по строкам таблицы — соберите данные и обратитесь к серверу один раз.

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

План обучения и как выйти на первую работу

Реалистичный срок до уровня junior при занятиях по вечерам — три-шесть месяцев. Порядок, который не даёт застрять:

  1. Месяц 1. Платформа, Конфигуратор, встроенный язык, простые объекты: справочник + документ + форма.
  2. Месяц 2. Регистры и проведение документов. Учебная конфигурация учёта «с нуля».
  3. Месяц 3. Язык запросов, виртуальные таблицы, отчёты на СКД (система компоновки данных).
  4. Месяц 4+. Управляемые формы глубже, обмены данными, доработка типовых конфигураций без снятия с поддержки (расширения конфигурации ).
Проверьте себя
Какой режим запуска базы нужен, чтобы менять структуру метаданных?
Откуда правильно брать остатки по складу в запросе?
Какая директива формы может читать данные базы?

Сертификации, которые ценят работодатели:

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

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

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

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

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

Нужно ли знать другой язык программирования, чтобы освоить 1С?
Нет. Опыт помогает понять циклы и условия быстрее, но встроенный язык простой и русскоязычный, его учат с нуля. Важнее бухгалтерская логика: что такое остаток, оборот, проводка.
Можно ли учиться бесплатно и легально?
Да. Учебная версия платформы 8.3 распространяется бесплатно и предназначена для обучения. На ней доступны все механизмы языка, метаданных и запросов — ограничен только объём базы и скорость.
Конфигуратор или EDT — что учить первым?
Конфигуратор. Его знание спрашивают на собеседованиях, и в нём проще увидеть дерево конфигурации целиком. EDT осваивайте, когда будете работать в команде с Git.
Обязательно ли знать бухгалтерию?
Базовые понятия — да: счёт, проводка, остаток, оборот. Глубокий учёт не нужен, но без понимания, что считает документ, вы не сможете грамотно спроектировать регистры.
Чем отличается программист 1С от бизнес-аналитика и консультанта?
Консультант настраивает типовую конфигурацию без кода, аналитик пишет задание. Программист дорабатывает конфигурацию: меняет метаданные, пишет на встроенном языке, делает отчёты и обмены. Часто эти роли совмещают.