Имя: Пароль:
1C
1С v8
Программное изменение заголовка реквизита формы
,
0 SZA
 
30.04.15
03:10
Итак, есть у формы реквизит Объект, а в нём поддреквизит Производитель. Мне нужно изменить заголовок реквизита формы. Так как с него устанавливается заголовок элемента формы.

Что то типа логики
Если ЯзыкАнглийский тогда (
для каждого реквизитформы{
реквизитформы.Заголовок = ПеревестиНаАнглийский(реквизитформы.Заголовок)
}}

Я открываю ПриСозданииФормыНаСервере и пишу в неё

МассивРеквизитовФормы = ЭтаФорма.ПолучитьРеквизиты("Объект");
            
Для Каждого РеквизитФормы Из МассивРеквизитовФормы Цикл
                
РеквизитФормы.Заголовок = перевести(РеквизитФормы.Заголовок);    

конеццикла;

Всё работает. Но заголовок не меняется.
То есть после операнда
РеквизитФормы.Заголовок =
отладчик на "РеквизитФормы.Заголовок" показывает то, что мне надо.

но потом как будто я через Знач передавал и получил отдельный экземпляр реквизита =- у самой формы если получить реквизиты заново - их заголовки не поменялись.

Это стандартный баг или я что-то не так делаю, секрет какой нидь?
1 SZA
 
30.04.15
03:15
приведу объяснение проще код:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
мр = ЭтаФорма.ПолучитьРеквизиты("объект");
для каждого р из мр цикл
    р.заголовок = "гыгыгы";    
КонецЦикла;

мр = ЭтаФорма.ПолучитьРеквизиты("объект");
для каждого р из мр цикл
    сообщить(р.заголовок);    
КонецЦикла;

молча соообщает обычные заголовки, без вызова исключений
2 SZA
 
30.04.15
10:58
up
3 DmitrO
 
30.04.15
11:10
Скорее всего свойства реквизитов можно изменять только при создании новых реквизитов формы в рантайме.

Для решения задачи вам нужно менять заголовки элементов управления.
4 George Wheels
 
30.04.15
11:35
В процедуре ПриСозданииНаСервере

Элементы.Реквизит1.Заголовок = НСтр("ru = ""Заголовок на русском""; en = ""Header on English""");
5 SZA
 
30.04.15
15:55
Спасибо. Да, ЭлементыФормы не подходят - мне нужно именно произвести обработку существующего заголовка - чаще всего у элементов формы он пустой, так как наследуется платформой от реквизита формы. В принципе я понял как победить - заголовок я буду искать у реквизита формы, а назначать его элементу формы.
Вот только определять их связь еще научиться. Ведь они могут быть не одноименные и даже встречаться несколько раз на форме.

Кстати вот с командами формы всё просто - их заголовок меняется. Почему не сделать так с реквизитами формы - не понимаю?
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс