Имя: Пароль:
1C
1С v8
Проблема с добалвением реквизита в динамический список
0 megabax
 
24.04.17
08:51
Добрый день. Я пытаюсь программно добить реквизит в динамический список, вот так:
        ТипыРеквизита = Новый Массив;
        ТипыРеквизита.Добавить(Тип("Строка"));
        КС=Новый КвалификаторыСтроки(32);
        ОписаниеТиповДляРеквизита = Новый ОписаниеТипов(ТипыРеквизита,,,,КС);
    
        НовыйРеквизит = Новый РеквизитФормы(
            "ПРОФИТ_КодОбъекта",       // имя
            ОписаниеТиповДляРеквизита,     // тип
            "Список",       // путь
            "Код объекта",                                               // заголовок
            Истина);                                                         // сохраняемые данные
        ДобавляемыеРеквизиты = Новый Массив;
        ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
        Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);

        // Добавить элемент формы и связать его с реквизитом.
        НовыйЭлемент = Форма.Элементы.Вставить("ПРОФИТ_КолонкаКодОбъекта", Тип("ПолеФормы"), Форма.Элементы.Список, Форма.Элементы.Код);
        НовыйЭлемент.ПутьКДанным = "Список.ПРОФИТ_КодОбъекта";
        НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
Но при исполнении данного кода выдает сообщение:
"ОбщийМодуль.ПРОФИТ_РаботаСФормамиСервер.Модуль(73)}: Ошибка при вызове метода контекста (ИзменитьРеквизиты)
        Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
по причине:
Недопустимый путь к реквизиту. Путь: "Список""
Подскажите пожалуйста, как отглючить эту проблему?
1 Рэйв
 
24.04.17
08:55
а по человечески вывести через конфигуратор никак?
2 megabax
 
24.04.17
09:00
(1) Никак, такое требование заказчика, чтобы потом было удобно обновлять.
Но, собственно, я решил проблему, так как это форма списка справочника, то вот такой код
        ТипыРеквизита = Новый Массив;
        ТипыРеквизита.Добавить(Тип("Строка"));
        КС=Новый КвалификаторыСтроки(32);
        ОписаниеТиповДляРеквизита = Новый ОписаниеТипов(ТипыРеквизита,,,,КС);
    
        НовыйРеквизит = Новый РеквизитФормы(
            "ПРОФИТ_КодОбъекта",      // имя

            ОписаниеТиповДляРеквизита,    // тип

            "Список",      // путь

            "Код объекта",                                              // заголовок

            Истина);                                                        // сохраняемые данные

        ДобавляемыеРеквизиты = Новый Массив;
        ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
        Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
Не нужен, надо только
        // Добавить элемент формы и связать его с реквизитом.

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