ОбъектМетаданных: Реквизит.Индексирование

Свойства · Indexing

Тип: Индексирование. Вид дополнительных индексов, создаваемых для работы с данными объекта метаданных.

Полное описание, параметры и ограничения

ОбъектМетаданных: Реквизит.Индексирование (MetadataObject: Attribute.Indexing)

ОбъектМетаданных: Реквизит (MetadataObject: Attribute)

Индексирование (Indexing)

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

Использование:
Только чтение.
Описание:
Тип: Индексирование.
Вид дополнительных индексов, создаваемых для работы с данными объекта метаданных.
Доступность:

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

Примечание:
Для всех реквизитов, кроме реквизитов, описывающих отчеты, обработки и табличные части отчетов и обработок.
Использование в версии:

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

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

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

Различить полнотекстовый поиск и историю данных артикула

Обе настройки у Артикул включены, но они решают разные задачи. Чтение свойства не означает, что поисковый индекс или история уже актуальны.

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

Полный серверный общий модуль учебной копии КА2 Progress. Только схема и собственные значения в памяти.

Подготовка

  1. Используйте отдельную учебную копию КА2 Progress, соответствующую C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Названия и настройки проверены по реальным Catalogs/Номенклатура.xml и Catalogs/ВидыПодарочныхСертификатов.xml.

  2. Создайте серверный общий модуль УчебныеЗадачи, вставьте полный модуль одного урока и вызовите ВыполнитьПример() из своего серверного обработчика учебной команды.

  3. Примеры читают схему и создают значения только в памяти. Они не создают и не записывают товары, не меняют метаданные, не запускают заполнение объекта или перестроение поискового индекса.

Процедура ВыполнитьПример() Экспорт
    Справочник = Метаданные.Справочники.Найти("Номенклатура");
    Если Справочник = Неопределено Тогда
        ВызватьИсключение "В учебной конфигурации отсутствует Справочники.Номенклатура";
    КонецЕсли;
    Описание = Справочник.Реквизиты.Найти("Артикул");
    Если Описание = Неопределено Тогда
        ВызватьИсключение "В найденном справочнике нет нужного реквизита учебного урока";
    КонецЕсли;
    Сообщить(Описание.ПолнотекстовыйПоиск = Метаданные.СвойстваОбъектов.ИспользованиеПолнотекстовогоПоиска.Использовать);
    Сообщить(Описание.ИсторияДанных = Метаданные.СвойстваОбъектов.ИспользованиеИсторииДанных.Использовать);
    Сообщить(Описание.Индексирование = Метаданные.СвойстваОбъектов.Индексирование.Индексировать);
    Сообщить(Описание.Тип.СодержитТип(Тип("Строка")));
    Сообщить(Описание.Тип.КвалификаторыСтроки.Длина = 50);
    УчебныйАртикул = "000123";
    Сообщить(ТипЗнч(УчебныйАртикул) = Тип("Строка"));
    Сообщить(УчебныйАртикул = "000123");
КонецПроцедуры

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

  1. ПолнотекстовыйПоиск включает участие данных поля в полнотекстовом поиске. Это не запуск обновления индекса и не обычный индекс СУБД.

  2. ИсторияДанных описывает участие поля в механизме истории данных, а не историю выпадающего выбора пользователя.

  3. Индексирование отдельно относится к индексированию данных реквизита. Три свойства нельзя объединять одним флагом Быстрый поиск.

  4. Реальный Артикул — строка длиной 50. Учебное 000123 остаётся строкой и сохраняет ведущие нули; поле не приравнивается к коду справочника.

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

  1. Семь контрольных Истина для исходных настроек и собственного строкового артикула.

  2. Нет записи артикула, обновления индекса или изменения настроек истории.

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

Правильно определены тип входящего артикула и три независимых механизма работы с ним.

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

  1. Настройка Use не доказывает актуальность индекса или полноту истории в рабочей базе.

  2. Не преобразуйте цифровой на вид артикул в Число.

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

Сверить типы Артикул и Цена, не путая формат с ограничением значения

ОписаниеТипов сообщает допустимый тип и квалификаторы. Маска, формат и многострочный режим управляют представлением/вводом и не заменяют числовой контракт.

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

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

Подготовка

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

  2. Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.

  3. Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.

  4. Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.

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


Если Метаданные.Справочники.Найти("УчебныеТовары") = Неопределено Тогда
    ВызватьИсключение "Сначала создайте учебный справочник по подготовке";
КонецЕсли;

Реквизиты = Метаданные.Справочники.УчебныеТовары.Реквизиты;
Артикул = Реквизиты.Найти("Артикул");
Цена = Реквизиты.Найти("Цена");
Если Артикул = Неопределено Или Цена = Неопределено Тогда
    ВызватьИсключение "Не созданы учебные Артикул и Цена";
КонецЕсли;
Сообщить(Артикул.Тип.СодержитТип(Тип("Строка")));
Сообщить(Артикул.Тип.КвалификаторыСтроки.Длина = 20);
Сообщить(Цена.Тип.СодержитТип(Тип("Число")));
Сообщить(Цена.Тип.КвалификаторыЧисла.Разрядность = 12);
Сообщить(Цена.Тип.КвалификаторыЧисла.РазрядностьДробнойЧасти = 2);
Сообщить(Цена.Тип.КвалификаторыЧисла.ДопустимыйЗнак = ДопустимыйЗнак.Неотрицательный);
Для Каждого Описание Из Реквизиты Цикл
    Сообщить("Имя: " + Описание.Имя + "; синоним: " + Описание.Синоним);
    Сообщить("Комментарий: " + Описание.Комментарий);
    Сообщить("Подсказка: " + Описание.Подсказка);
    Сообщить("Формат вывода: " + Описание.Формат);
    Сообщить("Формат ввода: " + Описание.ФорматРедактирования);
    Сообщить("Маска: " + Описание.Маска);
    Сообщить("Многострочный режим: " + Строка(Описание.МногострочныйРежим));
    Сообщить("Расширенное редактирование: " + Строка(Описание.РасширенноеРедактирование));
    Сообщить("Режим пароля: " + Строка(Описание.РежимПароля));
    Сообщить("Отрицательные выделяются: " + Строка(Описание.ВыделятьОтрицательные));
    Сообщить("Проверка заполнения: " + Строка(Описание.ПроверкаЗаполнения));
    Сообщить("Использование для групп/элементов: " + Строка(Описание.Использование));
    Сообщить("Индексирование: " + Строка(Описание.Индексирование));
    Сообщить("Заполнение из переданных данных: " + Строка(Описание.ЗаполнятьИзДанныхЗаполнения));
КонецЦикла;

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

  1. Найти получает описания двух собственных реквизитов; для первого запуска они созданы точно по подготовке.

  2. Тип содержит ОписаниеТипов. Для Артикул читаем квалификатор строки, для Цена — квалификаторы числа.

  3. Отдельно выводим Формат, ФорматРедактирования и Маска: они не меняют сами данные и не разрешают цену с отрицательным знаком.

  4. МногострочныйРежим и РасширенноеРедактирование влияют на ввод текста; РежимПароля скрывает ввод, а не шифрует значение в базе.

  5. ПроверкаЗаполнения и Использование описывают проверку и применимость реквизита. Индексирование — настройка хранения/поиска, а не индекс позиции в коллекции.

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

  1. Артикул: Строка/20, Цена: Число/12.2/неотрицательное; все шесть сравнений — Истина.

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

  3. Если поменять только Формат для Цена, её тип Число 12.2 останется прежним.

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

Проверены реальные ограничения типов и отдельно прочитаны настройки отображения, ввода и заполнения.

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

  1. Цена 12.2 ограничена числом цифр, а не правилом наценки или допустимой валютой.

  2. ВыделятьОтрицательные меняет отображение; запрет отрицательных значений задаётся квалификатором и бизнес-проверками.

  3. РежимПароля не является защитой хранимых секретов. Не храните реальные пароли в учебных реквизитах.

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

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

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

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

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