Разработка и Конфигурация · 13 мин
Как написать конфигурацию 1С с нуля
Как написать собственную конфигурацию 1С с нуля: структура метаданных, справочники, документы, регистры, проведение, отчёты и типичные ошибки начинающих разработчиков.
Написать собственную конфигурацию 1С — задача, которая по силам даже разработчику без опыта, если понимать базовую логику платформы. Конфигурация — это набор объектов метаданных (справочников, документов, регистров, отчётов), связанных между собой бизнес-логикой. Платформа автоматически формирует таблицы базы данных, формы и интерфейс, поэтому основная работа разработчика — правильно спроектировать структуру данных и описать алгоритмы на встроенном языке.
Прежде чем открывать конфигуратор, ответьте на три вопроса: какие сущности будет хранить система (товары, клиенты, сотрудники), какие события нужно фиксировать (продажа, оплата, перемещение) и какие итоги требуется получать (остатки, обороты, задолженности). Ответы напрямую определяют состав объектов: сущности становятся справочниками, события — документами, итоги — регистрами накопления и сведений. Ошибка на этом этапе дороже всего: переделка структуры метаданных после заполнения базы данными требует конвертации и рискует потерей информации.
Ниже разобран полный цикл создания минимальной учётной конфигурации: от пустого проекта до рабочего документа с проведением и отчётом. Все действия выполняются в конфигураторе на обычной учебной или коммерческой платформе, дополнительные инструменты не нужны.
Подготовка: платформа, база и план структуры
Установите платформу 1С:Предприятие подходящей версии и запустите конфигуратор. Создайте новую информационную базу через стартовое окно «Добавить» → «Создание новой информационной базы» → вариант «без конфигурации». Получите пустую базу, в которой нет ни одного объекта — это чистый лист для разработки.
Откройте дерево конфигурации (меню «Конфигурация» → «Открыть конфигурацию») и задайте имя, синоним и комментарий в свойствах корневого узла. Имя используется в коде, синоним виден пользователям. Сразу определите версию конфигурации в формате, например 1.0.0.1 — это упростит сопровождение и обновления в будущем.
Составьте на бумаге схему будущей системы. Для простого учёта продаж достаточно: справочники «Номенклатура» и «Контрагенты», документ «ПродажаТоваров», регистр накопления «ОстаткиТоваров» и отчёт по остаткам. Такая схема покрывает типовую цепочку «справочная информация → факт операции → итоги → анализ» и является фундаментом большинства прикладных решений.
Создание справочников — хранилищ нормативных данных
Справочник — объект для хранения относительно постоянной информации: товаров, клиентов, складов, валют. В дереве конфигурации нажмите правой кнопкой на ветку «Справочники» → «Добавить». Задайте имя «Номенклатура» — платформа автоматически создаст стандартные реквизиты «Код» и «Наименование», формы элемента и списка, таблицы в базе данных.
Добавьте собственные реквизиты на вкладке «Данные»: например, «Цена» (тип Число, длина 15, точность 2) и «ЕдиницаИзмерения» (тип Строка или ссылка на отдельный справочник). Для реквизита «Цена» включите проверку заполнения, если товар без цены бессмыслен в вашей учётной модели. Иерархию включайте только если группы товаров действительно нужны — она усложняет формы и запросы.
Для справочника «Контрагенты» добавьте реквизиты «ИНН» (строка 10–12 символов) и «Телефон». Не плодите реквизиты «на всякий случай»: каждый лишний реквизит — это поле, которое пользователи будут игнорировать или заполнять мусором. Недостающие данные проще добавить позже, чем вычищать неиспользуемые.
Документы: фиксация хозяйственных операций
Документ — центральный объект учётной системы: он фиксирует факт операции с датой и временем и, как правило, изменяет состояние учёта через проведение. Создайте документ «ПродажаТоваров» с реквизитами шапки «Контрагент» (ссылка на справочник) и табличной частью «Товары» с колонками «Номенклатура», «Количество» (число) и «Цена» (число).
Табличная часть — ключевое отличие документа от справочника: документ может содержать произвольное число строк одной операции. Добавьте в табличную часть вычисляемую сумму строки. Проще всего это сделать реквизитом «Сумма», который заполняется кодом в модуле формы при изменении количества или цены:
&НаКлиенте
Процедура ТоварыКоличествоПриИзменении(Элемент)
Строка = Элементы.Товары.ТекущиеДанные;
Строка.Сумма = Строка.Количество * Строка.Цена;
КонецПроцедуры
Настройте нумерацию и длину номера на вкладке «Нумерация», включите журнал документов, чтобы пользователи видели список продаж в одном месте. Проверьте поведение в режиме предприятия: создайте документ, заполните строки, убедитесь, что суммы считаются и документ сохраняется.
Регистры и проведение: где живут итоги
Регистр накопления хранит итоги в разрезе измерений (например, товар и склад) и ресурсов (количество, сумма). Создайте регистр «ОстаткиТоваров» вида «Остатки», добавьте измерение «Номенклатура» (ссылка на справочник) и ресурс «Количество» (число). Вид «Остатки» означает, что платформа хранит итоговое сальдо и умеет быстро отдавать остаток на любую дату.
Теперь свяжите документ с регистром. В свойствах документа откройте вкладку «Движения» и отметьте регистр «ОстаткиТоваров». Платформа предложит конструктор движений — согласитесь: он сгенерирует процедуру «ОбработкаПроведения» в модуле объекта. Проверьте, что вид движения — «Расход», а количество берётся из табличной части:
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.ОстаткиТоваров.Записывать = Истина;
Для Каждого Строка Из Товары Цикл
Движение = Движения.ОстаткиТоваров.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = Строка.Номенклатура;
Движение.Количество = Строка.Количество;
КонецЦикла;
КонецПроцедуры
Проведите документ в режиме предприятия и откройте регистр (через меню «Все функции» → «Регистры накопления»): должны появиться записи движений. Это контрольная точка — если движений нет, ошибка либо в коде проведения, либо в том, что регистр не отмечен в движениях документа.
Отчёты: извлечение результата через СКД
Отчёт без запроса к регистрам бесполезен, поэтому используйте систему компоновки данных (СКД) — она позволяет собрать отчёт декларативно, без ручного рисования форм. Создайте отчёт «ОстаткиТоваров», откройте «Основную схему компоновки данных» и добавьте запрос к виртуальной таблице остатков регистра:
ВЫБРАТЬ
Остатки.Номенклатура КАК Номенклатура,
Остатки.КоличествоОстаток КАК Остаток
ИЗ
РегистрНакопления.ОстаткиТоваров.Остатки КАК Остатки
На вкладке «Настройки» конструктора СКД добавьте группировку по номенклатуре и ресурс «Остаток». Сохраните отчёт и запустите его в режиме предприятия — вы увидите актуальные остатки по всем проведённым документам. Виртуальная таблица «Остатки» рассчитывается платформой автоматически, вручную суммировать движения не нужно.
Для удобства пользователей добавьте параметр «Период» в запрос (виртуальная таблица Остатки принимает параметр даты) и вынесите его в быстрые настройки отчёта. Так пользователь сможет смотреть остатки на любую прошедшую дату без правки схемы.
- 1Создайте пустую информационную базу и откройте конфигурацию
- 2Добавьте справочники Номенклатура и Контрагенты с нужными реквизитами
- 3Создайте документ ПродажаТоваров с табличной частью Товары
- 4Создайте регистр накопления ОстаткиТоваров (вид Остатки)
- 5Свяжите документ с регистром и сгенерируйте проведение конструктором
- 6Проверьте движения в режиме предприятия
- 7Соберите отчёт по остаткам через СКД и проверьте цифры
Подсистемы, роли и интерфейс пользователя
Подсистемы группируют объекты в разделы интерфейса: «Справочники», «Продажи», «Отчёты». Создайте подсистемы в соответствующей ветке дерева конфигурации и отметьте в каждой объекты, которые к ней относятся. Платформа сама построит панель разделов — программировать меню не нужно.
Роли определяют права доступа. Создайте минимум две роли: «ПолныеПрава» (всё разрешено) и «Пользователь» (чтение справочников, добавление документов, запуск отчётов, без права удаления и изменения проведённых документов). Назначьте роли пользователям в режиме предприятия через «Администрирование» → «Пользователи».
Проверьте интерфейс глазами конечного пользователя: войдите под ролью «Пользователь» и убедитесь, что видны только нужные разделы, документы создаются и проводятся, а лишние команды недоступны. Это выявит ошибки прав раньше, чем их найдут реальные пользователи.
Тестирование и контроль результата
Минимальный тестовый сценарий для учётной конфигурации: заведите два товара, проведите поступление (если есть документ прихода) или начальный остаток, затем проведите продажу и сверьте остаток в отчёте с ожидаемым числом. Затем отмените проведение продажи — остаток должен вернуться к исходному значению. Этот цикл «провёл → отменил → сверил» выявляет большинство ошибок проведения.
Отдельно проверьте граничные случаи: документ с пустой табличной частью (должен либо запрещаться проведение, либо проводиться без движений — осознанно выберите поведение), продажа количества больше остатка (для строгого учёта добавьте контроль остатков в ОбработкеПроведения с установкой Отказ = Истина), перепроведение документа после изменения строк.
Как проверить результат
После проведения в регистре есть записи с правильным видом движения и количеством
Записей нет или количество не совпадает с табличной частью
Цифры в отчёте совпадают с ручным расчётом по документам
Остатки не сходятся или не меняются после проведения
Движения удаляются, остатки возвращаются к исходным
После отмены остаются «хвосты» в регистре
Под ограниченной ролью недоступны удаление и администрирование
Пользователь видит всё или не может провести документ
Куда развивать конфигурацию дальше
После рабочего ядра логичные шаги развития: добавить документ «ПоступлениеТоваров» с видом движения «Приход» в тот же регистр, ввести контроль отрицательных остатков, добавить печатную форму документа через макет табличного документа и валютные суммы, если есть расчёты с контрагентами (тогда понадобится регистр «Взаиморасчёты»).
Каждое расширение делайте отдельной итерацией: новый объект → проведение → тестовый цикл → отчёт. Такой подход держит систему в работоспособном состоянии на каждом шаге и упрощает поиск ошибок. Для обмена данными с типовыми конфигурациями изучите планы обмена, а для интеграции с внешними системами — HTTP-сервисы и веб-сервисы платформы.
Что важно запомнить
Конфигурация 1С строится по цепочке: справочники хранят данные, документы фиксируют операции, регистры накапливают итоги, отчёты их показывают. Начинайте с минимального ядра, проверяйте проведение циклом «провёл — отменил — сверил» и расширяйте систему итерациями с ролями и подсистемами.
Частые вопросы
Нужно ли знать программирование, чтобы написать конфигурацию 1С?
Базовую конфигурацию можно собрать почти без кода: конструкторы движений, форм и СКД генерируют большую часть логики. Программировать на встроенном языке придётся для нестандартных алгоритмов — контроля остатков, расчёта цен, интеграций. Синтаксис языка простой, и для старта достаточно понимания переменных, циклов и условий.
Чем написание конфигурации с нуля отличается от доработки типовой?
Своя конфигурация даёт полную свободу структуры, но всё приходится делать самостоятельно, включая обновления и отчётность. Доработка типовой быстрее на старте, но требует аккуратности: изменения типовых объектов усложняют обновления. Для специфических учётных задач, не покрываемых типовыми решениями, отдельная конфигурация часто выгоднее.
Какой вид регистра накопления выбрать: остатки или обороты?
Остатки — когда нужно знать сальдо на дату: товары на складе, деньги на счетах. Обороты — когда важны только суммы за период: выручка по менеджерам, количество продаж. Регистр остатков хранит итоги по измерениям и требует указания вида движения (приход/расход), оборотный — только накапливает суммы.
Как добавить контроль отрицательных остатков при продаже?
В процедуре ОбработкаПроведения после формирования движений запишите их, затем запросом к виртуальной таблице Остатки (с отбором по товарам документа) проверьте отрицательные значения. Если остаток меньше нуля — выведите сообщение и установите Отказ = Истина. Учтите, что при таком подходе важен порядок: сначала записать движения, потом читать итоги.
Можно ли перенести конфигурацию на другой компьютер?
Да. Используйте выгрузку конфигурации в файл (Конфигурация → Сохранить конфигурацию в файл) для переноса структуры без данных, либо выгрузку информационной базы целиком (Администрирование → Выгрузить информационную базу) для переноса вместе с данными. Второй вариант также служит резервной копией.
Сколько времени занимает написание простой конфигурации?
Минимальное учётное ядро из статьи — справочники, один документ с проведением, регистр и отчёт — собирается за несколько часов даже новичком. Основное время уходит не на создание объектов, а на проектирование структуры, тестирование проведения и доводку интерфейса под реальных пользователей.