Имя: Пароль:
1C
 
Программное создание группы и помещение в нее программно созданную таблицу
0 NIGHTHUNTER
 
17.03.21
02:58
Есть обработка с формой. На форме выводятся разные группы, страницы.
Я программно создаю таблицу и вывожу ее на форму. Как программно создать группу, и вывести таблицу в этой группе?
1 NIGHTHUNTER
 
17.03.21
03:01
2 NIGHTHUNTER
 
17.03.21
03:20
Почему идет ошибка

{ВнешняяОбработка.ПанельЗаготовок_0_6.Форма.Форма.Форма(372)}: Ошибка при вызове метода контекста (Добавить)
    Таб             = Элементы.Добавить("ТаблицаНаФорме", Тип("ТаблицаФормы"), ГруппаПрограммноСозданнаяТаблица);
по причине:
Недопустимое значение параметров
Недопустимое значение параметров
3 NIGHTHUNTER
 
17.03.21
03:35
// СОЗДАНИЕ ГРУППЫ НА ФОРМЕ -------------------------------------------->>
    ПрограммноСозданнаяГруппаДляТаблиц           = Элементы.Добавить("ПрограммноСозданнаяГруппаДляТаблиц", Тип("ГруппаФормы"));    // Добавляет группу на форму
    ПрограммноСозданнаяГруппаДляТаблиц.Заголовок = "Программно созданная группа для таблиц";    
    // СОЗДАНИЕ ДИНАМИЧЕСКОЙ ТАБЛИЦЫ ЗНАЧЕНИЙ НА ФОРМЕ --------------------->>
    // 1).
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    Склады.Ссылка КАК Ссылка
                   |ИЗ
                   |    Справочник.Склады КАК Склады";
    Рез = Запрос.Выполнить();
    Если Не Рез.Пустой() Тогда
        ТзСклады = Рез.Выгрузить();
    КонецЕсли;
    // 2).
    Реквизиты = Новый Массив;
    Реквизиты.Добавить(Новый РеквизитФормы("ТаблицаНаФорме", Новый ОписаниеТипов("ТаблицаЗначений")));
    Для каждого Ст Из ТзСклады.Колонки Цикл
        Реквизиты.Добавить(Новый РеквизитФормы(Ст.Имя, Ст.ТипЗначения, "ТаблицаНаФорме"));                  
    КонецЦикла;                      
    // 3).
    ИзменитьРеквизиты(Реквизиты);
    // 4).
    Таб             = Элементы.Добавить("ТаблицаНаФорме", Тип("ТаблицаФормы"), ПрограммноСозданнаяГруппаДляТаблиц);
    Таб.ПутьКДанным = "ТаблицаНаФорме";
    Таб.ИзменятьСоставСтрок=Ложь;
    Таб.ИзменятьПорядокСтрок=Ложь;
    Таб.ПоложениеКоманднойПанели=ПоложениеКоманднойПанелиЭлементаФормы.Нет;
    Для каждого Ст Из ТзСклады.Колонки Цикл
        Рек = Элементы.Добавить("Колонка" + Ст.Имя, Тип("ПолеФормы"), Таб);
        Рек.Вид=ВидПоляФормы.ПолеНадписи;
        Рек.ПутьКДанным = "ТаблицаНаФорме" + "." + Ст.Имя;
        Рек.Заголовок = Ст.Имя;
    КонецЦикла;
    // 5).
    ЗначениеВРеквизитФормы(ТзСклады, "ТаблицаНаФорме");
    // <<---------------------------------------------------------------------
    //
КонецПроцедуры
4 NIGHTHUNTER
 
17.03.21
03:51
создал группу

    // СОЗДАНИЕ ГРУППЫ НА ФОРМЕ -------------------------------------------->>
    ПрограммноСозданнаяГруппаДляТаблиц           = Элементы.Добавить("ПрограммноСозданнаяГруппаДляТаблиц", Тип("ГруппаФормы"), Элементы);    // Добавляет группу на форму
    ПрограммноСозданнаяГруппаДляТаблиц.Заголовок = "Программно созданная группа для таблиц";    
    // << --------------------------------------------------------------------


потом в ней создаю таблицу, почему на этом идет ошибка ?

    Таб             = Элементы.Добавить("ТаблицаНаФорме", Тип("ТаблицаФормы"), ПрограммноСозданнаяГруппаДляТаблиц);
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший