Программирование на 1С для начинающих: от учебной версии до первой работы
Содержание
Учить программирование 1С лучше не с синтаксиса языка, а с одной учебной конфигурации, которую вы соберёте сами: справочник, документ, регистр, отчёт. Установите учебную версию платформы 1С:Предприятие 8.3, откройте Конфигуратор и за 2–3 месяца пройдите путь «метаданные → встроенный язык → запросы → СКД». Этого хватает, чтобы сдать тест 1С:Профессионал по платформе и выйти на первую работу стажёром.
Частая ошибка новичка — сразу открыть типовую Бухгалтерию 3.0 и пытаться понять её код. В ней тысячи объектов и библиотека стандартных подсистем, новичок тонет за неделю. Типовые конфигурации изучают вторым этапом, когда своя маленькая база уже работает.
С чего начать изучение 1С: платформа, конфигурация и база
Сначала разберитесь, из чего состоит система. Без этой картины код не складывается в голове.
- 🧩 Платформа — исполняемая часть (
1cv8.exe), одна для всех решений. Версии идут как 8.3.xx. - 📦 Конфигурация — прикладное решение: Бухгалтерия, ЗУП, УТ или ваша учебная. Это набор объектов метаданных, форм и модулей.
- 🗄️ Информационная база — конфигурация плюс данные пользователей. Бывает файловой (папка с файлом
1Cv8.1CD) и клиент-серверной (СУБД плюс сервер 1С). - 🖥️ Режимы запуска — «1С:Предприятие» для пользователя и «Конфигуратор» для разработчика.
Что установить для старта
- Учебную версию платформы 1С:Предприятие 8.3. Она поставляется с учебными книгами и бесплатна в электронном виде на сайтах учебных программ фирмы 1С. У неё есть ограничения на объём данных, но для обучения их не замечаешь.
- Создайте пустую информационную базу: в окне запуска нажмите
Добавить → Создание новой информационной базы → Создание информационной базы без конфигурации. - Откройте её кнопкой
Конфигуратори выполнитеКонфигурация → Открыть конфигурацию. Слева появится дерево метаданных — это ваше рабочее поле.
Сразу заведите вторую базу из демо-конфигурации любого типового решения. Она понадобится позже, чтобы смотреть, как устроены настоящие документы и отчёты.
Конфигуратор или EDT
| Среда | Когда выбирать | Минусы для новичка |
|---|---|---|
| Конфигуратор | Старт, учебные курсы, экзамены, большинство вакансий | Скромный редактор кода |
| 1C:Enterprise Development Tools (EDT) | Командная разработка, Git, большие проекты | Тяжёлая, требует много памяти, порог входа выше |
Начинайте с Конфигуратора. Экзамены и типовые задачи на поддержке клиентов делаются в нём. К EDT переходите, когда устроитесь в команду, где она принята.
Встроенный язык 1С: синтаксис, модули и клиент-сервер
Встроенный язык 1С похож на Visual Basic и Pascal, только ключевые слова русские. Базовый синтаксис учится за неделю: переменные, условия Если … Тогда … КонецЕсли, циклы Для … Цикл и Пока … Цикл, процедуры и функции.
Основные универсальные коллекции надо знать на память:
- 📋 Массив — простой список значений.
- 🗂️ Структура — набор пар «ключ — значение» с ключами-строками.
- 🔑 Соответствие — то же, но ключом может быть любое значение, например ссылка.
- 📊 ТаблицаЗначений — таблица в памяти; с ней работают постоянно.
Где живёт код
Код в 1С лежит не в одном файле, а в модулях объектов. Новичку нужно знать пять видов:
- Модуль объекта — события записи и проведения (
ПередЗаписью,ОбработкаПроведения). - Модуль менеджера — методы, которые не привязаны к конкретному элементу.
- Модуль формы — реакция на действия пользователя.
- Общие модули — библиотека процедур для всей конфигурации.
- Модуль сеанса и модуль приложения — код при запуске.
Клиент и сервер — главный барьер
В управляемых формах код делится директивами компиляции &НаКлиенте, &НаСервере, &НаСервереБезКонтекста. На клиенте нельзя обращаться к базе напрямую, на сервере нельзя показывать диалоги пользователю. Пока это не уложится в голове, ошибки «метод недоступен на клиенте» будут сыпаться постоянно.
Простое правило: всё, что читает или пишет данные, — на сервере. Всё, что спрашивает пользователя, — на клиенте. Серверных вызовов из клиента делайте как можно меньше: каждый вызов — это обмен по сети.
Отладчик включите с первых дней: точка останова (F9) и пошаговое выполнение (F10, F11) объясняют чужой и свой код быстрее любой книги.
Объекты метаданных: справочники, документы, регистры
Это ядро профессии. Программист 1С в первую очередь проектирует, какие объекты хранят данные, и только потом пишет код.
| Объект | Что хранит | Пример |
|---|---|---|
| Справочник | Списки однотипных элементов | Номенклатура, Контрагенты |
| Документ | Факт хозяйственной операции с датой | Поступление товаров |
| Регистр сведений | Значения во времени или по измерениям | Цены номенклатуры |
| Регистр накопления | Остатки и обороты | Остатки товаров на складах |
| Регистр бухгалтерии | Проводки по плану счетов | Хозрасчётный |
| Перечисление | Фиксированный список значений | Виды оплаты |
| План видов характеристик | Дополнительные реквизиты произвольного типа | Свойства товаров |
Учебная задача, через которую проходят все
Соберите мини-учёт склада:
- Справочники
НоменклатураиСклады. - Регистр накопления
ОстаткиТоваровс измерениями «Номенклатура» и «Склад», ресурсом «Количество», видом «Остатки». - Документы
ПриходТовараиРасходТоварас табличной частью «Товары». - Обработка проведения, которая делает движения по регистру.
Конструктор движений в Конфигураторе сгенерирует код проведения сам. Но перепишите его руками хотя бы раз, чтобы понимать каждую строку:
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.ОстаткиТоваров.Записывать = Истина;
Для Каждого СтрокаТовара Из Товары Цикл
Движение = Движения.ОстаткиТоваров.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Номенклатура = СтрокаТовара.Номенклатура;
Движение.Склад = Склад;
Движение.Количество = СтрокаТовара.Количество;
КонецЦикла;
КонецПроцедуры
Следующий шаг — контроль остатков в документе расхода: проверить запросом, что товара хватает, и при нехватке установить Отказ = Истина. Эта задача почти дословно встречается на собеседованиях.
Язык запросов 1С и скорость работы
Язык запросов — это SQL-подобный язык поверх объектов метаданных. Обращаетесь вы не к таблицам СУБД, а к Справочник.Номенклатура или РегистрНакопления.ОстаткиТоваров.Остатки.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Остатки.Номенклатура КАК Номенклатура,
| Остатки.КоличествоОстаток КАК Количество
|ИЗ
| РегистрНакопления.ОстаткиТоваров.Остатки(&Дата, Склад = &Склад) КАК Остатки";
Запрос.УстановитьПараметр("Дата", ТекущаяДатаСеанса());
Запрос.УстановитьПараметр("Склад", Склад);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Строка(Выборка.Номенклатура) + ": " + Формат(Выборка.Количество, "ЧГ=0"));
КонецЦикла;
Что выучить по запросам
- 🔗 Соединения:
ЛЕВОЕ СОЕДИНЕНИЕ,ВНУТРЕННЕЕ СОЕДИНЕНИЕ, разница между ними на примере. - 📐 Группировки и агрегатные функции:
СГРУППИРОВАТЬ ПО,СУММА,КОЛИЧЕСТВО. - 📦 Временные таблицы и пакетные запросы (
ПОМЕСТИТЬ). - 📈 Виртуальные таблицы регистров:
Остатки,Обороты,ОстаткиИОбороты,СрезПоследних. - 🛠️ Консоль запросов — обработка, где пишут и проверяют запросы без программирования формы.
Правила производительности, которые спрашивают на экзамене
- Никогда не выполняйте запрос в цикле. Соберите данные одним запросом и обработайте результат.
- Условия на измерения передавайте в параметры виртуальной таблицы, а не в
ГДЕпосле неё. - Не обращайтесь к реквизитам через точку по составным типам: каждая точка — неявное соединение.
- Не тяните всю таблицу ради одной строки — ставьте отбор и
ПЕРВЫЕ. - Помните про индексы: измерения регистров индексируются, условия по неиндексированным полям в больших таблицах медленные.
Для оценки скорости используйте замер производительности в Конфигураторе: он показывает, какие строки кода съедают время.
Отчёты на СКД
Система компоновки данных (СКД) — стандартный способ делать отчёты в 1С. Почти любой отчёт в типовых конфигурациях построен на ней, и доработка отчётов — одна из самых частых задач на работе.
Схема компоновки состоит из нескольких частей:
- 🧾 Набор данных — обычно запрос.
- 🧮 Ресурсы — поля, которые суммируются в итогах.
- ⚙️ Параметры — период, организация, склад.
- 🎛️ Настройки — группировки, отборы, сортировки, условное оформление.
Порядок изучения СКД
- Сделайте отчёт по остаткам из своего регистра без единой строки кода — только схема.
- Добавьте группировку по складу и номенклатуре, итоги по количеству.
- Включите пользовательские настройки, чтобы пользователь сам менял отборы.
- Сделайте кросс-таблицу (номенклатура по строкам, склады по колонкам).
- Попробуйте вывести отчёт программно через
ПриКомпоновкеРезультата— это нужно, когда схема не справляется.
Для углублённого изучения есть книга Е. Ю. Хрусталёвой о разработке сложных отчётов на СКД. Её читают уже после основ.
Практика, сертификация 1С:Профессионал и первая работа
Теория без задач не держится. Хороший ориентир по времени, если заниматься 1–2 часа в день:
| Этап | Срок | Результат |
|---|---|---|
| Архитектура и метаданные | 2–3 недели | Своя база со справочниками и документами |
| Встроенный язык и формы | 3–4 недели | Проведение, проверки, клиент-сервер без ошибок |
| Запросы | 2–3 недели | Контроль остатков, отчёт через консоль запросов |
| СКД | 2 недели | 3–4 отчёта с настройками |
| Типовые конфигурации | 3–4 недели | Понимаете, где искать код в БП или УТ |
Книги и материалы
- 📘 «1С:Предприятие 8.3. Практическое пособие разработчика» (М. Г. Радченко, Е. Ю. Хрусталёва) — классика для первого этапа, примеры идут по шагам.
- 📗 Сборники задач для подготовки к экзамену 1С:Профессионал по платформе — решайте все подряд.
- 📙 Стандарты и методики разработки фирмы 1С — читайте после первой базы. По ним оценивают код на работе.
Сертификаты
- 1С:Профессионал — компьютерный тест. Первый, который стоит сдать: по платформе. Потом — по конкретным конфигурациям.
- 1С:Специалист — практический экзамен: за ограниченное время нужно решить задачу в Конфигураторе. Работодатели ценят его выше, и он заметно влияет на зарплату.
Где искать первую работу
- 🏢 Партнёры-франчайзи 1С — берут стажёров и учат на задачах клиентов. Много мелких доработок, быстрый рост.
- 🏭 ИТ-отделы компаний — одна-две базы, глубже погружение в учёт, меньше разнообразия.
- 🧑💻 Фриланс — только после года практики: клиенту нужен результат, а не обучение за его счёт.
Резюме без опыта усиливает выложенная учебная конфигурация и сертификат 1С:Профессионал. Ещё один плюс — понимание учёта: программист, который знает, что такое проводка и остаток на складе, ценится выше того, кто знает только язык.
Частые ошибки новичков
- ❌ Учить язык отдельно от метаданных. В 1С код всегда пишется для объекта. Без справочников, документов и регистров синтаксис ничего не даёт.
- ❌ Изменять типовую конфигурацию напрямую. На работе это усложняет обновления. Доработки делайте через расширения конфигурации — освойте их сразу после основ.
- ❌ Копировать код с форумов без понимания. Чужой фрагмент часто написан для обычных форм 8.2 и не работает в управляемых формах.
- ❌ Пропускать бухгалтерию. Доработки чаще всего связаны с учётом. Базовые знания про счета, проводки и закрытие месяца сокращают путь к первой работе.
- ❌ Бросать после конструкторов. Конструкторы запросов и движений полезны, но на экзамене и собеседовании нужно понимать код, который они создают.