Имя: Пароль:
1C
 
Программная запись в реквизит формы
0 AlexToo
 
29.06.16
08:17
Добрый день, конфа 1C:CRM, редакция 2.0 , управляемые формы, ПриСозданииФормыНаСервере добавляю в форму новый реквизит и поле ввода для него вот так:
    //Добавляем реквизит
     нРеквизиты = Новый Массив;
     Реквизит = Новый РеквизитФормы("ОписаниеПредыдущихСобытий", Новый ОписаниеТипов("Строка"), , "Описание предыдущих событий", Истина);
     нРеквизиты.Добавить(Реквизит);
     Форма.ИзменитьРеквизиты(нРеквизиты);
    //Добавляем поле ввода
     Элемент = Форма.Элементы.Добавить("ОписаниеПредыдущихСобытий", Тип("ПолеФормы"), Форма.Элементы.ГруппаКонтактнаяИнформация);
     Элемент.Вид = ВидПоляФормы.ПолеВвода;
     Элемент.заголовок="Описание предыдущих событий";
     Элемент.многострочныйРежим=Истина;
     Элемент.ПутьКДанным = "ОписаниеПредыдущихСобытий";
    
     Форма.Элементы.Комментарий.Высота=3;
     Форма.Элементы.Комментарий.многострочныйРежим=истина;
    
Затем в процедуре ПриОткрытии формы в этот реквизит надо записать некоторый текст, сохранять его не нужно, просто информативный характер, что бы описание предыдущих событий высвечивалось в форме при ее открытии. Но проблема в том, что при попытке записать в этот реквизит текст пишет, что поле недоступно для записи. как правильно в реквизит формы записать значение?
1 Рэйв
 
29.06.16
08:23
(0)А в конфигураторе не проще было его добавить и не заморачиваться?
2 AlexToo
 
29.06.16
08:24
(1) нет, к сожалению. Так бы давно в конфигураторе добавил. Но есть свои заморочки.
3 Рэйв
 
29.06.16
08:27
(2)Наверное у меня плохо с фантазией.Не могу себе представить заморочку пи которой нельзя добавить реквизит на форму если все равно она правится в конфигураторе в модуле.
Может озвучишь?:-)
4 AlexToo
 
29.06.16
08:27
Пытаюсь записать вот так:
ПриОткрытии
....
если не Параметры.Ключ.Пустая() тогда
        
            описание=ПолучитьОписанияСобытий(Объект.Ссылка);
            Элементы.ОписаниеПредыдущихСобытий=описание;
        
        
        КонецЕсли;
    
и выходит ошибка:
{Справочник.Партнеры.Форма.CRM_ФормаЭлемента1.Форма(3276)}: Поле объекта недоступно для записи (ОписаниеПредыдущихСобытий)
            Элементы.ОписаниеПредыдущихСобытий=описание;
5 AlexToo
 
29.06.16
08:28
(3) на форме куда я добавлю реквизит, типовые реквизиты, так же создаются программно, мне надо что бы мой реквизит в форме располагался после них. Поэтому если я добавлю в конфигураторе свой реквизит он будет располагаться выше, тех реквизитов которые создадутся программно.
6 Рэйв
 
29.06.16
08:29
(5)Жестоко:-)
7 hhhh
 
29.06.16
08:30
(2) записывать нужно в ПриСозданииНаСервере. Зачем в ПриОткрытии?
8 Рэйв
 
29.06.16
08:30
(4)Тогда уж не
Элементы.ОписаниеПредыдущихСобытий=описание;

а
ЭтаФорма.ОписаниеПредыдущихСобытий=описание;
9 Рэйв
 
29.06.16
08:31
+(8)ты пытаешься напрямую писать в элемент.Правильно тебя шлет
10 Рэйв
 
29.06.16
08:31
+(8)Или попробуй
Элементы.ОписаниеПредыдущихСобытий.Значение=описание;
11 AlexToo
 
29.06.16
08:32
(8) спасибо, помогло!
12 aleks_default
 
29.06.16
09:18
(10) в УФ Значения нет.
13 spiteful41
 
29.06.16
09:44
(0) Для таких целей можно было декорацию-надпись добавить и все.