Перейти к содержанию
Educora
Начальный16 мин3 / 14

Объекты метаданных: константы, справочники, документы, перечисления

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

Проверь себя
В этом уроке ты узнаешь
  • Выбирать подходящий объект метаданных для задачи
  • Знать стандартные реквизиты и табличные части справочников и документов
  • Создавать элемент справочника и документ кодом, отличать ссылку от объекта

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

Константы и справочники

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

  • Иерархия: справочник можно разбить на группы (Иерархия групп и элементов) — тогда появляются реквизиты Родитель и ЭтоГруппа. Например, «Напитки → Чай».
  • Владелец: справочник может быть подчинён другому, например договоры принадлежат контрагенту.
  • Реквизиты и табличные части: собственные поля (Цена, Единица) и списки строк (например, штрихкоды товара).
  • Предопределённые элементы создаются в конфигураторе и доступны в коде по имени: Справочники.Склады.Основной.
Определение
Ссылка и объект

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

1C
// Новый элемент справочника
НовыйТовар = Справочники.Товары.СоздатьЭлемент();
НовыйТовар.Наименование = "Çay 100 q";
НовыйТовар.Цена = 3.5;
НовыйТовар.Записать();

// Поиск и изменение существующего элемента
ТоварСсылка = Справочники.Товары.НайтиПоНаименованию("Çay 100 q");
Если Не ТоварСсылка.Пустая() Тогда
    ТоварОбъект = ТоварСсылка.ПолучитьОбъект();
    ТоварОбъект.Цена = 4;
    ТоварОбъект.Записать();
КонецЕсли;

// Константа
Валюта = Константы.ОсновнаяВалюта.Получить();
Менеджер (Справочники.Товары) → объект → Записать(). В английском синтаксисе: Catalogs, CreateItem(), FindByDescription(), GetObject(), Write().

Документы

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

  1. 1
    Добавь документ

    Документы → Добавить, имя: ПриходТовара. Синоним автоматически станет «Приход товара». Отметь подсистему Склад.

  2. 2
    Создай табличную часть

    На закладке Данные: Табличные части → Товары, реквизиты: Товар (тип СправочникСсылка.Товары), Количество, Цена, Сумма (Число).

  3. 3
    Проверь

    Нажми F5, создай новый документ в разделе Склад и добавь несколько строк в табличную часть. Форму платформа построила автоматически — ты её не рисовал.

1C
Приход = Документы.ПриходТовара.СоздатьДокумент();
Приход.Дата = ТекущаяДатаСеанса();

НоваяСтрока = Приход.Товары.Добавить();
НоваяСтрока.Товар = Справочники.Товары.НайтиПоНаименованию("Çay 100 q");
НоваяСтрока.Количество = 10;
НоваяСтрока.Цена = 4;
НоваяСтрока.Сумма = НоваяСтрока.Количество * НоваяСтрока.Цена;

Приход.Записать();  // номер присвоится автоматически
Создание документа кодом. Такой код выполняется на сервере (например, в общем модуле с флагом Сервер).

Перечисления и другие объекты

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

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

Главное

  • Ты описываешь объект метаданных — платформа сама создаёт таблицу, формы и команды.
  • Справочники — для списков (Код, Наименование, иерархия), документы — для операций во времени (Номер, Дата, проведение).
  • Ссылка — только для чтения; для изменения нужны ПолучитьОбъект() и Записать().
  • Значения перечисления задаёт только разработчик.
  • Имя пишется в CamelCase без пробелов, пользователь видит синоним.

Проверь себя

Вопросов: 10. Каждый правильный ответ приносит XP.

1 / 10
Какой объект лучше всего подходит для хранения основной валюты организации?