Имя: Пароль:
   
1C
1С v8
УФ - добавление реквизита на форму
0 ДенисЧ
 
10.11.20
16:10
Вроде примитивный код

    ДобавляемыеРеквизиты=Новый Массив();
    НовыйРеквизит= Новый РеквизитФормы("КодМастерДанных",
                                    Новый ОписаниеТипов("Строка"),
                                        "",
                                        "Код мастер-данных",
                                        Истина);
    ИзменитьРеквизиты(ДобавляемыеРеквизиты);
    
    Элемент = Элементы.Добавить("КодМастерДанных",Тип("ПолеФормы"));
    Элемент.Вид = ВидПоляФормы.ПолеВвода;
    Элемент.ПутьКДанным= "КодМастерДанных";
    Элемент.Видимость=Истина;
    Элемент.ТолькоПросмотр = Истина;

Всё это в ПриСозданииНаСервере формы элемента справочника. КодМастерДанных - реквизит справочника.

Говорит
Ошибка при установке значения атрибута контекста (ПутьКДанным)
Недопустимое значение

В другом справочнике такой же код, с разницей в имени реквизита и самом справочнике (даже тип такой же) - работает...

Что я упустил?
1 Жан Пердежон
 
10.11.20
16:20
разве не "Объект.КодМастерДанных"?
2 Жан Пердежон
 
10.11.20
16:21
да и зачем тебе реквизит формы, если это реквизит справочника?
3 Windyhead
 
10.11.20
16:23
(0) плюсану к (2). Добавляй только элемент на форму , ревизит же есть уже в объекте
4 Жан Пердежон
 
10.11.20
16:23
начинаю подозревать, что у ДенисЧ аккаунт на мисте угнали
5 ДенисЧ
 
10.11.20
16:45
(2) А как я его на форму выведу?
В другом же месте работает...
(4) я всегда утверждал и буду утверждать - уф зло, криво сделанное.
6 Жан Пердежон
 
10.11.20
16:49
(5) чтобы вывести - нужно только элемент добавить на форму, реквизит у тебя уже есть...
7 ДенисЧ
 
10.11.20
16:56
С объект. сработало...
8 kumena
 
10.11.20
17:04
> С объект. сработало...

Настало время продавать СП дениске!

Если путь задаешь "Объект.ИмяРеквизита" то это путь к реквизиту объекта, а если просто "ИмяРеквизита", то это путь к реквизиту форму.
9 spiller26
 
10.11.20
17:05
У меня так срабатывает без вопросов        
ДобавляемыеРеквизиты = Новый Массив;
        Реквизит_абтНастройкаУчетаФЗ275 = Новый РеквизитФормы("абтНастройкаУчетаФЗ275", Новый ОписаниеТипов("Строка"),, "Учет ФЗ-275");
        ДобавляемыеРеквизиты.Добавить(Реквизит_абтНастройкаУчетаФЗ275);
        ЭтаФорма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
        //Группа
        ГруппаНастрайкаУчетаФЗ = ЭтаФорма.Элементы.Добавить("ГруппаНастрайкаУчетаФЗ", Тип("ГруппаФормы"), ЭтаФорма.Элементы.ГруппаШапка);
        ГруппаНастрайкаУчетаФЗ.Вид = ВидГруппыФормы.ОбычнаяГруппа;
        ГруппаНастрайкаУчетаФЗ.Отображение = ОтображениеОбычнойГруппы.Нет;
        ГруппаНастрайкаУчетаФЗ.Заголовок = "Группа настрайка учета ФЗ";
        ГруппаНастрайкаУчетаФЗ.ОтображатьЗаголовок = Ложь;
        ГруппаНастрайкаУчетаФЗ.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная;
        ГруппаНастрайкаУчетаФЗ.Подсказка = "ГруппаНастрайкаУчетаФЗ";
        //Счет
        абтНастройкаУчетаФЗ275 = ЭтаФорма.Элементы.Добавить("абтНастройкаУчетаФЗ275", Тип("ПолеФормы"), ГруппаНастрайкаУчетаФЗ);
        абтНастройкаУчетаФЗ275.Вид = ВидПоляФормы.ПолеНадписи;
        абтНастройкаУчетаФЗ275.ПутьКДанным = "абтНастройкаУчетаФЗ275";
        абтНастройкаУчетаФЗ275.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
        абтНастройкаУчетаФЗ275.Гиперссылка = Истина;
        абтНастройкаУчетаФЗ275.РастягиватьПоГоризонтали = Истина;
        абтНастройкаУчетаФЗ275.УстановитьДействие("Нажатие", "абтНастройкаУчетаФЗ275Нажатие");
10 kumena
 
10.11.20
17:06
+8 у тебя не было реквизита формы, к которому ты путь написал, и их тоже можно программно создавать.
11 spiller26
 
10.11.20
17:07
(9) В моём случае это реквизит формы.
12 ДенисЧ
 
10.11.20
17:32
Я ж говорю - в соседнем справочнике - всё работало без объектов всяких, я оттуда скопировал...
13 Жан Пердежон
 
10.11.20
17:49
(12) там значит реквизит не сохраняется в базе, либо еще доп.кода куча
14 ДенисЧ
 
10.11.20
17:51
(13) И реквизит сохранялся... Вроде бы... Хотя надо проверить...
Кучи кода точно нет, форма типовая, с одной функцией создания реквизита на форме.