Первая конфигурация своими руками: с чего начать разработку на 1С 8.3
Содержание
Программировать 1С самостоятельно можно начать за вечер: скачать учебную версию платформы 1С:Предприятие 8.3, создать пустую информационную базу, открыть её в конфигураторе и собрать справочник, документ и регистр. На этих трёх объектах держится почти вся учётная логика, и через пару недель такой практики вы уже читаете код типовых конфигураций.
Частое заблуждение новичков — что сначала надо «выучить язык», а потом браться за конфигурацию. В 1С наоборот: язык здесь вторичен, главное — понять, из каких объектов метаданных строится прикладное решение и как они связаны. Код пишется в модулях этих объектов, и без них он не имеет смысла.
Подготовка рабочего места: какую платформу ставить для обучения
Для самостоятельного обучения не нужна рабочая лицензия. Фирма 1С выпускает учебную версию платформы — бесплатную, с полноценным конфигуратором и режимом отладки. Её ограничения для обучения некритичны:
- 📁 работает только с файловыми базами, без сервера 1С;
- 📊 ограничено количество записей в таблицах — на учебных примерах до лимита вы не дойдёте;
- 🔌 часть внешних механизмов (внешнее соединение, автоматизация) недоступна.
Учебную версию обычно распространяют вместе с книгами серии «1С:Учебная версия» или скачивают из онлайн-магазина фирмы 1С после бесплатной регистрации.
Что поставить и как создать первую базу
- Установите платформу. При установке достаточно компонента «1С:Предприятие» — конфигуратор входит в него.
- Запустите ярлык 1С, в окне списка баз нажмите
Добавить→Создание новой информационной базы. - Выберите
Создание информационной базы без конфигурации для разработки новой конфигурации или загрузки выгруженной информационной базы. - Укажите каталог на диске, например
C:\1C_Learn\Base1. - Выделите базу в списке и нажмите
Конфигуратор.
Если вы уже работаете с типовой конфигурацией, учиться на ней можно только на копии: выгрузите базу через Администрирование → Выгрузить информационную базу в конфигураторе и загрузите файл .dt в новую пустую базу. Никогда не тренируйтесь на рабочей базе компании: одно случайное «Обновить конфигурацию
базы данных» после правки меняет структуру таблиц для всех пользователей.
Учебная платформа и рабочая могут стоять на одном компьютере. Версии ставятся в разные каталоги, а нужную версию для базы выбирают в её свойствах в окне запуска.
Конфигуратор или EDT
| Среда | Кому подходит | Особенности |
|---|---|---|
| Конфигуратор | новичкам, поддержке типовых | входит в платформу, весь учебный материал написан под него |
| 1С:EDT (Enterprise Development Tools) | командам, тем, кто работает с Git | среда на основе Eclipse, требовательна к памяти, порог входа выше |
Начинайте с конфигуратора. EDT имеет смысл осваивать позже, когда понадобится работа в команде и контроль версий.
Метаданные и окно конфигуратора: из чего собирается решение
В конфигураторе откройте Конфигурация → Открыть конфигурацию. Слева появится дерево метаданных — это и есть «исходник» прикладного решения. Каждая ветка — тип объекта со своим назначением.
| Объект | Что хранит или делает | Пример |
|---|---|---|
| Справочник | списки однотипных элементов | Товары, Контрагенты, Склады |
| Документ | факт хозяйственной операции с датой | Приход товара, Реализация |
| Регистр накопления | остатки и обороты | Остатки товаров на складах |
| Регистр сведений | данные с привязкой к периоду или измерениям | Цены номенклатуры |
| Перечисление | фиксированный список значений | Виды оплаты |
| Отчёт / Обработка | вывод данных / сервисные действия | Ведомость по складу |
| Общий модуль | код, который вызывают из разных мест | Процедуры расчёта |
Связка «документ → регистр» — главная идея учёта в 1С. Документ сам по себе ничего не считает. При проведении он записывает движения в регистр, а остатки потом берут из регистра.
Первая учебная задача
Соберите минимальный складской учёт — на нём видны все базовые механизмы:
- Справочник
Товарыс реквизитомЕдиницаИзмерения(строка). - Справочник
Склады. - Регистр накопления
ОстаткиТоваров: вид «Остатки», измеренияТовариСклад, ресурсКоличество. - Документ
ПриходТовара: реквизитСклад, табличная частьТоварыс колонкамиТовариКоличество. - На закладке «Движения» документа отметьте регистр
ОстаткиТоварови нажмитеКонструктор движений— он сгенерирует код проведения. - Нажмите
F7(обновить конфигурацию базы данных), затемF5— откроется режим 1С:Предприятие с вашими объектами.
Сгенерированный конструктором код прочитайте построчно. Это лучший первый учебник: вы видите, как документ формирует записи регистра.
Встроенный язык и модули: где живёт код
Язык 1С похож на Бейсик с русскими ключевыми словами: Если … Тогда … КонецЕсли, Для Каждого … Из … Цикл … КонецЦикла, Процедура … КонецПроцедуры. Синтаксис учится за несколько дней. Сложнее понять, в каком модуле писать код и где он выполняется.
Основные виды модулей
- 📄 Модуль объекта — события конкретного документа или справочника:
ПередЗаписью,ОбработкаПроведения,ОбработкаЗаполнения. - 🗂 Модуль менеджера — процедуры, которые относятся к типу объекта в целом, например печать или выборка по условию.
- 🖥 Модуль формы — реакция на действия пользователя: нажатие кнопки, изменение поля.
- 🧩 Общий модуль — повторно используемые функции. В свойствах задаётся, где он доступен: на сервере, на клиенте, через вызов сервера.
- ⚙️ Модуль сеанса и модуль управляемого приложения — код при запуске системы.
Пример: проведение документа прихода
Так выглядит обработчик проведения для учебного документа из предыдущего раздела:
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.ОстаткиТоваров.Записывать = Истина;
Для Каждого ТекСтрока Из Товары Цикл
Движение = Движения.ОстаткиТоваров.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Товар = ТекСтрока.Товар;
Движение.Склад = Склад;
Движение.Количество = ТекСтрока.Количество;
КонецЦикла;
КонецПроцедуры
Обращение Товары, Склад, Дата без префикса работает, потому что код находится в модуле объекта и видит реквизиты самого документа.
Встаньте курсором на любое слово языка и нажмите Ctrl+F1 — откроется синтакс-помощник с описанием метода, параметров и того, где он доступен (клиент, сервер). Полный справочник — Справка → Синтакс-помощник.
Запросы к базе: как получать данные правильно
Читать данные перебором объектов (Справочники.Товары.Выбрать() и обращение к каждому элементу) — путь к медленному коду. В 1С данные получают запросом. Язык запросов похож на SQL, но обращается к объектам метаданных, а не к таблицам СУБД.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Остатки.Товар КАК Товар,
| Остатки.КоличествоОстаток КАК Количество
|ИЗ
| РегистрНакопления.ОстаткиТоваров.Остатки(&НаДату, Склад = &Склад) КАК Остатки";
Запрос.УстановитьПараметр("НаДату", ТекущаяДатаСеанса());
Запрос.УстановитьПараметр("Склад", Склад);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = СтрШаблон("%1: %2", Выборка.Товар, Выборка.Количество);
Сообщение.Сообщить();
КонецЦикла;
Здесь Остатки(…) — виртуальная таблица регистра. Платформа сама собирает остаток на дату из движений. Условие по складу передано внутрь параметров виртуальной таблицы — так запрос работает быстрее, чем с фильтром в ГДЕ.
Приёмы, которые стоит освоить сразу
- Конструктор запроса. В модуле нажмите правой кнопкой →
Конструктор запроса. Галочками и мышью собирается текст запроса — удобно, пока синтаксис не выучен. - Параметры вместо склейки строк. Значения передавайте через
&ПараметриУстановитьПараметр, а не вставкой в текст. - Консоль запросов. Внешняя обработка, в которой запрос пишут и выполняют прямо в режиме 1С:Предприятие. Её версии свободно распространяют на профильных форумах; проверяйте запросы там, прежде чем переносить в код.
- Никаких запросов в цикле. Если в цикле по 1000 строк выполняется запрос — это 1000 обращений к базе. Соберите данные одним запросом заранее.
Управляемые формы: интерфейс и деление на клиент и сервер
Формы в 8.3 управляемые: платформа сама раскладывает элементы, а вы задаёте их состав и порядок. Откройте объект в конфигураторе, на закладке «Формы» нажмите кнопку добавления — конструктор формы создаст форму с полями реквизитов.
В редакторе формы три основные части:
- 🧱 Элементы — что видит пользователь: поля, таблицы, группы, кнопки.
- 🗃 Реквизиты — данные формы; основной реквизит
Объектхранит редактируемый документ или элемент. - 🔘 Команды — действия; команду перетаскивают в командную панель, чтобы появилась кнопка.
Директивы компиляции — главный барьер новичка
Код формы выполняется частично на компьютере пользователя, частично на сервере. Это указывают директивами перед процедурой:
| Директива | Где выполняется | Что доступно |
|---|---|---|
&НаКлиенте | на клиенте | данные формы, интерактивные действия; запросов нет |
&НаСервере | на сервере, с передачей формы | данные формы и база |
&НаСервереБезКонтекста | на сервере, без передачи формы | только база и переданные параметры, вызов дешевле |
Типичная связка: обработчик кнопки на клиенте вызывает серверную функцию, та выполняет запрос и возвращает результат.
&НаКлиенте
Процедура ПоказатьОстаток(Команда)
Остаток = ОстатокТовараНаСервере(Объект.Склад);
ПоказатьПредупреждение(, СтрШаблон("Позиций на складе: %1", Остаток));
КонецПроцедуры
&НаСервереБезКонтекста
Функция ОстатокТовараНаСервере(Склад)
Запрос = Новый Запрос(
"ВЫБРАТЬ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Остатки.Товар) КАК Позиций
|ИЗ
| РегистрНакопления.ОстаткиТоваров.Остатки(, Склад = &Склад) КАК Остатки");
Запрос.УстановитьПараметр("Склад", Склад);
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Возврат Выборка.Позиций;
КонецФункции
Каждый вызов сервера с клиента — сетевой обмен. Чем их меньше, тем быстрее форма. Поэтому опытные разработчики выбирают &НаСервереБезКонтекста, когда форма серверу не нужна.
Отладка и поиск ошибок в своём коде
Отладчик встроен в конфигуратор и работает в учебной версии. Без него учиться программировать в 1С вслепую намного дольше.
| Действие | Клавиша |
|---|---|
| Запустить 1С:Предприятие в режиме отладки | F5 |
| Поставить или снять точку останова | F9 |
| Шаг с заходом в процедуру | F11 |
| Шаг без захода в процедуру | F10 |
| Вычислить выражение | Shift+F9 |
Порядок работы простой: ставите точку останова на строку, выполняете действие в пользовательском режиме, выполнение останавливается — и вы смотрите значения переменных. В окне вычисления выражений можно проверить кусок кода, не перезапуская базу.
Ещё два инструмента пригодятся почти сразу:
- ⏱ Замер производительности (
Отладка → Замер производительности) показывает, сколько времени заняла каждая строка. Так находят тот самый запрос в цикле. - ✅ Синтаксический контроль —
Ctrl+F7в модуле илиКонфигурация → Проверка конфигурациидля всего решения. Ошибки синтаксиса и обращения к несуществующим методам видны до запуска.
Где учиться дальше: книги, курсы, сертификация
Самостоятельное обучение 1С лучше строить по ступеням: сначала платформа и учёт, потом запросы, потом типовые конфигурации.
- 📘 «1С:Предприятие 8.3. Практическое пособие разработчика» (М. Радченко, Е. Хрусталёва) — классический учебник: на сквозном примере собирается целая конфигурация. Проходите его руками, а не чтением.
- 📗 «Язык запросов 1С:Предприятия 8» (Е. Хрусталёва) — когда базовые запросы уже получаются и нужны вложенные запросы, временные таблицы, соединения.
- 📙 Система стандартов и методик разработки фирмы 1С — правила оформления кода и проектирования, по которым написаны типовые решения. Читать по теме, когда пишете похожий код.
- 🧭 Код типовых конфигураций. Откройте копию «Бухгалтерии предприятия» и посмотрите, как устроено проведение реального документа, тот же
ОбработкаПроведения. - 💬 Профессиональные сообщества — Инфостарт, форум Мисты: готовые разборы и ответы на конкретные ошибки.
Расширения — правильный способ дорабатывать типовые
Когда дойдёте до доработки реальных конфигураций, осваивайте расширения конфигурации. Расширение подключается к типовой и меняет её поведение без снятия с поддержки — обновления ставятся без ручного сравнения и объединения. Новые формы, реквизиты и обработчики добавляют именно так.
Сертификация
Знания подтверждают экзаменом «1С:Профессионал» по платформе — это тест, который сдают в авторизованных центрах или онлайн. Следующая ступень, «1С:Специалист», — практическое решение задачи на компьютере. Для работы во франчайзи и на позиции программиста 1С эти сертификаты часто спрашивают на собеседовании.
Частые вопросы
Сколько времени нужно, чтобы научиться программировать в 1С с нуля?
Нужно ли знать бухгалтерию, чтобы программировать 1С?
Можно ли писать код 1С на английском?
If … Then, Query, Message. Типовые конфигурации написаны на русском, поэтому на практике пишут по-русски.