К статье
Практический материал

Разработка и Конфигурация · 12 мин

Как разработать свою конфигурацию в 1С с нуля

Как разработать собственную конфигурацию в 1С с нуля: проектирование объектов, создание справочников и документов, отладка, типовые ошибки и проверка результата.

Разработка собственной конфигурации 1С — задача, которая кажется сложной только до тех пор, пока не разбита на понятные этапы. Платформа «1С:Предприятие» изначально проектировалась как инструмент быстрой разработки учётных систем: разработчику не нужно писать код для базы данных, интерфейса и прав доступа — достаточно описать структуру предметной области через объекты конфигурации, а платформа сама сгенерирует таблицы, формы и механизмы взаимодействия.

Работа ведётся в конфигураторе — среде разработки, входящей в состав платформы. Для старта достаточно учебной версии платформы: она бесплатна, не требует лицензии и позволяет создавать полноценные конфигурации с ограничениями (нельзя работать в клиент-серверном режиме и использовать COM-соединения). Для обучения и прототипирования этих ограничений обычно достаточно.

Ниже разобран полный цикл: от постановки задачи и проектирования структуры данных до отладки, тестирования и переноса конфигурации в рабочую базу. Материал ориентирован на тех, кто уже знаком с пользовательским режимом 1С и хочет перейти к разработке.

Подготовка: платформа, учебная версия и постановка задачи

Перед установкой инструментов сформулируйте задачу в терминах предметной области: что учитываем (товары, заказы, время сотрудников), какие документы фиксируют события, какие отчёты нужны руководству. Хороший признак готовой постановки — вы можете нарисовать на бумаге схему из 5–10 сущностей и стрелок между ними. Если схема не складывается, разработку начинать рано: сначала нужно разобраться в процессах.

Установите платформу «1С:Предприятие» (для обучения — учебную версию с официального портала) и создайте пустую информационную базу без конфигурации. При первом запуске конфигуратора система предложит создать новую конфигурацию — соглашайтесь. Дальнейшая работа идёт в дереве конфигурации: это иерархический список всех объектов, из которых состоит прикладное решение.

Сразу настройте режим работы. Для современной разработки выбирайте управляемое приложение и режим совместимости актуальной версии платформы — это задаётся в свойствах корневого узла конфигурации. Режим совместимости влияет на доступные возможности языка и поведение платформы, менять его в середине проекта нежелательно.

Проектирование структуры данных до написания кода

Главная ошибка начинающих — сразу открывать конфигуратор и создавать объекты «по ходу дела». Через неделю такая конфигурация превращается в набор несвязанных справочников, которые приходится переделывать. Правильный порядок: сначала модель на бумаге, потом объекты в конфигураторе.

Разделите сущности предметной области по типам объектов 1С. Постоянная информация (контрагенты, номенклатура, сотрудники) — это справочники. События, изменяющие состояние учёта (поступление товара, продажа, оплата), — документы. Данные, которые документы записывают и по которым строятся отчёты (остатки, продажи, задолженность), — регистры накопления и сведений. Отчёты не хранят данные, а только читают их из регистров и таблиц документов.

Ключевой принцип 1С: документы ничего не «считают» сами по себе — они делают движения по регистрам, а отчёты строятся по регистрам. Если спроектировать регистры неправильно (например, хранить остатки в документе), получить корректные отчёты за произвольный период будет невозможно без полной переделки.

Создание объектов конфигурации

Начните со справочников. В дереве конфигурации правый клик по ветке «Справочники» → «Добавить». Задайте имя (оно же — имя объекта в коде), длину кода и наименования. Для большинства справочников достаточно стандартных реквизитов, но при необходимости добавьте свои: например, у справочника «Номенклатура» — реквизит «Артикул» и табличную часть «Штрихкоды». Платформа автоматически создаст формы элемента и списка, но их можно переопределить собственными.

Далее — документы. У документа обязательно есть номер и дата; добавьте шапку (контрагент, склад, организация) и табличную часть (список товаров с количеством и ценой). На закладке «Движения» отметьте регистры, по которым документ должен проводиться, — платформа предложит автоматически сформировать процедуру проведения. Этот конструктор движений — хорошая отправная точка, которую потом дорабатывают вручную.

Регистры накопления создавайте с типом «Остатки» для складского учёта и «Обороты» — для аналитики продаж. Измерения — это разрезы учёта (склад, номенклатура), ресурсы — числовые показатели (количество, сумма). Правило: если по показателю нужен остаток на дату — это регистр остатков, если только сумма за период — достаточно оборотов, что быстрее работает.

Порядок создания минимальной конфигурации
  1. 1
    Создайте пустую базу и конфигурацию, задайте режим совместимости
  2. 2
    Спроектируйте на бумаге справочники, документы и регистры
  3. 3
    Добавьте справочники с нужными реквизитами
  4. 4
    Создайте регистры накопления с измерениями и ресурсами
  5. 5
    Добавьте документы и настройте движения по регистрам через конструктор
  6. 6
    Создайте отчёты по регистрам через конструктор запросов
  7. 7
    Определите подсистемы и роли, включите объекты в командный интерфейс
  8. 8
    Протестируйте на копии базы и только потом переносите в рабочую

Программирование на встроенном языке

Код в 1С пишется в модулях: модуле объекта (логика самого объекта, например проведение документа), модуле формы (поведение интерфейса), общих модулях (переиспользуемые процедуры). Встроенный язык поддерживает синтаксис на русском и английском; в коммерческой разработке принят русский, так как типовые конфигурации написаны на нём.

Типовая задача — обработка проведения документа. В модуле объекта документа процедура ОбработкаПроведения получает набор записей регистра, заполняет его строками табличной части и записывает. Конструктор движений генерирует этот код автоматически, но реальные задачи требуют доработки: контроля отрицательных остатков, расчёта себестоимости, проверки заполненности реквизитов.

Процедура ОбработкаПроведения(Отказ, РежимПроведения)

Движения.ОстаткиНоменклатуры.Записывать = Истина;

Для Каждого СтрокаТовара Из Товары Цикл

Движение = Движения.ОстаткиНоменклатуры.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Расход;

Движение.Период = Дата;

Движение.Номенклатура = СтрокаТовара.Номенклатура;

Движение.Склад = Склад;

Движение.Количество = СтрокаТовара.Количество;

КонецЦикла;

КонецПроцедуры

Для выборки данных используйте запросы — декларативный язык, похожий на SQL. Запросы почти всегда быстрее и читабельнее, чем перебор объектов в цикле. Правило производительности: никогда не выполняйте запрос внутри цикла — соберите данные одним запросом по таблице значений.

bsl
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Остатки.Номенклатура КАК Номенклатура,
| Остатки.КоличествоОстаток КАК Остаток
|ИЗ
| РегистрНакопления.ОстаткиНоменклатуры.Остатки(&Период, Склад = &Склад) КАК Остатки";
Запрос.УстановитьПараметр("Период", ТекущаяДатаСеанса());
Запрос.УстановитьПараметр("Склад", Склад);
Результат = Запрос.Выполнить().Выгрузить();

Интерфейс, права и подсистемы

Подсистемы определяют, как объекты группируются в командном интерфейсе пользователя. Создайте подсистемы по смыслу («Закупки», «Продажи», «Склад») и включите в них соответствующие объекты — платформа сама построит панель разделов. Без подсистем пользователь увидит пустой рабочий стол.

Роли задают права доступа к объектам: чтение, добавление, изменение, проведение. Создайте минимум две роли — полные права для администратора и ограниченные для рядового пользователя. Тонкая настройка (ограничение доступа на уровне записей, RLS) нужна не всегда, но закладывать разделение ролей стоит сразу: добавить её в готовую конфигурацию сложнее.

Отладка и тестирование

Отладка запускается из конфигуратора клавишей F5 — открывается предприятие в режиме отладки, где работают точки останова, просмотр значений переменных и пошаговое выполнение. Типичный приём: поставить точку останова в ОбработкеПроведения и провести документ, наблюдая, какие движения формируются.

Тестируйте не на пустых данных. Заведите реалистичный объём: десятки контрагентов, сотни позиций номенклатуры, проведите документы за несколько месяцев. Многие ошибки (неверные итоги, медленные отчёты, отрицательные остатки) проявляются только на данных, приближенных к реальным.

Контрольные точки

Как проверить результат

Движения документа
Норма

После проведения в регистре появляются записи с верными измерениями и суммами

Тревожный признак

Записей нет, дублируются при перепроведении или суммы не совпадают с табличной частью

Отчёт по регистру
Норма

Остатки на произвольную дату сходятся с данными документов

Тревожный признак

Итоги зависят от того, перепроводились ли документы

Права пользователя
Норма

Пользователь видит только свои разделы и не может провести чужие документы

Тревожный признак

Пустой рабочий стол или доступ ко всем объектам

Скорость работы
Норма

Проведение документа и построение отчёта занимают секунды на тестовом объёме

Тревожный признак

Отчёт строится минутами — вероятны запросы в цикле или отсутствие индексов

Типовые ошибки начинающих разработчиков

Большинство проблем в первых конфигурациях повторяются из проекта в проект. Знание этого списка экономит недели переделок.

Типичные ошибки
01
Хранение итогов в реквизитах документов вместо регистров — отчёты за период построить невозможно, приходится переделывать архитектуру
02
Запросы внутри цикла — проведение документа на 100 строк занимает минуты вместо секунд
03
Разработка сразу в рабочей базе — одна ошибка в реструктуризации может повредить данные пользователей
04
Игнорирование ролей и подсистем до конца проекта — пользователи получают пустой интерфейс или полный доступ
05
Отсутствие контроля остатков при проведении — склад уходит в минус, и обнаруживается это при инвентаризации
06
Изменение структуры регистров после запуска учёта — требуется перепроведение всех документов и сверка итогов

Перенос конфигурации в рабочую базу

Когда конфигурация отлажена, её переносят через механизм загрузки/выгрузки конфигурации (файл .cf) либо через сравнение и объединение, если рабочая база уже содержит доработки. Перед обновлением: сделайте выгрузку .dt рабочей базы, убедитесь, что пользователи вышли, выполните обновление и проверьте реструктуризацию.

После обновления обязательно проверьте критичные сценарии вручную: проведение ключевых документов, основные отчёты, права пользователей. Только после этого открывайте доступ пользователям. Для командной разработки используйте хранилище конфигурации — оно версионирует изменения и позволяет откатиться к предыдущему состоянию.

Итог

Что важно запомнить

Успешная разработка своей конфигурации 1С строится на трёх опорах: проектирование структуры данных (особенно регистров) до написания кода, архитектура «документы делают движения — отчёты читают регистры» и обязательное тестирование на копии базы с резервной копией перед любым обновлением рабочей среды.

Частые вопросы

Можно ли разработать конфигурацию 1С без знания программирования?

Простую учётную систему — да: справочники, документы с автоматически сформированными движениями и отчёты через конструктор создаются без единой строки кода. Но контроль остатков, расчёты, печатные формы и обмены данными потребуют программирования на встроенном языке. Реалистичный путь — начать с конструкторов и постепенно осваивать язык на конкретных задачах.

Чем учебная версия платформы отличается от коммерческой?

Учебная версия бесплатна и позволяет создавать и отлаживать конфигурации, но имеет ограничения: не работает в клиент-серверном варианте, не поддерживает COM-соединения и некоторые механизмы интеграции. Для обучения и прототипирования её достаточно; для реального учёта в организации нужна коммерческая лицензия.

Сколько времени занимает разработка простой конфигурации?

Прототип с несколькими справочниками, парой документов и простыми отчётами реально собрать за несколько дней. Доведение до рабочего состояния — с контролем остатков, правами, печатными формами и тестированием — обычно занимает в несколько раз больше времени, чем создание прототипа. Основные трудозатраты уходят не на объекты, а на логику проведения и отладку.

Что лучше: своя конфигурация или доработка типовой?

Если задача покрывается типовым решением (торговля, бухгалтерия, зарплата) — дорабатывайте типовую: вы получаете готовые механизмы и обновления законодательства. Своя конфигурация оправдана для нестандартных учётных задач, которых нет в типовых: узкоспециальный производственный учёт, специфические расчёты, внутренние системы компании. Разработка с нуля означает, что всё сопровождение ложится на вас.

Как не потерять данные при изменении конфигурации?

Правила три: всегда делайте выгрузку .dt перед обновлением конфигурации рабочей базы, проверяйте обновление на копии базы и избегайте удаления объектов и реквизитов, в которых уже есть данные — при реструктуризации они удаляются безвозвратно. Если реквизит больше не нужен, часто безопаснее просто убрать его с форм, оставив в структуре.

Нужно ли изучать SQL для разработки в 1С?

Нет, платформа сама транслирует запросы встроенного языка в SQL. Но понимание принципов реляционных баз — индексов, соединений таблиц, выборок по условию — заметно помогает писать быстрые запросы и понимать, почему отчёт работает медленно. Знание SQL полезно, но не является обязательным для старта.