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

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

Что система 1С:Предприятие создаёт на основе объектов конфигурации

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

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

Ключевая идея платформы — декларативность. Разработчик описывает «что должно быть»: у документа есть реквизит «Контрагент», документ проводится по регистру «Продажи». Платформа сама решает «как это реализовать»: какие таблицы создать в СУБД, какие индексы построить, какую форму показать пользователю по умолчанию. Именно поэтому одна и та же конфигурация работает на разных СУБД без переписывания кода.

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

Структуры базы данных: таблицы, поля и индексы

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

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

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

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

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

Эти типы не хранятся в конфигурации как код — платформа генерирует их при обновлении конфигурации базы данных. Поэтому новый реквизит становится доступен в коде сразу после обновления, без каких-либо дополнительных объявлений. Обращение вида Справочники.Номенклатура.НайтиПоКоду("0001") — это вызов автоматически созданного менеджера объекта.

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

Формы, макеты и элементы интерфейса

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

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

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

Как посмотреть, что создала система
  1. 1
    Откройте конфигуратор и найдите объект в дереве конфигурации
  2. 2
    В свойствах объекта посмотрите состав реквизитов, измерений, табличных частей — из них платформа построит поля таблиц
  3. 3
    Откройте раздел «Основные» свойств и проверьте, какие формы заданы явно; пустые поля означают, что используются автоматические формы
  4. 4
    Запустите режим предприятия и убедитесь, что объект появился в интерфейсе согласно подсистемам
  5. 5
    Для проверки физической структуры используйте отчёт по структуре хранения базы данных (Администрирование — Обслуживание)

Права доступа, роли и журналы

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

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

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

Механизмы движений и проведения

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

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

Типичные ошибки
01
Создание вручную формы, когда достаточно автоматической — лишний объект для сопровождения при каждом изменении реквизитов
02
Попытка изменить данные напрямую в таблицах СУБД — нарушение целостности и рассинхронизация итогов
03
Ожидание, что платформа сама создаст печатную форму или отчёт — без макета, команды и схемы компоновки этого не произойдёт
04
Изменение объекта в конфигураторе без обновления конфигурации базы данных — изменения не применяются, а при реструктуризации возможна потеря данных при удалении реквизитов

Чего система не создаёт: границы автоматики

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

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

Маршрут решения

Когда достаточно автоматики, а когда нужна доработка

Нужен простой ввод и просмотр данных без особой логикиИспользуйте автоматические формы и стандартные команды — ничего создавать не требуется
Нужна печать документаСоздайте макет и команду печати — автоматически печатная форма не появится
Нужен отчёт по данным объектаСоздайте отчёт со схемой компоновки данных — платформа даст механизм, но не сам отчёт
Нужен контроль корректности данных при записиНапишите обработчик в модуле объекта — автоматически проверяются только типы и обязательность заполнения

Как проверить корректность созданных структур

После обновления конфигурации базы данных проверьте, что система создала ожидаемые структуры. В конфигураторе доступен просмотр структуры хранения данных: там видно соответствие объектов конфигурации и таблиц СУБД. Несоответствие состава таблиц ожиданиям — признак того, что обновление не выполнено или завершилось с ошибкой.

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

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

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

Обновление конфигурации БД
Норма

Окно реструктуризации закрыто без ошибок, изменения приняты

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

Сообщения об ошибках, отказ в обновлении, конфигурация осталась в состоянии «изменена»

Формы объекта
Норма

Список и элемент открываются, все реквизиты видны

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

Ошибка открытия формы, отсутствуют поля новых реквизитов

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

После проведения записи появились в регистрах

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

Регистры пустые или движения не соответствуют обработке проведения

Права доступа
Норма

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

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

Объект невидим в интерфейсе или недоступен несмотря на включённую роль

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

Почему новый реквизит не виден в режиме предприятия?

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

Можно ли изменить таблицы базы данных напрямую через SQL?

Технически возможно, но категорически не рекомендуется: платформа хранит служебные данные, итоги и ссылки в собственном формате, и прямое вмешательство приводит к рассинхронизации и ошибкам. Все операции выполняйте через встроенный язык, консоль запросов или обработки.

Создаст ли система печатную форму документа автоматически?

Нет. Платформа предоставляет механизм макетов и построитель табличных документов, но сам макет, команду печати и код заполнения разработчик создаёт самостоятельно. Без этого кнопки печати у документа не будет.

Что произойдёт с данными при удалении объекта конфигурации?

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

Зачем нужны виртуальные таблицы, если есть реальные?

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

Итог

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

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