Разработка и Конфигурация · 13 мин
Где определяется структура создаваемого бизнес-приложения в 1С
Разбираем, где и как определяется структура создаваемого бизнес-приложения в 1С: конфигуратор, дерево метаданных, объекты конфигурации, модули и подсистемы.
Структура любого бизнес-приложения на платформе 1С:Предприятие определяется в конфигураторе — специальном режиме запуска, предназначенном для разработки и изменения прикладных решений. Именно там разработчик описывает, из каких объектов состоит система: справочников, документов, регистров, отчётов, обработок и других сущностей. Пользовательский режим «1С:Предприятие» лишь отображает и исполняет то, что задано в конфигураторе.
Центральным элементом, где визуально представлена структура приложения, является дерево конфигурации (дерево объектов метаданных). Оно открывается через меню «Конфигурация → Открыть конфигурацию» и показывает иерархию всех прикладных объектов, сгруппированных по типам. Каждый узел дерева — это отдельный объект метаданных со своими свойствами, формами, макетами и модулями.
Важно понимать: платформа 1С не требует описывать структуру базы данных напрямую. Разработчик работает на уровне прикладных объектов, а платформа сама создаёт таблицы СУБД, индексы и связи. Поэтому ответ на вопрос «где определяется структура приложения» однозначен: в конфигурации, которая редактируется в конфигураторе и хранится в файле информационной базы или выгружается в файлы для систем контроля версий.
Конфигуратор как среда определения структуры
Конфигуратор запускается из того же ярлыка, что и прикладной режим, но с выбором пункта «Конфигуратор» в стартовом окне или через файл 1cv8.exe DESIGNER. Работа в нём возможна только при монопольном доступе к базе для большинства структурных изменений, поэтому перед началом работ стоит убедиться, что пользователи вышли из системы.
После открытия конфигурации (команда «Конфигурация → Открыть конфигурацию») слева появляется дерево объектов. Именно его содержимое и есть структура приложения: удалите объект — исчезнет соответствующий раздел учёта, добавьте новый — появится новая функциональность. Порядок объектов в дереве можно менять, но на логику работы это не влияет — влияет состав и настройки самих объектов.
Конфигурация хранится внутри информационной базы. Дополнительно её можно выгрузить в файл 1Cv8.cf (полная конфигурация), в файлы выгрузки XML либо в формат проекта EDT. Это важно для резервного копирования: перед любыми структурными изменениями всегда делайте выгрузку базы или конфигурации.
Дерево объектов конфигурации: что в нём находится
Дерево конфигурации группирует объекты по видам. Каждая ветка верхнего уровня — это класс прикладных объектов, решающий свою задачу. Раскрыв ветку, вы увидите конкретные объекты, а у каждого объекта — вложенные элементы: реквизиты, табличные части, формы, макеты, модули, предопределённые данные.
Основные группы объектов, формирующие структуру типового бизнес-приложения:
- Общие — подсистемы, общие модули, параметры сеанса, роли, общие формы, планы обмена, критерии отбора, хранилища настроек;
- Константы — хранят единичные значения настроек (например, наименование организации);
- Справочники — списки условно-постоянной информации: контрагенты, номенклатура, сотрудники;
- Документы — факты хозяйственной деятельности: заказы, накладные, платёжки;
- Регистры — накопление, сведений, расчёта и бухгалтерии: именно здесь хранятся обороты и остатки;
- Отчёты и обработки — инструменты анализа и пакетных операций;
- Планы счетов, планы видов характеристик, планы видов расчёта — основа учётных механизмов;
- Бизнес-процессы и задачи — маршруты согласования и списки поручений.
Состав этих объектов и есть «скелет» приложения. Два решения с одинаковым набором веток, но разным наполнением — это фактически два разных продукта.
Свойства объекта: где задаётся поведение элемента структуры
Щелчок правой кнопкой по объекту в дереве и выбор пункта «Свойства» открывает палитру свойств — второй уровень определения структуры. Здесь задаются имя, синоним, представление в интерфейсе, длина кода и наименования, иерархичность, вид иерархии, нумерация, контроль уникальности и десятки других параметров.
Для сложных объектов удобнее использовать редактор объекта (двойной щелчок по объекту) — он открывает закладки «Данные», «Нумерация», «Иерархия», «Движения», «Права», «Поле ввода» и другие. На закладке «Движения», например, определяется, по каким регистрам документ формирует проводки — это ключевая часть структуры учёта.
Изменение свойств после наполнения базы данными имеет ограничения: уменьшить длину строкового реквизита без потери данных можно только если фактические значения короче нового лимита; изменить тип реквизита удастся лишь при совместимости типов. Платформа при реструктуризации предупреждает о потенциальной потере данных — не игнорируйте эти сообщения.
Модули и программный код: логика поверх структуры
Структура приложения — это не только «что хранится», но и «как обрабатывается». Программная логика располагается в модулях, которые тоже являются частью конфигурации: модуль объекта, модуль формы, модуль менеджера, общие модули, модуль приложения и модуль сеанса.
Код пишется на встроенном языке 1С. Например, обработка проведения документа описывается в его модуле объекта и определяет, какие записи попадут в регистры:
Процедура ОбработкаПроведения(Отказ, Режим)
Для Каждого СтрокаТовары Из Товары Цикл
Движение = Движения.ОстаткиНоменклатуры.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Номенклатура = СтрокаТовары.Номенклатура;
Движение.Количество = СтрокаТовары.Количество;
КонецЦикла;
КонецПроцедурыТаким образом, полная структура приложения = метаданные (дерево объектов и их свойства) + код модулей + формы и макеты. Вse эти элементы редактируются в конфигураторе и вместе образуют конфигурацию.
Подсистемы и командный интерфейс: структура для пользователя
То, как структура приложения видна конечному пользователю, определяется подсистемами. Объект «Подсистема» в ветке «Общие» задаёт разделы интерфейса (например, «Продажи», «Склад», «Зарплата»), а в свойствах каждого объекта на закладке «Подсистемы» отмечается, в каких разделах он отображается.
Порядок и видимость команд внутри разделов настраивается через «Командный интерфейс» подсистемы: там можно менять последовательность команд, группировать их и скрывать лишние. Картинка подсистемы задаёт значок раздела в панели разделов.
Это важный момент: объект может существовать в конфигурации, но не быть включённым ни в одну подсистему — тогда пользователь не увидит его в стандартном интерфейсе. Проверяйте принадлежность к подсистемам при создании новых объектов.
- 1Откройте базу в конфигураторе и выполните «Конфигурация → Открыть конфигурацию».
- 2В дереве конфигурации щёлкните правой кнопкой по нужной ветке (например, «Справочники») и выберите «Добавить».
- 3Задайте имя и синоним объекта, настройте реквизиты, формы и движения в редакторе объекта.
- 4Отметьте объект в нужных подсистемах и настройте права доступа в ролях.
- 5Выполните «Конфигурация → Обновить конфигурацию базы данных» и проверьте список изменений реструктуризации.
- 6Запустите режим «1С:Предприятие» и убедитесь, что объект появился в интерфейсе и работает корректно.
Обновление конфигурации базы данных и реструктуризация
Изменения, внесённые в конфигурацию, не применяются к рабочей базе автоматически. Чтобы структура данных пришла в соответствие с новой структурой конфигурации, выполняется команда «Конфигурация → Обновить конфигурацию базы данных» (клавиша F7). Платформа показывает список изменений: какие таблицы будут созданы, изменены или удалены.
На этапе реструктуризации платформа преобразует физические таблицы под новые метаданные. В больших базах этот процесс может занимать значительное время и требует монопольного доступа. Прерывание реструктуризации (отключение питания, разрыв соединения) способно повредить базу — поэтому операцию выполняют вне рабочих часов и после резервного копирования.
Динамическое обновление доступно только для ограниченного круга правок (например, изменения кода модулей без изменения структуры данных). Любое добавление или изменение реквизитов, регистров, типов требует полного обновления с монопольным режимом.
Альтернативные способы определения структуры: EDT и расширения
Помимо классического конфигуратора, структуру приложения можно разрабатывать в 1C:Enterprise Development Tools (EDT) — среде на базе Eclipse, где конфигурация хранится как проект из файлов. Это удобно для командной разработки и интеграции с Git, но суть не меняется: структура по-прежнему описывается объектами метаданных.
Если нужно изменить типовую конфигурацию без снятия её с поддержки, используются расширения конфигурации. Расширение добавляет собственные объекты и переопределяет формы и модули поверх основной конфигурации, не меняя её структуру напрямую. Это безопасный путь доработки: при обновлении типового релиза расширение сохраняется.
Выбор подхода зависит от задачи: новое собственное решение разрабатывают в конфигураторе или EDT, точечные доработки типовой системы — по возможности через расширения, а прямое изменение типовой конфигурации оставляют крайним случаем.
Способы изменения структуры приложения
Подходит для собственных разработок. Полный контроль, но для типовых решений — сложности с обновлением.
Оптимально для доработки типовых решений. Обновления релизов проходят проще, но есть ограничения: не все объекты и механизмы можно изменить.
Подходят для добавления функций без изменения структуры данных. Не позволяют создавать новые объекты метаданных.
Среда для командной разработки с контролем версий. Требует освоения, но даёт те же метаданные в файловом формате.
Как проверить, что структура определена корректно
После внесения изменений выполните контроль в несколько шагов. Сначала — «Конфигурация → Проверка конфигурации» с включёнными режимами проверки: логическая целостность, поиск некорректных ссылок, проверка прав. Ошибки в списке нужно устранить до обновления базы.
Затем запустите прикладной режим и пройдите основной пользовательский сценарий: создайте объект, заполните, проведите документ, сформируйте отчёт. Проверьте права под учётной записью с ограниченной ролью — частая ситуация, когда под администратором всё работает, а у пользователя нет доступа к новому объекту.
Как проверить результат
Завершилось без ошибок, список реструктуризации соответствовал ожиданиям
Сообщения о потере данных, обрыв процесса, ошибки блокировок
Объект виден в нужной подсистеме, открываются формы списка и элемента
Объект отсутствует в разделах или недоступен по правам
Нет ошибок логической проверки и проверки прав
Ссылки на несуществующие объекты, ошибки модулей
Записи создаются, движения по регистрам формируются корректно
Ошибки при проведении, пустые или дублирующиеся движения
Что важно запомнить
Структура бизнес-приложения в 1С определяется в конфигураторе через дерево объектов метаданных, их свойства, модули и подсистемы. Изменения применяются командой обновления конфигурации базы данных и требуют резервной копии и монопольного доступа. Для доработки типовых решений предпочтительны расширения конфигурации.
Частые вопросы
Можно ли изменить структуру приложения из режима «1С:Предприятие»?
Нет. Пользовательский режим позволяет только вводить данные и настраивать доступные параметры (например, состав команд интерфейса в пределах прав). Создание и изменение объектов метаданных возможно исключительно в конфигураторе или через EDT и расширения.
Чем конфигурация отличается от конфигурации базы данных?
Конфигурация, которую редактирует разработчик, называется основной. После команды «Обновить конфигурацию базы данных» её структура копируется в конфигурацию базы данных, с которой реально работают пользователи. Пока обновление не выполнено, эти две конфигурации могут различаться.
Где физически хранится структура приложения?
В файловом варианте — внутри файла информационной базы 1Cv8.1CD, в клиент-серверном — в базе данных на СУБД. Отдельно конфигурацию можно выгрузить в файл 1Cv8.cf, XML-файлы или проект EDT для хранения и переноса.
Что произойдёт с данными при удалении объекта из конфигурации?
При обновлении конфигурации базы данных платформа удалит соответствующие таблицы вместе со всеми данными. Это действие необратимо без резервной копии, поэтому платформа заранее показывает удаляемые объекты в окне реструктуризации.
Как добавить свой реквизит в типовую конфигурацию, не нарушая поддержку?
Используйте расширение конфигурации: создайте расширение, заимствуйте нужный объект и добавьте реквизит в нём. Либо примените механизм дополнительных реквизитов и сведений, доступный в пользовательском режиме большинства типовых решений, — он вообще не требует конфигуратора.
Нужен ли монопольный доступ для любых изменений в конфигураторе?
Редактировать объекты можно и при работающих пользователях, но обновление конфигурации базы данных с изменением структуры данных требует монопольного доступа. Изменения, затрагивающие только код модулей, иногда применяются динамически, однако пользователям потребуется перезапустить сеанс.