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

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

Как разработать конфигурацию в 1С: практическое руководство

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

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

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

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

Подготовка: что определить до открытия конфигуратора

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

Определите, какие данные являются нормативно-справочной информацией (справочники), какие — событиями (документы), а какие — накопленными итогами (регистры накопления и сведений). Например, «Товар» — справочник, «Поступление товаров» — документ, «Остатки на складах» — регистр накопления с видом «Остатки». Такая классификация — фундамент всей конфигурации.

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

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

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

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

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

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

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

Для справочника определите длину кода и наименования, иерархичность, дополнительные реквизиты (например, «ЕдиницаИзмерения» у товара) и табличные части. Для документа — реквизиты шапки, табличные части (например, «Товары» с колонками «Номенклатура», «Количество», «Цена», «Сумма») и, главное, движения: отметьте регистры, по которым документ проводится.

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

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

Написание кода: проведение и обработчики событий

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

Код в модуле документа для проведения по регистру остатков выглядит примерно так:

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

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

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

Движение = Движения.ОстаткиТоваров.Добавить();

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

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

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

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

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

КонецЦикла;

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

Для расчёта сумм, проверок заполнения и блокировки проведения при ошибках используйте обработчики «ПередЗаписью» и «ОбработкаПроверкиЗаполнения». Если проверка не пройдена, устанавливайте параметр Отказ = Истина и выводите сообщение пользователю — это предотвращает появление некорректных данных в базе.

Не рассчитывайте итоги запросами к документам — получайте их из регистров через виртуальные таблицы (Остатки, Обороты). Это быстрее и является штатным механизмом платформы. Запросы к табличным частям документов ради остатков — признак ошибки проектирования.
ПЗ
Практическое замечание

Отчёты и интерфейс пользователя

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

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

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

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

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

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

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

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

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

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

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

Движений нет, дублируются или уходят в минус без контроля

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

Остатки в отчёте совпадают с ручным расчётом по документам

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

Суммы расходятся, появляются лишние строки

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

Под ролью пользователя доступны только нужные объекты, запись работает

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

Ошибки доступа или видны лишние разделы

Обновление базы
Норма

Реструктуризация проходит без ошибок на копии

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

Ошибки обновления, потеря данных в изменённых реквизитах

Типичные ошибки и ограничения самостоятельной разработки

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

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

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

FAQ: частые вопросы о разработке конфигурации

С чего начать, если нет опыта разработки в 1С?

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

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

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

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

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

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

Нет, платформа сама транслирует запросы на встроенном языке запросов 1С в SQL конкретной СУБД. Достаточно освоить язык запросов 1С: выборку из таблиц, соединения, виртуальные таблицы регистров. Понимание общих принципов работы СУБД (индексы, блокировки) полезно для оптимизации, но не обязательно на старте.

Как перенести разработку из тестовой базы в рабочую?

Через механизм «Конфигурация → Загрузить конфигурацию из файла» (предварительно сохранив cf-файл из тестовой базы) либо через сравнение и объединение конфигураций, если рабочая база тоже изменялась. Перед обновлением обязательно сделайте резервную копию рабочей базы и выполните обновление сначала на её копии.

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

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

Итог

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

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