Программирование в 1С для начинающих: с чего начать и куда двигаться
Содержание
Начать можно сегодня и бесплатно: скачайте учебную версию платформы 1С:Предприятие 8.3, откройте пустую информационную базу в режиме Конфигуратор — и у вас уже есть среда, где создаются справочники, документы и пишется код на встроенном языке. Дальше — последовательность, а не героизм: типы данных, объекты метаданных, модули, запросы, отладчик.
Программирование 1С отличается от обычного программирования тем, что половину работы делает платформа. Вы не пишете хранение данных в базе и не рисуете формы с нуля — вы описываете что нужно (справочник «Контрагенты», документ «Реализация»), а платформа сама создаёт таблицы, формы и стандартные команды. Код на встроенном языке вы добавляете там, где нужна своя логика. Этот сдвиг мышления и есть главный порог для новичка.
Ниже — порядок, в котором осваивают платформу специалисты, с точными названиями инструментов и небольшими примерами кода, которые можно повторить в своей учебной базе.
Что скачать и как открыть учебную базу
Для старта нужны две вещи: платформа и пустая информационная база.
- Скачайте дистрибутив платформы 8.3. Для обучения подходит учебная версия — она бесплатна и не требует лицензии. Её ограничения (небольшое число объектов, лимит строк в таблицах) для учёбы не мешают.
- Установите платформу. При установке отметьте компонент Конфигуратор — без него писать код не получится.
- Запустите ярлык 1С:Предприятие, нажмите Добавить → Создание новой информационной базы → Создание без конфигурации и укажите папку на диске. Получится пустая база «с нуля».
- В окне запуска выделите базу и нажмите Конфигуратор — это и есть среда разработки.
Не берите сразу «Бухгалтерию» или «ЗУП» для первых шагов. Типовые конфигурации — это десятки тысяч объектов, в них легко утонуть. Учитесь на пустой базе, где каждый объект создали вы сами.
Отдельно стоит знать про 1C:Enterprise Development Tools (EDT) — альтернативную среду разработки на базе Eclipse. Она мощнее для командной работы, но для первого знакомства тяжелее. Начинайте с классического Конфигуратора, а на EDT перейдёте, когда язык и объекты уже не вызывают вопросов.
Встроенный язык и типы данных
Встроенный язык 1С похож на Паскаль и допускает русский и английский синтаксис. Писать можно Если … Тогда … КонецЕсли или If … Then … EndIf — оба варианта равноправны. Новичку проще русский: вся документация и типовые конфигурации написаны на нём.
Первое, что нужно усвоить, — типы данных. Их делят на две группы.
Примитивные типы:
- 🔢
Число— и целые, и дробные (отдельного типа для дробей нет). - 🔤
Строка— текст; длину можно ограничить или оставить неограниченной. - 📅
Дата— хранит и дату, и время. - ☑️
Булево—Истина/Ложь. - ∅
Неопределено— «значение не задано», иNULL— приходит из запросов, когда в базе нет данных.
Ссылочные типы — ссылки на объекты базы: элемент справочника, конкретный документ, значение перечисления. Переменная со ссылкой указывает на запись в базе, а не хранит её копию.
Отдельно живут универсальные коллекции, без которых не обойтись:
| Коллекция | Для чего |
|---|---|
Массив | упорядоченный список значений |
Структура | набор «ключ — значение», ключи известны заранее |
Соответствие | «ключ — значение», ключи произвольные |
ТаблицаЗначений | таблица со строками и колонками в памяти |
Переменная в 1С не типизирована жёстко: в неё можно положить сначала число, потом строку. Тип определяется присвоенным значением. Это удобно, но провоцирует ошибки — будьте внимательны, что именно лежит в переменной.
Простейший код, который стоит запустить первым, — вывод сообщения. Его можно положить, например, в модуль обработки:
Сообщить("Привет, 1С!");
Для Счётчик = 1 По 5 Цикл
Сообщить("Строка номер " + Счётчик);
КонецЦикла;
Обратите внимание: число к строке через + платформа приведёт сама, но в серьёзном коде лучше явно — Формат(Счётчик, "ЧГ=0") или СтрШаблон("Строка номер %1", Счётчик), чтобы не ловить неожиданное форматирование.
Объекты метаданных: из чего собрана конфигурация
Конфигурация — это дерево объектов, которое вы видите слева в Конфигураторе (окно «Конфигурация»). Каждая ветка — вид объектов. Понимание этого дерева важнее, чем знание синтаксиса: именно объекты, а не код, определяют, что умеет программа.
Базовые виды объектов, которые встречаются в любой конфигурации:
- 📇 Справочники — списки однотипных сущностей: товары, контрагенты, сотрудники, склады. То, что меняется редко и на что ссылаются документы.
- 📄 Документы — события хозяйственной жизни: поступление, реализация, начисление зарплаты. У документа есть дата, номер и, как правило, он формирует движения.
- 📊 Регистры — таблицы, где накапливаются итоги. Их четыре типа: регистр сведений (хранит значения на дату), регистр накопления (приход/расход — остатки и обороты), регистр бухгалтерии (проводки по счетам), регистр расчёта (для зарплаты).
- 🏷️ Перечисления — жёсткий список вариантов, заданный разработчиком (например, «Приход» / «Расход»).
- 🧰 Обработки и отчёты — объекты без собственного хранения данных: обработка выполняет действия, отчёт показывает данные.
- 🔢 Константы — одиночные значения на всю базу (название организации, ставка по умолчанию).
Создаётся объект просто: правой кнопкой по ветке дерева → Добавить. Платформа тут же даёт объекту стандартные формы списка и элемента, команды создания и удаления. Ваша задача — настроить реквизиты (поля) и, где нужно, дописать код.
Справочник и документ — не взаимозаменяемы. Если сущность «происходит в момент времени» и влияет на итоги (остатки, взаиморасчёты) — это документ. Если это просто запись из списка — справочник. Путаница здесь ломает всю логику учёта.
Связь между объектами
строится через ссылочные реквизиты: у документа «Реализация» реквизит «Контрагент» имеет тип СправочникСсылка.Контрагенты. Так данные не дублируются, а связываются.
Ещё один механизм, с которым столкнётесь сразу, — табличные части. Это таблица внутри объекта: у документа реализации в табличной части «Товары» лежат строки с номенклатурой, количеством и ценой. Табличная часть есть и у справочников (например, контактные лица у контрагента). В коде к ней обращаются как к коллекции строк и перебирают циклом Для Каждого СтрокаТовара Из Объект.Товары Цикл. Понимание «шапка документа — табличная часть» снимает добрую половину вопросов новичка о том, где хранятся данные.
Где живёт код: модули объектов
Код в 1С не висит в воздухе — он лежит в модулях, привязанных к объектам. Новичку важно понять разницу между ними, иначе непонятно, куда вообще писать процедуру.
Основные модули:
- Модуль объекта (у справочника, документа) — код самого объекта: обработчики
ПередЗаписью,ПриПроведении, проверка заполнения. Здесь описывают, что происходит при записи или проведении. - Модуль формы — код конкретной формы: реакция на нажатие кнопок, изменение полей. Процедуры вроде
ПриИзмененииреквизита живут тут. - Общие модули — процедуры и функции, которые нужны в разных местах. Их выносят, чтобы не дублировать код.
- Модуль приложения и модуль сеанса — выполняются при старте, их трогают реже.
Ключевая вещь, которую нужно понять с самого начала, — клиент и сервер. В клиент-серверном варианте код выполняется либо на клиенте (компьютер пользователя), либо на сервере (где лежит база). Каждая процедура помечается директивой компиляции:
&НаКлиенте
Процедура ПриНажатииКнопки(Команда)
// Здесь нельзя обращаться к базе напрямую
РезультатСервера = ПолучитьДанные();
Сообщить(РезультатСервера);
КонецПроцедуры
&НаСервере
Функция ПолучитьДанные()
// Здесь доступна база, но нет диалогов с пользователем
Возврат "Данные с сервера";
КонецФункции
Запомните правило: к базе данных обращаемся только на сервере, а диалоги с пользователем показываем только на клиенте. Нарушение этого — самая частая ошибка новичка, и платформа честно ругается на неё при проверке.
Язык запросов и выборка данных
Перебирать весь справочник циклом, чтобы что-то посчитать, — плохая идея: медленно и неправильно. Данные из базы получают запросом. Язык запросов 1С похож на SQL, но со своими особенностями: обращение к данным через объектную модель (Справочник.Номенклатура), работа с итогами регистров, виртуальные таблицы остатков.
Минимальный запрос, который стоит разобрать по косточкам:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Наименование КАК Наименование,
| Номенклатура.Артикул КАК Артикул
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ПометкаУдаления";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.Наименование + " (" + Выборка.Артикул + ")");
КонецЦикла;
Писать текст запроса вручную не нужно. В Конфигураторе есть конструктор запроса (правая кнопка в тексте модуля → «Конструктор запроса»): выбираете таблицы и поля мышкой, а текст платформа соберёт сама. Новичку это экономит недели: синтаксис запоминается по мере работы с конструктором.
Отдельно разберитесь с виртуальными таблицами регистров. Это не реальные таблицы базы, а данные, которые платформа собирает «на лету»: РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата) вернёт остатки на нужную дату, а .ОстаткиИОбороты(…) — ещё и приход с расходом за период. Через них считают остатки товаров, взаиморасчёты и обороты. Перебирать документы вручную ради остатков не нужно — для этого и существуют регистры с их виртуальными таблицами.
Отдельная большая тема — система компоновки данных (СКД). Это механизм, на котором строятся отчёты: один раз описали запрос и настройки, а пользователь сам группирует, фильтрует и выводит данные. Браться за СКД стоит после того, как обычные запросы перестали пугать.
Полезный приём: любой запрос можно сначала отладить в обработке «Консоль запросов» (есть бесплатные варианты от сообщества). Пишете текст, видите результат в таблице — и только потом переносите в код.
Отладчик: как искать и исправлять ошибки
Код почти никогда не работает правильно с первого раза. Умение отлаживать важнее, чем умение писать без ошибок, — его осваивают сразу, а не «потом».
Отладка в 1С устроена так:
- Точка останова. Щёлкните на сером поле слева от нужной строки кода (или нажмите
F9) — появится красный кружок. Выполнение остановится на этой строке. - Запуск под отладкой. Запустите
1С:Предприятиев режиме отладки (из Конфигуратора — меню Отладка → Начать отладку, илиF5). Дойдя до точки останова, программа встанет на паузу. - Пошаговое выполнение. Клавиши
F10(шаг через процедуру) иF11(шаг с заходом внутрь) ведут по коду строка за строкой. - Табло и «Вычислить выражение». В момент паузы наведите курсор на переменную — увидите её значение. Для сложных выражений используйте окно Табло или Вычислить выражение (
Shift+F9): можно посмотреть, что реально лежит в структуре или таблице значений.
Самые частые ошибки новичка, которые ловятся отладчиком:
- обращение к несуществующему реквизиту (опечатка в имени поля);
- попытка обратиться к базе из клиентской процедуры;
НеопределеноилиNULLтам, где ждали число или строку;- деление на ноль и выход за границы массива.
Текст ошибки платформа показывает сразу и обычно указывает строку. Читайте его целиком — в 1С сообщения довольно информативны и часто содержат готовый ответ.
Куда расти: от первой обработки к сертификату 1С
Когда вы уверенно создаёте объекты, пишете запросы и отлаживаете код, пора выбирать направление и подтверждать уровень.
Практические шаги роста:
- Напишите внешнюю обработку под реальную задачу — например, массовое изменение цен или выгрузку списка в файл. Внешние обработки подключаются к типовой базе без изменения конфигурации.
- Освойте расширения конфигурации (появились в платформе 8.3.6). Они позволяют дорабатывать типовую конфигурацию , не снимая её с поддержки, — это современный стандарт доработок.
- Разберитесь с механизмом обмена данными (планы обмена, форматы EnterpriseData) и интеграциями через HTTP-сервисы — без этого сейчас не обходится почти ни один проект.
Сертификация 1С идёт по ступеням:
| Сертификат | Что подтверждает |
|---|---|
| 1С:Профессионал | базовое знание конфигурации и платформы, тест |
| 1С:Специалист | умение проектировать и дорабатывать, практический экзамен |
| 1С:Специалист-консультант | методологию учёта в прикладном решении |
Для программиста ключевая цель — 1С:Специалист по платформе: это практический экзамен, где за несколько часов нужно решить задачу (спроектировать объекты, написать проведение документа, построить отчёт). Готовятся к нему по сборникам задач 1С — именно решение задач, а не чтение теории, даёт результат.
Самый быстрый рост — на реальных задачах. Возьмите учебную базу или тестовую копию и воспроизводите типовые механизмы: оприходование товара, расчёт остатков, печатную форму. Теория без практики в 1С не держится в голове.