Первая своя конфигурация на платформе 1С 8.3: от пустой базы до отчёта
Содержание
Начать изучение конфигураций 1С проще всего так: поставить учебную версию платформы 8.3, создать файловую базу «без конфигурации» и за вечер собрать в конфигураторе один справочник, один документ и регистр остатков. После этого запросы, отчёты и типовые конфигурации читаются уже не как «чёрный ящик», а как набор знакомых объектов.
Типичная ситуация: бухгалтер годами работает в 1С:Бухгалтерии, а потом ему поручают «немного доработать печатную форму» или настроить обмен. Открыв конфигуратор типовой базы, он видит тысячи объектов и закрывает окно. Правильный порядок обратный: сначала маленькая своя конфигурация, где каждый объект создан вашими руками, и только потом — настройка и доработка типовых.
С чего начать: тип базы и установка платформы
Для учёбы не нужен сервер и не нужна рабочая лицензия. Есть учебная версия платформы «1С:Предприятие 8.3» — она распространяется бесплатно и легально, работает в однопользовательском режиме и имеет ограничения на объём данных. Для отработки примеров этого хватает с запасом.
Не учитесь на рабочей базе компании: даже безобидное изменение структуры в ней требует монопольного доступа и может остановить работу коллег.
Какую базу создать
| Вариант | Где хранятся данные | Когда выбирать |
|---|---|---|
| Файловая база | Один файл 1Cv8.1CD в папке на диске | Учёба, личные эксперименты, небольшие офисы |
| Клиент-серверная база | СУБД (PostgreSQL, MS SQL) + сервер 1С | Рабочие системы на десятки пользователей, изучение администрирования |
Для старта берите файловую. Её легко скопировать целиком: закрыли 1С, скопировали папку — получили резервную копию эксперимента.
Установка и создание пустой базы
- Распакуйте дистрибутив платформы и запустите
setup.exe. - В составе компонентов оставьте «1С:Предприятие» — в него входит и конфигуратор, и толстый клиент. Тонкий клиент для учёбы не обязателен.
- Запустите 1С. В окне запуска нажмите
Добавить→Создание новой информационной базы. - Выберите
Создание информационной базы без конфигурации для разработки новой конфигурации или загрузки выгруженной информационной базы. - Укажите имя (например, «Учебная») и каталог на локальном диске, не в сетевой папке.
- Выделите базу в списке и нажмите
Конфигуратор.
Рядом заведите вторую базу из демо-конфигурации типового решения, если она есть в комплекте. На ней удобно смотреть, как «настоящие» разработчики называют объекты и пишут модули.
Конфигуратор: окно, дерево метаданных и режимы запуска
У 1С два режима работы с одной и той же базой:
- 🛠 Конфигуратор — здесь описывают структуру: какие справочники, документы и регистры есть, какие у них реквизиты, формы и модули;
- 👩💼 1С:Предприятие — режим пользователя, где эти объекты заполняют данными.
В пустой базе откройте Конфигурация → Открыть конфигурацию. Слева появится дерево метаданных. Его ветки — это типы объектов, которые умеет платформа.
| Ветка дерева | Что хранит | Пример |
|---|---|---|
| Общие | Подсистемы (разделы интерфейса), роли, общие модули | Раздел «Склад», роль «Кладовщик» |
| Константы | Одно значение на всю базу | Основная организация |
| Справочники | Списки однотипных элементов | Номенклатура, Контрагенты |
| Документы | Хозяйственные события с датой и номером | Приход товара, Расход товара |
| Перечисления | Фиксированный набор значений | Виды оплаты: нал, безнал |
| Отчёты, Обработки | Вывод данных и сервисные действия | Остатки на складе, Групповое изменение |
| Регистры | Накопленные данные для учёта и итогов | Остатки товаров, Цены |
Как устроен цикл «изменил → проверил»
Изменения в дереве сначала живут в основной конфигурации. Чтобы они попали в базу, нужна команда Конфигурация → Обновить конфигурацию базы данных (клавиша F7). Затем Отладка → Начать отладку (F5) запускает режим пользователя, и вы сразу видите результат.
Если в базе работают другие пользователи, обновление структуры потребует монопольного доступа или динамического обновления. На своей учебной базе этот вопрос не возникает.
Первым делом создайте подсистему, например «Склад», в ветке Общие → Подсистемы. Объекты, включённые в подсистему, появятся в одноимённом разделе интерфейса. Без подсистем новый справочник «потеряется» в режиме пользователя.
Первые объекты: справочники и документы
Учебная задача, на которой удобно всё отработать, — склад: товары приходуют, расходуют и смотрят остатки.
Справочник «Номенклатура»
- В ветке
СправочникинажмитеДобавить. - Имя —
Номенклатура. Имя пишется без пробелов, синоним (то, что видит пользователь) заполнится сам. - На закладке «Данные» добавьте реквизит
Артикулс типом «Строка», длина 25. - На закладке «Подсистемы» отметьте «Склад».
- Нажмите
F7, затемF5и добавьте пару товаров.
Код и наименование у справочника есть всегда — их не нужно создавать как реквизиты. Иерархию (папки) включают на закладке «Иерархия».
Документ «Приход товара»
- В ветке
Документыдобавьте объектПриходТовара. - На закладке «Данные» создайте табличную часть
Товарыс реквизитамиНоменклатура(тип «СправочникСсылка.Номенклатура») иКоличество(тип «Число», 15 знаков, 3 после запятой). - Отметьте подсистему «Склад».
Номер и дата у документа тоже есть изначально. Точно так же создайте РасходТовара — проще всего скопировать первый документ в дереве и переименовать копию.
Тип реквизита «СправочникСсылка» — главный приём, который нужно понять в начале. В реквизите хранится не название товара, а ссылка на элемент справочника. Переименовали товар — во всех документах он поменялся автоматически.
Регистры накопления и сведений: где живут остатки
Документ сам по себе — только бумажка в базе. Чтобы знать остаток, документ при проведении записывает движения в регистр. Это ключевая идея всех конфигураций 1С, от учебной до ERP.
| Регистр | Что хранит | Пример |
|---|---|---|
| Регистр накопления, вид «Остатки» | Приход и расход, по которым считается остаток | Остатки товаров по складам |
| Регистр накопления, вид «Обороты» | Только обороты за период, без остатка | Продажи за месяц |
| Регистр сведений | Значение на дату или без даты | Цены номенклатуры, курсы валют |
| Регистр бухгалтерии | Проводки по плану счетов | Хозрасчётный в 1С:Бухгалтерии |
Создаём регистр остатков
- В ветке
Регистры накоплениядобавьтеОстаткиТоваров, вид «Остатки». - Измерение —
Номенклатура(тип «СправочникСсылка.Номенклатура»). - Ресурс —
Количество(число 15.3). - На закладке «Регистраторы» отметьте оба документа.
Теперь откройте документ ПриходТовара и на закладке «Движения» нажмите Конструктор движений. Укажите регистр, вид движения «Приход» и табличную часть «Товары». Конструктор сам сформирует процедуру в модуле объекта:
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.ОстаткиТоваров.Записывать = Истина;
Для Каждого ТекСтрокаТовары Из Товары Цикл
Движение = Движения.ОстаткиТоваров.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Номенклатура = ТекСтрокаТовары.Номенклатура;
Движение.Количество = ТекСтрокаТовары.Количество;
КонецЦикла;
КонецПроцедуры
Для расходного документа повторите то же с видом «Расход». Проведите приход на 10 штук и расход на 3 — в регистре останется 7.
Язык запросов 1С: как достать данные из базы
Данные в отчёты, формы и печать попадают через запросы. Язык похож на SQL, но работает с объектами конфигурации, а не с таблицами СУБД напрямую. У регистров есть готовые виртуальные таблицы: Остатки, Обороты, ОстаткиИОбороты — именно на них держатся почти все складские отчёты.
Пример: вывести текущие остатки товаров. Код можно выполнить на сервере, например в команде обработки:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОстаткиТоваровОстатки.Номенклатура КАК Номенклатура,
| ОстаткиТоваровОстатки.КоличествоОстаток КАК Остаток
|ИЗ
| РегистрНакопления.ОстаткиТоваров.Остатки КАК ОстаткиТоваровОстатки";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Строка(Выборка.Номенклатура) + ": " + Формат(Выборка.Остаток, "ЧДЦ=3; ЧН=0"));
КонецЦикла;
Писать текст запроса руками в начале не нужно. В модуле поставьте курсор внутрь пустой строки, вызовите контекстное меню и выберите Конструктор запроса. Конструктор соберёт текст из выбранных таблиц и полей, а вы будете учиться, читая результат.
Что освоить в первую очередь:
- 📌 отбор через
ГДЕи параметры&Параметрвместо подстановки значений в строку; - 📌 соединения
ЛЕВОЕ СОЕДИНЕНИЕ— чтобы подтянуть к товарам цены; - 📌 группировку
СГРУППИРОВАТЬ ПОи агрегатные функцииСУММА,КОЛИЧЕСТВО; - 📌 параметры виртуальных таблиц — отбор по периоду и измерениям внутри скобок
Остатки(&Дата, Номенклатура = &Товар), а не вГДЕ.
Последний пункт — приём, который отличает новичка от практика. Условие в параметрах виртуальной таблицы отбирает данные до расчёта остатков, а условие в ГДЕ — после. На большой базе разница в скорости бывает многократной.
Отчёты на СКД и обработки
Отчёт — объект для вывода данных, обработка — для действий с ними: перенести, заполнить, загрузить, исправить. Оба бывают встроенными (в дереве конфигурации) и внешними — отдельными файлами .erf и .epf.
Первый отчёт за 10 минут
- В ветке
ОтчётыдобавьтеОстаткиНаСкладе. - Нажмите
Открыть схему компоновки данных— платформа создаст основную схему. - В конструкторе схемы добавьте набор данных «Запрос» и через
Конструктор запросавыберите виртуальную таблицуОстаткиТоваров.Остатки. - На закладке «Настройки» добавьте группировку «Детальные записи» и выберите поля.
- Включите отчёт в подсистему, нажмите
F7иF5.
Пользователь получит готовый отчёт с отборами, сортировкой и выводом в Excel, хотя вы не написали ни строчки кода. Это и есть система компоновки данных (СКД) — на ней построены почти все отчёты типовых конфигураций.
Внешние обработки: безопасный путь в типовые базы
Внешнюю обработку создают через Файл → Новый → Внешняя обработка и сохраняют отдельным файлом. В типовой базе её открывают через Файл → Открыть или подключают как дополнительную обработку — сама конфигурация при этом не меняется.
Внешняя обработка с кодом записи данных работает с рабочей базой напрямую. Проверьте её на копии базы до запуска у пользователей.
Настройка типовой конфигурации: путь пользователя
Если цель — не разработка, а работа в готовой программе, первые шаги другие. Вы ничего не создаёте в конфигураторе, а настраиваете типовое решение в режиме 1С:Предприятие.
Для 1С:Бухгалтерии 3.0 порядок такой:
- Заполнить реквизиты организации:
Главное → Настройки → Организации. - Включить нужные участки учёта:
Главное → Настройки → Функциональность— валюта, склад, зарплата, производство. - Настроить учётную политику и налоги:
Главное → Настройки → Учетная политика. - Ввести начальные остатки через помощник ввода остатков в разделе
Главное. - Подключить интернет-поддержку:
Администрирование → Интернет-поддержка и сервисы.
Доработку типовой конфигурации делают через расширения (Конфигурация → Расширения конфигурации). Расширения появились в платформе 8.3.6. Они не снимают типовую с поддержки, и обновления встают без ручного сравнения и объединения.
Ошибки новичков в разработке конфигураций
- ❌ Правка типовой без расширения. Снятие с поддержки превращает каждое обновление в ручное сравнение конфигураций. Для своих учебных баз это неважно, для рабочих — дорого.
- ❌ Запрос в цикле. Сто строк документа — сто запросов к базе. Правильно: один запрос на все строки, затем обход результата.
- ❌ Обращение «через точку» в коде.
Документ.Контрагент.ИННв цикле каждый раз читает весь объект контрагента. Нужное поле лучше получить в том же запросе. - ❌ Путаница клиента и сервера. В управляемых формах код помечают директивами
&НаКлиентеи&НаСервере. Запрос к базе на клиенте выполнить нельзя — платформа выдаст ошибку. - ❌ Хранение изменчивых данных в реквизитах. Цена в карточке товара затирает историю. Для данных «на дату» есть периодический регистр сведений.
- ❌
ТекущаяДата()вместоТекущаяДатаСеанса(). Первая возвращает время компьютера, на котором выполняется код, вторая учитывает часовой пояс сеанса. Для дат документов используйте вторую. - ❌ Склейка числа со строкой. Без
Формат()число 1500 превращается в строку с неразрывным пробелом «1 500», и сравнение строк ломается.
Куда двигаться дальше в изучении платформы
Когда учебная конфигурация со складом работает, логичный маршрут такой:
| Этап | Что изучать | Результат |
|---|---|---|
| 1 | Управляемые формы, команды, роли и права | Пользовательский интерфейс и доступ |
| 2 | Регистры бухгалтерии и расчёта, планы счетов | Понимание устройства 1С:Бухгалтерии и ЗУП |
| 3 | Библиотека стандартных подсистем (БСП) | Чтение кода любой типовой конфигурации |
| 4 | Обмен данными, HTTP-сервисы, фоновые задания | Интеграции и автоматизация |
| 5 | Клиент-серверный вариант, замер производительности | Работа с крупными базами |
Полезные инструменты на этом пути:
- 📘 книга «1С:Предприятие 8.3. Практическое пособие разработчика» (Радченко, Хрусталева) — пошаговый учебный пример, близкий к описанному выше;
- 🧰 1C:Enterprise Development Tools (EDT) — среда разработки на базе Eclipse, работает с Git; осваивать после конфигуратора;
- 🗂 хранилище конфигурации — для командной разработки, когда объекты «захватывают» на изменение по очереди;
- 🎓 сертификация «1С:Профессионал» по платформе — тест на знание механизмов, хорошая проверка базы перед «1С:Специалист».
Самый быстрый способ расти — читать код типовых конфигураций. Откройте в конфигураторе демо-базу, найдите документ «Реализация товаров и услуг» и посмотрите, как устроено его проведение. После своей учебной конфигурации вы узнаете там те же приёмы, только масштабнее.
Частые вопросы
Нужно ли знать программирование, чтобы начать изучать 1С?
Можно ли учиться на учебной версии и потом перенести конфигурацию в рабочую базу?
.cf через Конфигурация → Сохранить конфигурацию в файл и загружают в базу на полной платформе. Данные переносят выгрузкой в .dt.