Квалификаторы и ОписаниеТипов

18.05.2018

Теги: 1С:ПредприятиеТипыДанных

Слова «ОписаниеТипов» и «Квалификаторы» вызывают трудность понимания на начальном этапе использования. По сути это простые вещи — с толку может сбивать их название.

Что такое Квалификаторы?

В 1С есть простые типы: Число, Строка, Дата. Но иногда необходимо уточнить, что переменная будет не просто числом, а например, числом длиной 12 символов и 2 разрядами после запятой, при этом неотрицательное. В простых типах это сделать невозможно т.к. тип не имеет соответствующих свойств. Для таких случаев и нужен объект «Квалификатор».

Знак = ДопустимыйЗнак.Неотрицательный;
КвалификаторЧисло = Новый КвалификаторыЧисла(12, 2, Знак);

У каждого простого типа есть свой квалификатор:

КвалификаторСтрока = Новый КвалификаторыСтроки(100);
КвалификаторВремя = Новый КвалификаторыДаты(ЧастиДаты.Время);

Что такое Описание типов?

ОписаниеТипов — это объект, который содержит массив допустимых типов, но т.к. в массиве нет возможности указать дополнительные данные, то отдельно для простых типов (Число, Строка, Дата) можно уточнить свойства квалификаторами.

Новый ОписаниеТипов(Типы, КвалификаторыЧисла, КвалификаторыСтроки, КвалификаторыДаты)
  • Типы (обязательный, тип Массив, Строка). Массив значений типа Тип, состоящий из типов, которые будут использованы в объекте, или строка, содержащая имена типов, разделенных запятыми.
  • КвалификаторыЧисла (необязательный, тип КвалификаторыЧисла). Квалификаторы числа, описывающие допустимые значения числового типа. Если параметр не указан, то числа хранить нельзя.
  • КвалификаторыСтроки (необязательный, тип КвалификаторыСтроки). Квалификаторы строки, описывающие допустимые значения строкового типа. Если параметр не указан, то используется неограниченная длина строки.
  • КвалификаторыДаты (необязательный, тип КвалификаторыДаты). Квалификаторы даты, описывающие допустимые значения типа Дата. Если параметр не указан, то используются обе части даты (дата + время).

Создает описание типов на основании заданных типов и квалификаторов для типов Число, Строка, Дата.

У описания типов есть четыре параметра, первый — обязательный, в нем указываются типы. Остальные — необязательные, в них указываются квалификаторы. Для создания описания типов существует несколько вариантов.

Указание типа строкой:

ОписаниеТипов = Новый ОписаниеТипов("СправочникСсылка.Склад");

Можно указать несколько типов, разделяя их запятыми:

ОписаниеТипов = Новый ОписаниеТипов("СправочникСсылка.Склад, ДокументСсылка.РеализацияТоваров");

Можно передать массив типов:

МассивТипов = Новый Массив();
МассивТипов.Добавить(Тип("СправочникСсылка.Склад"));
МассивТипов.Добавить(Тип("ДокументСсылка.РеализацияТоваров"));
МассивТипов.Добавить(Тип("Строка"));
КС100 = Новый КвалификаторыСтроки(100);
ОписаниеТипов = Новый ОписаниеТипов(МассивТипов,,КС100);

В последнем примере одним из типов является строка и это не случайно. Даже когда в описании типов указывается квалификатор, обязательно нужно добавлять в типы этот простой тип. Т.к. квалификаторы накладывают ограничение на типы, а не устанавливают их.

Заключение

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

Для наглядности посмотрим на ограничение типов в реквизитах объекта конфигурации. По сути, это один механизм:

Поиск: 1С:Предприятие • Квалификаторы • Описание типов • Типы данных

Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.