Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Установить тип поля ввода на форме
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
kosalex
Добрый вечер, есть поле "Поиск" с типом строка, при выборе значения из списка, тип этого поля "Поиск" должен менять на Число, и наоборот.

Делаю так, и как еще только не делал не получается:

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


Пробовал и с массивом, как только не пробовал, не могу допетрить как изменить тип...
Petre
А для чего вообще тип "строка" там нужен?
kosalex
Вот так вот работает:
Если ЭлементыФормы.СписокВидовПоиска.Значение <> "РегНомер" Тогда
            КС = Новый КвалификаторыСтроки(0,ДопустимаяДлина.Переменная);
            
            МассивТипов = Новый Массив;
            МассивТипов.Добавить(Тип("Строка"));
                        
            ТипСтрока = Новый ОписаниеТипов(МассивТипов,,КС,,);
            
            ЭлементыФормы.ПолеПоиска.ТипЗначения = ТипСтрока;
            
            МассивТипов.Очистить();
            
        Иначе
            КЧ = Новый КвалификаторыЧисла(9,0,ДопустимыйЗнак.Неотрицательный);
            
            МассивТипов = Новый Массив;
            МассивТипов.Добавить(Тип("Число"));
            
            ТипЧисло = Новый ОписаниеТипов(МассивТипов,КЧ,,,);
            
            ЭлементыФормы.ПолеПоиска.ТипЗначения = ТипЧисло;
            
            МассивТипов.Очистить();
        КонецЕсли;



Цитата(Petre @ 25.03.15, 17:03) необходимо зарегистрироваться для просмотра ссылки
А для чего вообще тип "строка" там нужен?



чтобы можно было сравнивать строки со строковыми реквизитами а числовые с числовыми smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.