Создает описание типов на основании другого описания типов путем добавления одних и исключения других типов. Если новый квалификатор не указан, будут оставлены квалификаторы исходного описания типов.
Синтаксис
Новый ОписаниеТипов(<ИсходноеОписаниеТипов>, <ДобавляемыеТипы>, <ВычитаемыеТипы>, <КвалификаторыЧисла>, <КвалификаторыСтроки>, <КвалификаторыДаты>, <КвалификаторыДвоичныхДанных>)Примеры платформы
Массив = Новый Массив;
Массив.Добавить(Тип("СправочникСсылка.Методы"));
Массив.Добавить(Тип("Число"));
Знак = ДопустимыйЗнак.Неотрицательный;
КвЧисла = Новый КвалификаторыЧисла(10, 2, Знак);
ДопустимыеТипы = Новый ОписаниеТипов(ДопустимыеТипы, Массив, , КвЧисла);Полное описание, параметры и ограничения
ОписаниеТипов.На основании объекта ОписаниеТипов
ОписаниеТипов (TypeDescription)
На основании объекта ОписаниеТипов
Доступен, начиная с версии 8.0.
Синтаксис:
Новый ОписаниеТипов(<ИсходноеОписаниеТипов>, <ДобавляемыеТипы>, <ВычитаемыеТипы>, <КвалификаторыЧисла>, <КвалификаторыСтроки>, <КвалификаторыДаты>, <КвалификаторыДвоичныхДанных>)
Параметры:
<ИсходноеОписаниеТипов> (необязательный)
Тип: ОписаниеТипов.
Исходное описание типов, на основании которого будет строиться новое.
<ДобавляемыеТипы> (необязательный)
Тип: Массив, Строка.
Массив значений типа Тип, состоящий из типов, которые будут использованы в объекте, или строка, содержащая имена типов разделенных запятыми.
<ВычитаемыеТипы> (необязательный)
Тип: Массив, Строка.
Массив значений типа Тип (или строка, содержащая имена типов, разделенных запятыми), состоящий из типов, которые будут исключены из исходного описания, указанного в первом параметре.
<КвалификаторыЧисла> (необязательный)
Тип: КвалификаторыЧисла.
Квалификаторы числа, описывающие допустимые значения числового типа.
<КвалификаторыСтроки> (необязательный)
Тип: КвалификаторыСтроки.
Квалификаторы строки, описывающие допустимые значения строкового типа.
<КвалификаторыДаты> (необязательный)
Тип: КвалификаторыДаты.
Квалификаторы даты, описывающие допустимые значения типа Дата.
<КвалификаторыДвоичныхДанных> (необязательный)
Тип: КвалификаторыДвоичныхДанных.
Квалификаторы двоичных данных.
Описание:
Создает описание типов на основании другого описания типов путем добавления одних и исключения других типов. Если новый квалификатор не указан, будут оставлены квалификаторы исходного описания типов.
Пример:
// расширим описание ДопустимыеТипы новыми типами
Массив = Новый Массив;
Массив.Добавить(Тип("СправочникСсылка.Методы"));
Массив.Добавить(Тип("Число"));
Знак = ДопустимыйЗнак.Неотрицательный;
КвЧисла = Новый КвалификаторыЧисла(10, 2, Знак);
ДопустимыеТипы = Новый ОписаниеТипов(ДопустимыеТипы, Массив, , КвЧисла);
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Сохранить календарную дату без времени и расширить набор типов
Создаём тип даты с частью Дата, приводим известную дату-время, затем показываем копирование ОписаниеТипов с добавлением и вычитанием типов.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Все значения учебные и создаются в памяти; документы, регистры и рабочие данные не изменяются.
Выполняйте на сервере учебной базы. Представление десятичного разделителя в сообщениях зависит от локали.
Квалификаторы = Новый КвалификаторыДаты(ЧастиДаты.Дата);
ТипДаты = Новый ОписаниеТипов("Дата", , , Квалификаторы);
ИсходнаяДата = Дата(2026, 9, 15, 15, 30, 45);
ТолькоДата = ТипДаты.ПривестиЗначение(ИсходнаяДата);
Сообщить(Формат(ТолькоДата, "ДФ=yyyy-MM-dd HH:mm:ss"));
Сообщить(Квалификаторы.ЧастиДаты);
Сообщить(ТипДаты.КвалификаторыДаты.ЧастиДаты);
ЧисловойТип = Новый ОписаниеТипов("Число");
Составной = Новый ОписаниеТипов(ЧисловойТип, "Строка");
СноваСтрока = Новый ОписаниеТипов(Составной, , "Число");
Сообщить(ЧисловойТип.СодержитТип(Тип("Строка")));
Сообщить(Составной.СодержитТип(Тип("Строка")));
Сообщить(Составной.СодержитТип(Тип("Число")));
Для Каждого РазрешённыйТип Из СноваСтрока.Типы() Цикл
Сообщить(РазрешённыйТип);
КонецЦикла;Разбор по шагам
Дата с временем задана фиксированно, поэтому результат не зависит от текущих часов.
КвалификаторыДаты передаются четвёртым параметром первого конструктора ОписаниеТипов.
Приведение к части Дата удаляет время, но не выполняет преобразование часового пояса.
Во втором варианте конструктора первый аргумент — существующее описание: добавляем Строка и затем вычитаем Число, не изменяя оригинал.
Как проверить результат
Результат даты 2026-09-15 00:00:00; обе части даты — Дата.
Проверки строкового типа: Ложь у оригинала, Истина у составного; Число также есть в составном.
В СноваСтрока.Типы() остаётся только Строка.
Ожидаемый результат
Время намеренно отброшено; независимые описания типов расширены и сужены.
На что обратить внимание
Часть Дата подходит для календарного дня, но не для точного момента внешнего события.
Отбрасывание времени не заменяет конвертацию UTC в местный часовой пояс.
Типы в составном описании — разрешённые варианты, а не одновременно несколько значений в одной переменной.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.