ОбъектМетаданных: РегистрНакопления.ПолноеИмя

Методы · FullName

Получает полное имя объекта метаданного. Имя отвечает требованиям, предъявляемым к именам (должно начинаться с буквы, содержать только буквы, цифры или символ "_", может содержать одну точку (не начальный и не конечный символ)).

Синтаксис

ПолноеИмя()

Примеры платформы

Для каждого Объект Из Метаданные.Справочники Цикл
    Сообщить(Объект.ПолноеИмя());
КонецЦикла;
Полное описание, параметры и ограничения

ОбъектМетаданных: РегистрНакопления.ПолноеИмя (MetadataObject: AccumulationRegister.FullName)

ОбъектМетаданных: РегистрНакопления (MetadataObject: AccumulationRegister)

ПолноеИмя (FullName)

Доступен, начиная с версии 8.0.

Синтаксис:
ПолноеИмя()
Возвращаемое значение:
Тип: Строка.

Описание:

Получает полное имя объекта метаданного. Имя отвечает требованиям, предъявляемым к именам (должно начинаться с буквы, содержать только буквы, цифры или символ "_", может содержать одну точку (не начальный и не конечный символ)).

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

Пример:

// В конфигурации определены справочники "Банки", "Валюты" и "Товары"

// Результатом работы примера:

Для каждого Объект Из Метаданные.Справочники Цикл
Сообщить(Объект.ПолноеИмя());
КонецЦикла;
// будут сообщения:

// Справочник.Банки

// Справочник.Валюты

// Справочник.Товары

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Проверить подпись списка регистра, не путая её с именами товаров

Регистр остатков хранит движения, а настройки представления относятся к интерфейсу его списка. Читаем подготовленные подписи и родителя схемы.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Создайте НОВУЮ пустую файловую базу, имя корневой конфигурации УчебныеОстатки85. Не добавляйте эти объекты в УТ/КА2/УНФ/БП. Режим управления блокировкой данных конфигурации — Управляемый.

  2. Документы → Добавить: УчебноеДвижение85. Номер: Строка длиной 40, автонумерация выключена. Модули объекта и менеджера оставьте пустыми; не добавляйте обработчики, подписки и обязательные пользовательские реквизиты.

  3. Регистры накопления → Добавить: УчебныеОстатки85. Вид регистра Остатки. Единственное измерение КодТовара: Строка 50, индексировать, проверка заполнения Показывать ошибку. Единственный ресурс Количество: Число 12,3, неотрицательное. Дополнительных реквизитов нет.

  4. В списке регистраторов выберите только собственный документ УчебноеДвижение85. Оставьте модули регистра пустыми, использование итогов включённым. Планы обмена, разделители, историю данных и фоновые задания для урока не создавайте.

  5. Обновите конфигурацию базы данных. Создайте серверный общий модуль УчебныеЗадачи и команду собственной обработки. Фрагмент вставьте внутрь ВыполнитьПример() Экспорт; запускайте задачи по отдельности.

  6. Первые задачи работают с незаписанными наборами. Только задачи с пометкой «в собственной транзакции» временно записывают два собственных документа и движения, затем обязательно отменяют транзакцию. В рабочей базе этот код не запускайте.

  7. В этом разделе код ТОЛЬКО ЧИТАЕТ метаданные УчебныеОстатки85. Наборы, документы, транзакции, блокировки и запись движений не создаются.

  8. Не создавайте пользовательские формы, команды, макеты и дополнительные индексы у учебного регистра; расширения не устанавливайте.

  9. В Конфигураторе у регистра задайте Синоним=Учебные остатки, ПредставлениеСписка=Учебные движения товаров, РасширенноеПредставлениеСписка=Список учебных движений товаров.

  10. Пояснение=Только собственные учебные движения, Комментарий=Регистр для обучения, не рабочие остатки. Обновите конфигурацию БД.

Если Метаданные.Документы.Количество() <> 1
    Или Метаданные.РегистрыНакопления.Количество() <> 1
    Или Метаданные.Документы.Найти("УчебноеДвижение85") = Неопределено Тогда
    ВызватьИсключение "Разрешены только собственный учебный документ и регистр";
КонецЕсли;
Описание = Метаданные.РегистрыНакопления.Найти("УчебныеОстатки85");
Если Описание = Неопределено Тогда
    ВызватьИсключение "Сначала создайте собственный учебный регистр";
КонецЕсли;
Если Описание.ВидРегистра <> Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки
    Или Описание.Измерения.Количество() <> 1
    Или Описание.Ресурсы.Количество() <> 1
    Или Описание.Реквизиты.Количество() <> 0
    Или Описание.Измерения.Найти("КодТовара") = Неопределено
    Или Описание.Ресурсы.Найти("Количество") = Неопределено Тогда
    ВызватьИсключение "Нужен регистр остатков с КодТовара и Количество";
КонецЕсли;
Менеджер = РегистрыНакопления.УчебныеОстатки85;
Сообщить(Описание.Имя = "УчебныеОстатки85");
Сообщить(Описание.Синоним = "Учебные остатки");
Сообщить(Описание.ПредставлениеСписка = "Учебные движения товаров");
Сообщить(Описание.РасширенноеПредставлениеСписка = "Список учебных движений товаров");
Сообщить(Описание.Пояснение = "Только собственные учебные движения");
Сообщить(Описание.Комментарий = "Регистр для обучения, не рабочие остатки");
Сообщить("Представление: " + Описание.Представление());
Сообщить("Полное имя: " + Описание.ПолноеИмя());
РодительСхемы = Описание.Родитель();
Сообщить(РодительСхемы.Имя = "УчебныеОстатки85");

Разбор по шагам

  1. Защитный блок выбирает собственный регистр с одним измерением КодТовара и ресурсом Количество.

  2. Техническое имя оставляем неизменным. Подписи списка, пояснение и комментарий читаем из настроек Конфигуратора.

  3. Представление и ПолноеИмя относятся к объекту метаданных, а не к отдельной строке движения.

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

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

  1. Семь логических сообщений дают Истина.

  2. Полное имя идентифицирует РегистрНакопления.УчебныеОстатки85; сведения о наличии/количестве товаров здесь не рассчитываются.

Ожидаемый результат

Проверены подписи интерфейса и адрес собственного регистра в дереве метаданных.

На что обратить внимание

  1. Синоним списка не изменяет КодТовара в движениях и не переименовывает измерение.

  2. Метаданные.Имя и Описание.Имя здесь текстово совпадают по подготовке; совпадение имён не делает корень конфигурации самим регистром.

  3. Для остатка нужна виртуальная таблица/метод расчёта, не Представление объекта схемы.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Разобрать схему регистра накопления перед отчётом

Выбираем первый регистр текущей учебной конфигурации и разделяем измерения, ресурсы и реквизиты. Остатки не читаем и записи не создаём.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

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

  2. Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.


Если Метаданные.РегистрыНакопления.Количество() = 0 Тогда
    ВызватьИсключение "В этой конфигурации нет регистров накопления";
КонецЕсли;
Регистр = Метаданные.РегистрыНакопления.Получить(0);
Сообщить(Регистр.ПолноеИмя());
Сообщить(СтрШаблон("%1 (%2): вид %3", Регистр.Имя, Регистр.Синоним, Регистр.ВидРегистра));
Сообщить(Регистр.Комментарий);
Сообщить(СтрШаблон("Разделение итогов: %1; блокировки: %2",
    Регистр.РазрешитьРазделениеИтогов, Регистр.РежимУправленияБлокировкойДанных));
Для Каждого Измерение Из Регистр.Измерения Цикл
    Сообщить(СтрШаблон("Измерение %1: %2", Измерение.Имя, Измерение.Тип));
КонецЦикла;
Для Каждого Ресурс Из Регистр.Ресурсы Цикл
    Сообщить(СтрШаблон("Ресурс %1: %2", Ресурс.Имя, Ресурс.Тип));
КонецЦикла;
Для Каждого Реквизит Из Регистр.Реквизиты Цикл
    Сообщить(СтрШаблон("Реквизит %1: %2", Реквизит.Имя, Реквизит.Тип));
КонецЦикла;
Сообщить(СтрШаблон("Измерений %1; ресурсов %2; реквизитов %3; агрегатов %4",
    Регистр.Измерения.Количество(), Регистр.Ресурсы.Количество(),
    Регистр.Реквизиты.Количество(), Регистр.Агрегаты.Количество()));

Разбор по шагам

  1. Проверяем наличие регистра до обращения к индексу 0. Порядок коллекции не означает бизнес-приоритет объекта.

  2. Измерения задают разрезы учёта, ресурсы — учитываемые значения, реквизиты — дополнительные поля записи.

  3. ВидРегистра определяет регистр остатков или оборотов: нельзя автоматически подставлять виртуальную таблицу Остатки для любого регистра.

  4. Разделение итогов, агрегаты и режим блокировок читаем как настройки схемы, не изменяя их.

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

  1. Откройте указанный регистр в Конфигураторе: имена и количества трёх групп полей должны совпасть.

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

  3. После запуска в базе не появились новые движения: в примере нет наборов записей и Записать().

Ожидаемый результат

Получена фактическая схема одного регистра для дальнейшего проектирования запроса.

На что обратить внимание

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

  2. Количество агрегатов не является количеством товаров или строк движений. Первый регистр может не относиться к складу.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.