Тип: Строка. Произвольная строка символов. Как правило, расшифровывает и поясняет имя объекта метаданных.
Полное описание, параметры и ограничения
ОбъектМетаданных: Реквизит.Комментарий (MetadataObject: Attribute.Comment)
ОбъектМетаданных: Реквизит (MetadataObject: Attribute)
Комментарий (Comment)
Доступен, начиная с версии 8.1.
Использование:
Только чтение.
Описание:
Тип: Строка.
Произвольная строка символов. Как правило, расшифровывает и поясняет имя объекта метаданных.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Сверить типы Артикул и Цена, не путая формат с ограничением значения
ОписаниеТипов сообщает допустимый тип и квалификаторы. Маска, формат и многострочный режим управляют представлением/вводом и не заменяют числовой контракт.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Создайте НОВУЮ пустую файловую учебную базу, не копию рабочего каталога. В Конфигураторе задайте корню имя Учебная85. Не добавляйте эти объекты в рабочую УТ/КА2/УНФ/БП.
Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.
Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.
Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.
Создайте серверный общий модуль УчебныеЗадачи и команду учебной обработки, вызывающую ВыполнитьПример() Экспорт. Каждый фрагмент выполняйте отдельно, не склеивайте их в одну процедуру.
Если Метаданные.Справочники.Найти("УчебныеТовары") = Неопределено Тогда
ВызватьИсключение "Сначала создайте учебный справочник по подготовке";
КонецЕсли;
Реквизиты = Метаданные.Справочники.УчебныеТовары.Реквизиты;
Артикул = Реквизиты.Найти("Артикул");
Цена = Реквизиты.Найти("Цена");
Если Артикул = Неопределено Или Цена = Неопределено Тогда
ВызватьИсключение "Не созданы учебные Артикул и Цена";
КонецЕсли;
Сообщить(Артикул.Тип.СодержитТип(Тип("Строка")));
Сообщить(Артикул.Тип.КвалификаторыСтроки.Длина = 20);
Сообщить(Цена.Тип.СодержитТип(Тип("Число")));
Сообщить(Цена.Тип.КвалификаторыЧисла.Разрядность = 12);
Сообщить(Цена.Тип.КвалификаторыЧисла.РазрядностьДробнойЧасти = 2);
Сообщить(Цена.Тип.КвалификаторыЧисла.ДопустимыйЗнак = ДопустимыйЗнак.Неотрицательный);
Для Каждого Описание Из Реквизиты Цикл
Сообщить("Имя: " + Описание.Имя + "; синоним: " + Описание.Синоним);
Сообщить("Комментарий: " + Описание.Комментарий);
Сообщить("Подсказка: " + Описание.Подсказка);
Сообщить("Формат вывода: " + Описание.Формат);
Сообщить("Формат ввода: " + Описание.ФорматРедактирования);
Сообщить("Маска: " + Описание.Маска);
Сообщить("Многострочный режим: " + Строка(Описание.МногострочныйРежим));
Сообщить("Расширенное редактирование: " + Строка(Описание.РасширенноеРедактирование));
Сообщить("Режим пароля: " + Строка(Описание.РежимПароля));
Сообщить("Отрицательные выделяются: " + Строка(Описание.ВыделятьОтрицательные));
Сообщить("Проверка заполнения: " + Строка(Описание.ПроверкаЗаполнения));
Сообщить("Использование для групп/элементов: " + Строка(Описание.Использование));
Сообщить("Индексирование: " + Строка(Описание.Индексирование));
Сообщить("Заполнение из переданных данных: " + Строка(Описание.ЗаполнятьИзДанныхЗаполнения));
КонецЦикла;Разбор по шагам
Найти получает описания двух собственных реквизитов; для первого запуска они созданы точно по подготовке.
Тип содержит ОписаниеТипов. Для Артикул читаем квалификатор строки, для Цена — квалификаторы числа.
Отдельно выводим Формат, ФорматРедактирования и Маска: они не меняют сами данные и не разрешают цену с отрицательным знаком.
МногострочныйРежим и РасширенноеРедактирование влияют на ввод текста; РежимПароля скрывает ввод, а не шифрует значение в базе.
ПроверкаЗаполнения и Использование описывают проверку и применимость реквизита. Индексирование — настройка хранения/поиска, а не индекс позиции в коллекции.
Как проверить результат
Артикул: Строка/20, Цена: Число/12.2/неотрицательное; все шесть сравнений — Истина.
В начальной подготовке Маска и оба формата не заданы. Пустая строка этих настроек не означает отсутствующий реквизит.
Если поменять только Формат для Цена, её тип Число 12.2 останется прежним.
Ожидаемый результат
Проверены реальные ограничения типов и отдельно прочитаны настройки отображения, ввода и заполнения.
На что обратить внимание
Цена 12.2 ограничена числом цифр, а не правилом наценки или допустимой валютой.
ВыделятьОтрицательные меняет отображение; запрет отрицательных значений задаётся квалификатором и бизнес-проверками.
РежимПароля не является защитой хранимых секретов. Не храните реальные пароли в учебных реквизитах.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Проверить тип и допустимую длину артикула
Получаем реальный реквизит Артикул и его квалификаторы. Показываем, почему нельзя бесконтрольно обрезать входящие строки.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.
Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.
Нужен справочник Номенклатура со строковым реквизитом Артикул. Если имя отличается, сначала найдите фактическое поле в Конфигураторе и измените только его имя в примере.
ОписаниеСправочника = Метаданные.Справочники.Найти("Номенклатура");
Если ОписаниеСправочника = Неопределено Тогда
ВызватьИсключение "Нет справочника Номенклатура";
КонецЕсли;
Реквизит = ОписаниеСправочника.Реквизиты.Найти("Артикул");
Если Реквизит = Неопределено Тогда
ВызватьИсключение "Нет реквизита Артикул; выберите существующий строковый реквизит в своей учебной базе";
КонецЕсли;
Сообщить(Реквизит.ПолноеИмя());
Сообщить(Реквизит.Представление());
Сообщить(Реквизит.Родитель());
Сообщить(СтрШаблон("%1 (%2): %3", Реквизит.Имя, Реквизит.Синоним, Реквизит.Тип));
Сообщить(Реквизит.Комментарий);
Сообщить(Реквизит.ПроверкаЗаполнения);
Сообщить(Реквизит.Использование);
Сообщить(Реквизит.МногострочныйРежим);
Сообщить(Реквизит.ЗаполнятьИзДанныхЗаполнения);
ОписаниеТипов = Реквизит.Тип;
Если Не ОписаниеТипов.СодержитТип(Тип("Строка")) Тогда
ВызватьИсключение "Этот реквизит не допускает строку";
КонецЕсли;
Максимум = ОписаниеТипов.КвалификаторыСтроки.Длина;
Сообщить(Максимум);
АртикулИзФайла = "A-01";
Если Максимум > 0 И СтрДлина(АртикулИзФайла) > Максимум Тогда
ВызватьИсключение "Артикул длиннее допустимого. Исправьте исходные данные, не обрезайте идентификатор";
КонецЕсли;
Сообщить("Проверка длины пройдена: " + АртикулИзФайла);Разбор по шагам
Проверяем существование обоих уровней: справочник и его реквизит.
Свойство Тип возвращает ОписаниеТипов. Проверка СодержитТип подтверждает возможность строки.
КвалификаторыСтроки.Длина даёт ограничение; 0 в этом квалификаторе означает неограниченную длину строки.
При превышении предела отклоняем значение, а не обрезаем: два разных внешних артикула иначе могут превратиться в один.
Как проверить результат
Полное имя заканчивается Реквизит.Артикул; длина совпадает с настройкой реквизита в Конфигураторе.
При ограниченной длине задайте входящую строку длиннее предела: должна быть явная ошибка.
Замените имя реквизита на отсутствующее: пример должен остановиться до чтения Тип.
Ожидаемый результат
Входящий артикул проверен по реальной структуре поля без записи номенклатуры.
На что обратить внимание
Проверка длины не проверяет уникальность артикула, бизнес-правила и обязательность поля.
ОписаниеТипов может быть составным: наличие строки не означает, что строка — единственный разрешённый тип.
Свойство ЗначениеЗаполнения не используется как источник рабочих данных: значения по умолчанию и фактические данные — разные вещи.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.