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

Типы · NumberQualifiers

Используется для описания допустимых значений числового типа.

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

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

КвалификаторыЧисла (NumberQualifiers)

КвалификаторыЧисла (NumberQualifiers)

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

Свойства:
ДопустимыйЗнак (AllowedSign)
Разрядность (Digits)
РазрядностьДробнойЧасти (FractionDigits)

Конструкторы:
На основании описания числа

Описание:

Используется для описания допустимых значений числового типа.

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

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Может использоваться в реквизитах управляемой формы. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data/core}. Имя типа XDTO: NumberQualifiers.

Пример:

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

См. также:
ОписаниеТипов, свойство КвалификаторыЧисла
ОписаниеТипов, свойство КвалификаторыДаты
ОписаниеТипов, свойство КвалификаторыСтроки
ОписаниеТипов, конструктор На основании объекта ОписаниеТипов
ОписаниеТипов, конструктор На основании типов и квалификаторов

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

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

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

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

Проверить тип ресурса Результат на собственной сумме

В Начисления шесть ресурсов, Результат имеет число 15,2. Подгоняем только собственное 1000.256 под тип, не вычисляя зарплату и не записывая сумму.

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

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

Подготовка

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

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

  3. Имена объектов взяты из XML КА2 Progress: C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Исходные XML не изменяйте. Выполняйте код только в своей учебной копии соответствующей конфигурации.

  4. В другой конфигурации предварительно найдите аналогичный объект в Конфигураторе и замените только строку имени в поиске. Отсутствие имени обрабатывается до чтения свойств; оно не доказывает отсутствие аналогичной возможности.

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

Описание = Метаданные.РегистрыРасчета.Найти("Начисления");
Если Описание = Неопределено Тогда
    ВызватьИсключение "В учебной конфигурации отсутствует РегистрыРасчета.Начисления";
КонецЕсли;
Результат = Описание.Ресурсы.Найти("Результат");
Если Результат = Неопределено Или Не Результат.Тип.СодержитТип(Тип("Число")) Тогда
    ВызватьИсключение "Ожидался числовой ресурс Результат";
КонецЕсли;
Сообщить(Описание.Ресурсы.Количество() = 6);
Сообщить(Результат.Тип.КвалификаторыЧисла.Разрядность = 15);
Сообщить(Результат.Тип.КвалификаторыЧисла.РазрядностьДробнойЧасти = 2);
УчебноеЧисло = 1000.256;
Приведенное = Результат.Тип.ПривестиЗначение(УчебноеЧисло);
Сообщить(Приведенное = 1000.26);
Сообщить(УчебноеЧисло = 1000.256);

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

  1. Находим числовое описание ресурса и проверяем тип до квалификаторов.

  2. ПривестиЗначение у ОписаниеТипов ограничивает собственное число типом 15,2.

  3. Исходное число остаётся прежним, значение регистра из базы не получалось.

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

  1. Пять сравнений Истина: ресурсы 6, квалификаторы 15 и 2, приведено 1000.26, исходное 1000.256.

  2. В коде нет расчётной формулы, сотрудника, периода конкретной записи или Записать.

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

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

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

  1. Округление по типу хранения не заменяет прикладные правила расчёта выплат и налогов.

  2. Не переносите число 1000.26 как готовое начисление: оно только учебная проверка квалификатора.

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

Проверить назначенные график, дату и числовое значение графика

График ссылается на регистр сведений ГрафикиРаботыПоВидамВремени. ДатаГрафика и ЗначениеГрафика — описания его измерения и ресурса, не отработанные часы конкретного сотрудника.

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

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

Подготовка

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

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

  3. Имена объектов взяты из XML КА2 Progress: C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Исходные XML не изменяйте. Выполняйте код только в своей учебной копии соответствующей конфигурации.

  4. В другой конфигурации предварительно найдите аналогичный объект в Конфигураторе и замените только строку имени в поиске. Отсутствие имени обрабатывается до чтения свойств; оно не доказывает отсутствие аналогичной возможности.

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

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

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

  1. По XML в Начисления назначены все три описания; находим сам регистр сведений отдельно.

  2. ДатаГрафика должна быть его измерением типа Дата, ЗначениеГрафика — его числовым ресурсом.

  3. Периодичность самого графика непериодическая, а дата хранится измерением: не путайте это с месячной периодичностью регистра расчёта.

  4. Квалификаторы 5,2 относятся к типу ресурса, не вычисляют рабочие часы или число дней.

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

  1. Десять сравнений Истина по предоставленной схеме.

  2. Не выбиралась ни одна дата/значение из записей графиков работы.

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

Проверены три связи схемы и типы даты/числового значения графика.

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

  1. ОсновноеЗначение не обещает универсальную единицу «часы»: смысл определяется видом времени и прикладной логикой.

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

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

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

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

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

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