Имя: Пароль:
1C
 
Почему не добавляется колонка в таблицу значений на форме?
0 Хосе
 
17.08.15
18:02
ТЗ = ДанныеФормыВЗначение(УточнениеНоменклатуры, Тип("ТаблицаЗначений"));
    ТЗ.Колонки.Добавить("_СерияНаименование");
    ЗначениеВДанныеФормы(ТЗ, УточнениеНоменклатуры);
    НСтр = УточнениеНоменклатуры.Добавить();
    НСтр._СерияНаименование = "222";


Выдает ошибку на последней строчке, такой колонки нет.
1 Nuobu
 
17.08.15
18:03
(0) На форме надо было создать колонку.
2 Nuobu
 
17.08.15
18:04
(0) ЗначениеВДанныеФормы(ТЗ, УточнениеНоменклатуры);
Оно в этой строке твою колонку проигнорировало, будто ты сделал УтонченныеДанные.Загрузить(ТЗ);
3 Кокос
 
17.08.15
18:06
(0) вот что я накопал в свое время

//считываем первую строку и генерируем колонки    
    МассивТипаВыбора = Новый Массив;
    МассивТипаВыбора.Добавить(Тип("ТаблицаЗначений"));
    ОписаниеТипаВыбора = Новый ОписаниеТипов(МассивТипаВыбора);
    МассивРеквизитов = Новый Массив;
    МассивРеквизитов.Добавить(Новый РеквизитФормы("Таблица", ОписаниеТипаВыбора, "", "ТЗН"));
    Столбцы = ПолучитьИзВременногоХранилища(ПолучитьСписокКолонок());  
    Если Столбцы.Количество() = 0 Тогда
        Возврат;
    КонецЕсли;
    Счк = 0;
    ТЗ = Новый ТаблицаЗначений;
    Для  Счк = 0 По Столбцы.Количество()-1 Цикл
        НоваяКолонка = ТЗ.Колонки.Добавить(Столбцы[Счк].Значение.Реквизит);
    КонецЦикла;
    Для Каждого Колонка Из ТЗ.Колонки Цикл
        МассивРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения,"Таблица"));
    КонецЦикла;
    ИзменитьРеквизиты(МассивРеквизитов);      
    ТаблицаПолейВыбора = Элементы.Добавить("ТЗН", Тип("ТаблицаФормы"));
    ТаблицаПолейВыбора.ПутьКДанным = "Таблица";
    ТаблицаПолейВыбора.Отображение = ОтображениеТаблицы.Список;
4 Кокос
 
17.08.15
18:15
Для Каждого Колонка Из ТЗ.Колонки Цикл
        НовыйЭлемент = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"), ТаблицаПолейВыбора);      
        НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
        НовыйЭлемент.ПутьКДанным = "Таблица." + Колонка.Имя;
    КонецЦикла;
    Для Каждого Колонка Из ТЗ.Колонки Цикл
        НовыйЭлемент = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"), ТаблицаПолейВыбора);      
        НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
        НовыйЭлемент.ПутьКДанным = "Таблица." + Колонка.Имя;
    КонецЦикла;
5 Хосе
 
18.08.15
12:07
Гм, разобрался, нужно просто добавлять как новые рекизиты формы, если таблица с реквизитами прописана на закладке "Реквизиты".

    ДобавляемыеРеквизиты = Новый Массив();
    ОписаниеТиповДляРеквизита = Новый ОписаниеТипов("Строка",,Новый КвалификаторыСтроки(150, ДопустимаяДлина.Переменная));
    РеквизитТаблицы = Новый РеквизитФормы("_СерияНаименование", ОписаниеТиповДляРеквизита, "УточнениеНоменклатуры");
    ДобавляемыеРеквизиты.Добавить(РеквизитТаблицы);
    ИзменитьРеквизиты(ДобавляемыеРеквизиты);
    
    ОписаниеТиповДляРеквизита = Новый ОписаниеТипов("Дата",,,Новый КвалификаторыДаты(ЧастиДаты.Дата));
    РеквизитТаблицы = Новый РеквизитФормы("_ГоденДо", ОписаниеТиповДляРеквизита, "УточнениеНоменклатуры");
    ДобавляемыеРеквизиты.Добавить(РеквизитТаблицы);
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс