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

· 10 мин

Содержание

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

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

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

Что скачать и как открыть учебную базу

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

  1. Скачайте дистрибутив платформы 8.3. Для обучения подходит учебная версия — она бесплатна и не требует лицензии. Её ограничения (небольшое число объектов, лимит строк в таблицах) для учёбы не мешают.
  2. Установите платформу. При установке отметьте компонент Конфигуратор — без него писать код не получится.
  3. Запустите ярлык 1С:Предприятие, нажмите Добавить → Создание новой информационной базы → Создание без конфигурации и укажите папку на диске. Получится пустая база «с нуля».
  4. В окне запуска выделите базу и нажмите Конфигуратор — это и есть среда разработки.

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

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

Рабочее место новичка готово, если
Выполнено: 0 / 5

Встроенный язык и типы данных

Встроенный язык 1С похож на Паскаль и допускает русский и английский синтаксис. Писать можно Если … Тогда … КонецЕсли или If … Then … EndIf — оба варианта равноправны. Новичку проще русский: вся документация и типовые конфигурации написаны на нём.

Первое, что нужно усвоить, — типы данных. Их делят на две группы.

Примитивные типы:

  • 🔢 Число — и целые, и дробные (отдельного типа для дробей нет).
  • 🔤 Строка — текст; длину можно ограничить или оставить неограниченной.
  • 📅 Дата — хранит и дату, и время.
  • ☑️ Булево — Истина / Ложь.
  • ∅ Неопределено — «значение не задано», и NULL — приходит из запросов, когда в базе нет данных.

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

Отдельно живут универсальные коллекции, без которых не обойтись:

КоллекцияДля чего
Массивупорядоченный список значений
Структуранабор «ключ — значение», ключи известны заранее
Соответствие«ключ — значение», ключи произвольные
ТаблицаЗначенийтаблица со строками и колонками в памяти

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

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

Сообщить("Привет, 1С!");

Для Счётчик = 1 По 5 Цикл
    Сообщить("Строка номер " + Счётчик);
КонецЦикла;

Обратите внимание: число к строке через + платформа приведёт сама, но в серьёзном коде лучше явно — Формат(Счётчик, "ЧГ=0") или СтрШаблон("Строка номер %1", Счётчик), чтобы не ловить неожиданное форматирование.

Объекты метаданных: из чего собрана конфигурация

Конфигурация — это дерево объектов, которое вы видите слева в Конфигураторе (окно «Конфигурация»). Каждая ветка — вид объектов. Понимание этого дерева важнее, чем знание синтаксиса: именно объекты, а не код, определяют, что умеет программа.

Базовые виды объектов, которые встречаются в любой конфигурации:

  • 📇 Справочники — списки однотипных сущностей: товары, контрагенты, сотрудники, склады. То, что меняется редко и на что ссылаются документы.
  • 📄 Документы — события хозяйственной жизни: поступление, реализация, начисление зарплаты. У документа есть дата, номер и, как правило, он формирует движения.
  • 📊 Регистры — таблицы, где накапливаются итоги. Их четыре типа: регистр сведений (хранит значения на дату), регистр накопления (приход/расход — остатки и обороты), регистр бухгалтерии (проводки по счетам), регистр расчёта (для зарплаты).
  • 🏷️ Перечисления — жёсткий список вариантов, заданный разработчиком (например, «Приход» / «Расход»).
  • 🧰 Обработки и отчёты — объекты без собственного хранения данных: обработка выполняет действия, отчёт показывает данные.
  • 🔢 Константы — одиночные значения на всю базу (название организации, ставка по умолчанию).

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

Справочник и документ — не взаимозаменяемы. Если сущность «происходит в момент времени» и влияет на итоги (остатки, взаиморасчёты) — это документ. Если это просто запись из списка — справочник. Путаница здесь ломает всю логику учёта.

Связь между объектами строится через ссылочные реквизиты: у документа «Реализация» реквизит «Контрагент» имеет тип СправочникСсылка.Контрагенты. Так данные не дублируются, а связываются.

Ещё один механизм, с которым столкнётесь сразу, — табличные части. Это таблица внутри объекта: у документа реализации в табличной части «Товары» лежат строки с номенклатурой, количеством и ценой. Табличная часть есть и у справочников (например, контактные лица у контрагента). В коде к ней обращаются как к коллекции строк и перебирают циклом Для Каждого СтрокаТовара Из Объект.Товары Цикл. Понимание «шапка документа — табличная часть» снимает добрую половину вопросов новичка о том, где хранятся данные.

Где живёт код: модули объектов

Код в 1С не висит в воздухе — он лежит в модулях, привязанных к объектам. Новичку важно понять разницу между ними, иначе непонятно, куда вообще писать процедуру.

Основные модули:

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

Ключевая вещь, которую нужно понять с самого начала, — клиент и сервер. В клиент-серверном варианте код выполняется либо на клиенте (компьютер пользователя), либо на сервере (где лежит база). Каждая процедура помечается директивой компиляции:

&НаКлиенте
Процедура ПриНажатииКнопки(Команда)
    // Здесь нельзя обращаться к базе напрямую
    РезультатСервера = ПолучитьДанные();
    Сообщить(РезультатСервера);
КонецПроцедуры

&НаСервере
Функция ПолучитьДанные()
    // Здесь доступна база, но нет диалогов с пользователем
    Возврат "Данные с сервера";
КонецФункции

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

Язык запросов и выборка данных

Перебирать весь справочник циклом, чтобы что-то посчитать, — плохая идея: медленно и неправильно. Данные из базы получают запросом. Язык запросов 1С похож на SQL, но со своими особенностями: обращение к данным через объектную модель (Справочник.Номенклатура), работа с итогами регистров, виртуальные таблицы остатков.

Минимальный запрос, который стоит разобрать по косточкам:

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

Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
    Сообщить(Выборка.Наименование + " (" + Выборка.Артикул + ")");
КонецЦикла;

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

Отдельно разберитесь с виртуальными таблицами регистров. Это не реальные таблицы базы, а данные, которые платформа собирает «на лету»: РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата) вернёт остатки на нужную дату, а .ОстаткиИОбороты(…) — ещё и приход с расходом за период. Через них считают остатки товаров, взаиморасчёты и обороты. Перебирать документы вручную ради остатков не нужно — для этого и существуют регистры с их виртуальными таблицами.

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

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

Отладчик: как искать и исправлять ошибки

Код почти никогда не работает правильно с первого раза. Умение отлаживать важнее, чем умение писать без ошибок, — его осваивают сразу, а не «потом».

Отладка в 1С устроена так:

  1. Точка останова. Щёлкните на сером поле слева от нужной строки кода (или нажмите F9) — появится красный кружок. Выполнение остановится на этой строке.
  2. Запуск под отладкой. Запустите 1С:Предприятие в режиме отладки (из Конфигуратора — меню Отладка → Начать отладку, или F5). Дойдя до точки останова, программа встанет на паузу.
  3. Пошаговое выполнение. Клавиши F10 (шаг через процедуру) и F11 (шаг с заходом внутрь) ведут по коду строка за строкой.
  4. Табло и «Вычислить выражение». В момент паузы наведите курсор на переменную — увидите её значение. Для сложных выражений используйте окно Табло или Вычислить выражение (Shift+F9): можно посмотреть, что реально лежит в структуре или таблице значений.

Самые частые ошибки новичка, которые ловятся отладчиком:

  • обращение к несуществующему реквизиту (опечатка в имени поля);
  • попытка обратиться к базе из клиентской процедуры;
  • Неопределено или NULL там, где ждали число или строку;
  • деление на ноль и выход за границы массива.

Текст ошибки платформа показывает сразу и обычно указывает строку. Читайте его целиком — в 1С сообщения довольно информативны и часто содержат готовый ответ.

Куда расти: от первой обработки к сертификату 1С

Когда вы уверенно создаёте объекты, пишете запросы и отлаживаете код, пора выбирать направление и подтверждать уровень.

Практические шаги роста:

  • Напишите внешнюю обработку под реальную задачу — например, массовое изменение цен или выгрузку списка в файл. Внешние обработки подключаются к типовой базе без изменения конфигурации.
  • Освойте расширения конфигурации (появились в платформе 8.3.6). Они позволяют дорабатывать типовую конфигурацию , не снимая её с поддержки, — это современный стандарт доработок.
  • Разберитесь с механизмом обмена данными (планы обмена, форматы EnterpriseData) и интеграциями через HTTP-сервисы — без этого сейчас не обходится почти ни один проект.

Сертификация 1С идёт по ступеням:

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

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

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

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

Нужно ли знать бухгалтерию, чтобы программировать в 1С?
Для старта — нет. Платформа, язык и объекты метаданных осваиваются без бухгалтерии. Но чем выше вы растёте, тем чаще работаете с «Бухгалтерией» и «ЗУП», и базовое понимание учёта (что такое проводка, регистр, оборотка) сильно ускоряет работу. Учите параллельно по мере необходимости.
Какой язык программирования учить до 1С?
Никакой специально учить не нужно — встроенный язык 1С самодостаточен и прост. Если опыт в других языках есть (Паскаль, Python), синтаксис дастся легче. Но важнее не синтаксис, а понимание объектной модели платформы.
Сколько времени занимает обучение с нуля?
До уровня «пишу обработки и простые отчёты» — ориентировочно 2–4 месяца при регулярных занятиях. До уровня 1С:Специалист — обычно от полугода до года с практикой. Темп сильно зависит от того, решаете ли вы реальные задачи или только читаете.
Русский или английский синтаксис выбрать?
Русский. Вся документация, типовые конфигурации и примеры сообщества — на русском синтаксисе. Английский поддерживается, но вы останетесь в меньшинстве и будете постоянно переводить примеры.
Конфигуратор или EDT для начала?
Конфигуратор. Он проще, его интерфейс совпадает с большинством учебных материалов. EDT стоит осваивать позже, когда понадобится командная разработка и хранилище на Git.