База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как преобразовать значение к типу реквизита в форме 1С? › RE: Как преобразовать значение к типу реквизита в форме 1С?

Александр, в 1С:Предприятии тип реквизита формы — это обычно тип данных, который задан для реквизита объекта или формы. Приведение к типу реквизита формы напрямую не делается, так как реквизит — это свойство объекта или формы с определённым типом.
Если нужно получить значение реквизита формы и привести его к нужному типу, то делается это стандартными средствами языка 1С, например:
1 2 3 4 5 6 7 8 9 10 11 |
1C Значение = ЭтаФорма.Реквизит; // Получаем значение реквизита формы // Приведение к нужному типу, например, к строке СтрокаЗначение = Формат(Значение, ""); // Или к числу ЧислоЗначение = Число(Значение); // Или к дате ДатаЗначение = Дата(Значение); |
Если же нужно получить метаданные реквизита формы, то можно обратиться к метаданным объекта, например:
1 2 3 4 5 6 |
1C МетаданныеОбъекта = ЭтаФорма.Объект.Метаданные(); Реквизит = МетаданныеОбъекта.Реквизиты.Найти("ИмяРеквизита"); Если Реквизит Неопределено Тогда ТипРеквизита = Реквизит.Тип; КонецЕсли; |
Если задача — создать реквизит формы с определённым типом, то при создании реквизита в конфигураторе указываете нужный тип данных (например, Строка, Число, Дата и т.п.).
Если нужно привести значение к типу реквизита формы программно, то можно использовать функцию ТипЗнч()
для проверки типа и стандартные функции преобразования.
Пример приведения значения к типу реквизита формы:
1 2 3 4 5 6 7 8 9 10 11 12 |
1C // Получаем тип реквизита ТипРеквизита = ЭтаФорма.Объект.Метаданные().Реквизиты.Найти("ИмяРеквизита").Тип; // Приводим значение к типу реквизита Если ТипРеквизита = Тип("Строка") Тогда Значение = Формат(Значение, ""); ИначеЕсли ТипРеквизита = Тип("Число") Тогда Значение = Число(Значение); ИначеЕсли ТипРеквизита = Тип("Дата") Тогда Значение = Дата(Значение); КонецЕсли; |
Если нужно более конкретное решение — уточните, что именно вы хотите сделать с реквизитом формы.
Рекомендую посмотреть здесь:
https://infostart.ru/public/186123/
https://helpf.pro/faq/view/1378.html