Имя: Пароль:
1C
 
Ошибка при вызове конструктора (РеквизитФормы)
0 Repinovich
 
24.02.23
23:35
Вылезает такая ошибка
Ошибка при вызове конструктора (РеквизитФормы)

{ОбщаяФорма.Форма.Форма(94)}:        РеквизитФормы = Новый РеквизитФормы (ТекВалюта.Значение.МеждународныйКодВалюты, Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(10, 3)));
{ОбщаяФорма.Форма.Форма(11)}:    ПолучитьКурсыВалют (Дата);
по причине:
Недопустимое значение параметра (параметр номер '1')

ТекВалюта.Значение.МеждународныйКодВалюты это строка "985"
Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(10, 3)) Пробывал менять на Новый ОписаниеТипов("Строка", , , Новый КвалификаторыСтроки(3)) ничего не изменилось.

&НаСервере
Процедура  ПолучитьКурсыВалют (ВыбДата)
    
    
    ТЗКурсы = РаботаСКурсами.ПолучениеКурсаВыбраннойВалюты(ВыбДата);
    
    ДобавляемыеРеквизиты = Новый Массив;
    УдаляемыеРеквизиты = Новый Массив;    
    УдаляемыеЭлементы = Новый Массив;    
    
    Для Каждого ПодчиненныйЭлемент Из Элементы.ГруппаКурсовВалют.ПодчиненныеЭлементы Цикл
        УдаляемыеРеквизиты.Добавить(ПодчиненныйЭлемент.Имя);
    КонецЦикла;  
    
    Для Каждого ТекРеквизит Из УдаляемыеРеквизиты Цикл
        ТекЭлемент = Элементы.Найти(ТекРеквизит);    
        Элементы.Удалить(ТекЭлемент);
    КонецЦикла;
    
    Для Каждого ТекВалюта Из Валюты Цикл
        Если Не ТекВалюта.Пометка Тогда Продолжить; КонецЕсли;    
        
        РеквизитФормы = Новый РеквизитФормы (ТекВалюта.Значение.МеждународныйКодВалюты, Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(10, 3)));
        
        ДобавляемыеРеквизиты.Добавить(РеквизитФормы);
    КОнецЦикла;
    
    ИзменитьРеквизиты(ДобавляемыеРеквизиты, УдаляемыеРеквизиты);
    
    Для Каждого ТекВалюта Из Валюты Цикл
        Если Не ТекВалюта.Пометка Тогда Продолжить; КонецЕсли;
        ИмяРеквизита = ТекВалюта.Значение.МеждународныйКодВалюты;
        
        СтрокаЗначенияКурса = ТЗКурсы.Найти(ИмяРеквизита, "Код");
        
        ЭлементФормыТекВалюты = Элементы.Добавить(ИмяРеквизита, Тип("ПолеФормы"), Элементы.ГруппаКурсовВалют);
        ЭлементФормыТекВалюты.ПутьКДанным = ИмяРеквизита;
        ЭлементФормыТекВалюты.Вид = ВидПоляФормы.ПолеНадписи;
        ЭлементФормыТекВалюты.Шрифт = Новый Шрифт(ШрифтыСтиля.ОбычныйШрифтТекста,,,,,,,80);        
        
        Если СтрокаЗначенияКурса = Неопределено Тогда Продолжить; КонецЕсли;
        
        ЭтаФорма[ИмяРеквизита] = СтрокаЗначенияКурса.Курс;
        КонецЦикла;
КонецПроцедуры
1 Остап Ибрагимович
 
25.02.23
00:15
Сёпраильно. 1й параметр - имя реквизита. Которое должно удовлетворять определенным требованиям. А именно:
... должно состоять из одного слова, начинаться с буквы и не содержать специальных символов кроме "_"
(с) 1С:Предприятие 8.3. Руководство разработчика