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

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

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

Как 1С превращает объекты конфигурации в таблицы базы данных, формы, отчёты и прикладную логику. Структура метаданных, механизм генерации и практика разработчика.

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

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

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

Таблицы базы данных как первый результат генерации

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

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

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

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

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

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

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

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

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

Автоматически создаются и команды интерфейса. Флажок «Вводить на основании» у документа порождает команду создания на основании в форме исходного документа. Включение объекта в подсистему добавляет ссылку на него в панель навигации соответствующего раздела. Для регистров сведений, подчинённых регистратору, команда перехода к записям появляется в форме документа-регистратора.

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

Что генерируется для конкретных типов объектов

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

Регистры и их виртуальные таблицы

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

Отчёты и обработки

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

Что создают разные объекты

Справочник

Таблицу данных, формы списка и элемента, менеджер, выборку, предопределённые элементы. Не создаёт движений.

Документ

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

Регистр накопления

Таблицу движений, итоговые таблицы, виртуальные таблицы остатков и оборотов, набор записей.

Отчёт на СКД

Форму отчёта с настройками, исполнение запроса и вывод результата. Таблиц данных не создаёт.

Как увидеть результат генерации на практике

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

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

Как проверить, что создала система
  1. 1
    Добавьте в конфигураторе тестовый справочник с двумя реквизитами и обновите конфигурацию базы данных (F7).
  2. 2
    Откройте синтакс-помощник и найдите раздел с именем справочника — увидите все созданные типы: менеджер, объект, ссылку, выборку.
  3. 3
    Запустите режим предприятия и откройте список справочника — система покажет автоматически сгенерированную форму.
  4. 4
    Откройте структуру хранения базы данных и убедитесь, что для справочника создана физическая таблица с полями реквизитов.

Границы автоматической генерации и типичные ошибки

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

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

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

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

Обновление конфигурации БД после добавления объекта
Норма

Обновление проходит без предупреждений о потере данных

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

Система просит подтвердить удаление таблиц — значит, объект удалялся или переименовывался с потерей связи

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

В форме документа доступны записи по выбранным регистрам

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

Список движений пуст — обработчик проведения не заполняет наборы записей

Форма списка нового объекта
Норма

Открывается динамическая форма со всеми реквизитами

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

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

FAQ

Создаёт ли 1С таблицы в SQL-базе при добавлении справочника в файловом режиме?

Да, но в файловом режиме платформа использует собственный формат базы данных (файл 1Cv8.1CD), а не таблицы SQL Server. Логическая структура та же: для справочника создаётся хранилище с полями реквизитов. Увидеть её можно через структуру хранения базы данных.

Почему новый объект не виден в режиме предприятия, хотя конфигурация обновлена?

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

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

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

Можно ли запретить платформе создавать формы автоматически?

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

Создаёт ли система что-то для модулей — общих, модулей объекта, модулей формы?

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

Почему после добавления регистра в движения документа старые проведённые документы не показывают записи?

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

Итог

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

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