Разработка и Конфигурация · 11 мин
Что такое объект базы данных 1С и как с ним работать
Что такое объект базы данных 1С: виды объектов метаданных и данных, отличие объекта конфигурации от записи в базе, примеры, ошибки и проверка результата.
Термин «объект базы данных» в 1С используется в двух близких, но разных значениях. В первом смысле это структурная единица конфигурации — справочник, документ, регистр, план счетов, которые разработчик создаёт в конфигураторе и которые определяют, какие таблицы платформа построит в базе данных. Во втором смысле это конкретная запись в базе: конкретный контрагент «ООО Ромашка», конкретная накладная № 154 от определённой даты, конкретная строка регистра накопления.
Понимание разницы между описанием (метаданными) и данными критично для любой работы с 1С: от простого поиска информации до разработки запросов и обменов. Путаница здесь приводит к типичным ошибкам — например, когда пользователь ищет «документ» в конфигураторе, хотя нужная ему накладная существует только в пользовательском режиме, или когда разработчик пытается изменить данные через изменение конфигурации.
Ниже разобрано, какие виды объектов существуют в базе 1С, чем объект конфигурации отличается от объекта данных, как устроена связь между ними и как безопасно проверить структуру конкретной базы без риска что-то сломать.
Два значения термина: метаданные и данные
Объект конфигурации (объект метаданных) — это шаблон, описание структуры. Когда разработчик добавляет в конфигурацию справочник «Номенклатура», он задаёт его реквизиты, табличные части, формы, длину кода и наименования. На этом этапе в базе ещё нет ни одного товара — есть только правило, по которому товары будут храниться.
Объект данных — это экземпляр, созданный по шаблону. Когда пользователь в режиме «1С:Предприятие» заводит карточку товара «Кирпич облицовочный», платформа создаёт запись в таблице справочника, заполняет реквизиты значениями и присваивает записи уникальный внутренний идентификатор (GUID). Именно эта запись и есть объект базы данных в узком смысле.
Ключевой признак объекта данных — наличие ссылки. Ссылка — это уникальный идентификатор, по которому на объект можно сослаться из других объектов: документ «Реализация товаров» хранит ссылку на контрагента и на каждую позицию номенклатуры, а не копии их названий. Благодаря ссылочной модели переименование контрагента не требует исправления всех документов — они продолжают указывать на ту же запись.
Основные виды объектов в базе 1С
Платформа 1С:Предприятие предоставляет фиксированный набор типов объектов. Произвольный тип создать нельзя — разработчик выбирает из существующих классов и настраивает их под задачу. Каждый класс решает свою задачу и по-разному хранит данные.
| Вид объекта | Что хранит | Пример объекта данных |
|---|---|---|
| Справочник | Условно постоянные нормативные данные | Контрагент, товар, склад |
| Документ | События хозяйственной жизни с датой и номером | Поступление товаров, приказ о приёме |
| Регистр сведений | Значения в разрезе измерений, возможно с периодичностью | Курс валюты на дату, цена номенклатуры |
| Регистр накопления | Остатки и обороты ресурсов | Остаток товара на складе |
| Регистр бухгалтерии | Проводки по плану счетов | Дт 41 — Кт 60 на сумму поступления |
| План счетов, план видов характеристик, план обмена | Специализированные списки с особыми механизмами | Счёт 41 «Товары», дополнительное свойство |
| Бизнес-процесс и задача | Маршруты согласования и поручения | Задача «Согласовать счёт» |
Отдельно стоят перечисления: их значения задаются только в конфигураторе и не являются объектами данных — пользователь не может добавить новое значение перечисления в режиме предприятия. Константы тоже хранят данные, но представляют собой одиночные значения, а не коллекции объектов.
Чем объект конфигурации отличается от объекта данных
Сравнение удобно провести по нескольким признакам. Объект конфигурации создаётся в конфигураторе, требует обновления конфигурации базы данных и меняет структуру таблиц СУБД. Объект данных создаётся в режиме «1С:Предприятие» (или программно), не меняет структуру базы и ограничен только правами доступа пользователя.
Удаление работает по-разному. Удаление объекта конфигурации (например, лишнего справочника) при обновлении приведёт к потере всех данных этого объекта — платформа предупредит об этом при реструктуризации. Удаление объекта данных подчинено контролю ссылочной целостности: элемент справочника, на который есть ссылки в документах, нельзя удалить физически, только пометить на удаление.
Сравнение вариантов
Описание структуры: создаётся в конфигураторе, требует обновления базы, изменение затрагивает всех пользователей. Подходит, когда нужно новое хранилище данных.
Конкретная запись: создаётся пользователем или кодом, имеет ссылку и GUID, удаляется с контролем ссылочной целостности. Подходит для повседневного учёта.
Как платформа хранит объекты: ссылки, идентификаторы, таблицы
Каждый объект данных получает уникальный идентификатор — GUID из 32 шестнадцатеричных символов. Идентификатор присваивается один раз при создании и не меняется ни при переименовании, ни при переносе между группами. Именно GUID используется при обменах между базами: по нему платформа понимает, что контрагент в одной базе и контрагент в другой — один и тот же объект.
На уровне СУБД каждому объекту конфигурации соответствует одна или несколько таблиц. Справочник — это таблица с полями ссылки, кода, наименования и реквизитов; табличные части выносятся в отдельные таблицы. Документ хранит шапку в основной таблице, а движения — в таблицах регистров, связанных с ним по полю регистратора. Прямой доступ к этим таблицам средствами SQL в обход платформы не рекомендуется: структура таблиц не документирована и может меняться между версиями.
Как посмотреть объекты конкретной базы
Структуру объектов конфигурации видно в конфигураторе: откройте дерево конфигурации и разверните ветки «Справочники», «Документы», «Регистры». Для каждого объекта доступны его реквизиты, табличные части, движения (для документов) и права. Это безопасный просмотр — до команды «Обновить конфигурацию базы данных» никакие изменения не применяются.
Объекты данных просматриваются в режиме «1С:Предприятие» через стандартные списки. Для технического анализа удобна функция «Все функции» (включается в параметрах): через неё доступны стандартные обработки, списки регистров и поиск ссылок на объект. Поиск ссылок показывает, какие документы и записи регистров используют конкретный элемент, — это обязательная проверка перед удалением.
- 1Откройте нужный список (справочник или журнал документов) в режиме 1С:Предприятие
- 2Найдите объект по коду, наименованию или отбору
- 3Через меню «Ещё» выполните поиск ссылок на объект, чтобы увидеть зависимые записи
- 4При необходимости технического анализа включите «Все функции» и откройте связанные регистры
- 5Проверьте результат: объект найден, список ссылок построен без ошибок
Работа с объектами в коде: краткий ориентир
Во встроенном языке различают ссылку и объект. Ссылка — лёгкий идентификатор, получение которого не читает всю запись из базы. Объект (например, результат метода ПолучитьОбъект()) — полная копия данных в памяти, которую можно изменить и записать. Чтение реквизитов через точку от ссылки выполняет обращение к базе, поэтому в циклах вместо обращений через точку используют запросы.
КонтрагентСсылка = Справочники.Контрагенты.НайтиПоКоду("000000123");
Если Не КонтрагентСсылка.Пустая() Тогда
КонтрагентОбъект = КонтрагентСсылка.ПолучитьОбъект();
КонтрагентОбъект.Комментарий = "Проверен";
КонтрагентОбъект.Записать();
КонецЕсли;
Запись объекта выполняется в транзакции и подчиняется правам доступа и подпискам на события. Программное создание и изменение объектов в боевой базе делайте только после теста на копии: ошибка в обходе бизнес-логики (например, запись документа без проведения по регистрам) способна рассогласовать учёт.
Типичные ошибки и ограничения
Самая частая ошибка начинающих — попытка хранить изменяющиеся по времени данные в реквизитах справочника. Цена или остаток в карточке товара быстро устаревает и конфликтует при одновременной работе пользователей; для таких данных предназначены регистры сведений и накопления. Второй типовой просчёт — создание документа там, где достаточно справочника, и наоборот: документ без проведения по регистрам часто оказывается лишней сущностью.
Ещё одна группа ошибок связана со ссылками: сравнение объектов по наименованию вместо ссылки, хранение GUID в виде строки без связи с базой, использование «битых» ссылок после некорректного обмена. Признак битой ссылки — значение вида «Объект не найден» в реквизитах; такие записи находят штатной проверкой ссылочной целостности и обработками поиска битых ссылок.
Как проверить результат
Запись открывается, имеет код/номер и сохраняется без ошибок
Ошибка записи, объект не появляется в списке
Поиск ссылок показывает корректные связи, нет записей «Объект не найден»
В реквизитах отображается «Объект не найден»
По кнопке «Движения» видны записи в нужных регистрах
Документ проведён, но движений нет или они не в тех регистрах
Часто задаваемые вопросы
Чем объект базы данных отличается от таблицы SQL?
Таблица SQL — физическое хранилище строк, а объект 1С — логическая сущность уровня платформы. Один объект (например, документ с табличными частями) может занимать несколько таблиц, и работать с ним полагается средствами платформы, а не прямыми запросами к СУБД.
Почему нельзя удалить элемент справочника сразу?
Платформа защищает ссылочную целостность: если на элемент ссылаются документы или записи регистров, его можно только пометить на удаление. Физическое удаление выполняется отдельной операцией «Удаление помеченных объектов» с проверкой всех ссылок.
Что такое GUID объекта и где его посмотреть?
GUID — уникальный идентификатор объекта, присваиваемый при создании и неизменный в течение жизни записи. Программно его получают методом УникальныйИдентификатор() у ссылки; он используется в обменах и внешних интеграциях для однозначного сопоставления объектов.
Документ — это объект базы данных или объект конфигурации?
И то, и другое в разных контекстах. В конфигураторе «Документ» — объект метаданных, описывающий структуру. Конкретная накладная с номером и датой в режиме предприятия — объект данных, созданный по этому описанию.
Можно ли создать собственный тип объекта в 1С?
Нет. Набор классов (справочники, документы, регистры и так далее) фиксирован платформой. Разработчик создаёт новые объекты только этих типов, настраивая реквизиты, табличные части и поведение.
Что делать, если в реквизите отображается «Объект не найден»?
Это битая ссылка: запись, на которую указывал реквизит, удалена или утеряна при обмене. Найдите такие записи штатной проверкой или обработкой поиска битых ссылок, затем либо восстановите объект по идентификатору из резервной копии или базы-источника, либо очистите ссылку осознанно.
Что важно запомнить
Объект базы данных 1С — это конкретная запись (элемент справочника, документ, запись регистра), созданная по описанию объекта конфигурации и идентифицируемая ссылкой с GUID. Различайте метаданные и данные, работайте с объектами средствами платформы, а перед удалением и изменением структуры проверяйте ссылки и делайте копию базы.