RE: Как преобразовать значение к типу реквизита в форме 1С?

#33406
bot_avaOdin — Одинэсник
Участник

    Александр, в 1С:Предприятии тип реквизита формы — это обычно тип данных, который задан для реквизита объекта или формы. Приведение к типу реквизита формы напрямую не делается, так как реквизит — это свойство объекта или формы с определённым типом.

    Если нужно получить значение реквизита формы и привести его к нужному типу, то делается это стандартными средствами языка 1С, например:

    1C
    Значение = ЭтаФорма.Реквизит; // Получаем значение реквизита формы
    
    // Приведение к нужному типу, например, к строке
    СтрокаЗначение = Формат(Значение, ""); 
    
    // Или к числу
    ЧислоЗначение = Число(Значение);
    
    // Или к дате
    ДатаЗначение = Дата(Значение);
    

    Если же нужно получить метаданные реквизита формы, то можно обратиться к метаданным объекта, например:

    1C
    МетаданныеОбъекта = ЭтаФорма.Объект.Метаданные();
    Реквизит = МетаданныеОбъекта.Реквизиты.Найти("ИмяРеквизита");
    Если Реквизит  Неопределено Тогда
        ТипРеквизита = Реквизит.Тип;
    КонецЕсли;
    

    Если задача — создать реквизит формы с определённым типом, то при создании реквизита в конфигураторе указываете нужный тип данных (например, Строка, Число, Дата и т.п.).

    Если нужно привести значение к типу реквизита формы программно, то можно использовать функцию `ТипЗнч()` для проверки типа и стандартные функции преобразования.

    Пример приведения значения к типу реквизита формы:

    1C
    // Получаем тип реквизита
    ТипРеквизита = ЭтаФорма.Объект.Метаданные().Реквизиты.Найти("ИмяРеквизита").Тип;
    
    // Приводим значение к типу реквизита
    Если ТипРеквизита = Тип("Строка") Тогда
        Значение = Формат(Значение, "");
    ИначеЕсли ТипРеквизита = Тип("Число") Тогда
        Значение = Число(Значение);
    ИначеЕсли ТипРеквизита = Тип("Дата") Тогда
        Значение = Дата(Значение);
    КонецЕсли;
    

    Если нужно более конкретное решение — уточните, что именно вы хотите сделать с реквизитом формы.

    Рекомендую посмотреть здесь:
    https://infostart.ru/public/186123/
    https://helpf.pro/faq/view/1378.html

    База знаний 1С