Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Заполнение созданных программно реквизитов

Заполнение созданных программно реквизитов
Я
   yyyuuu
 
22.08.18 - 12:30
здравствуйте ребята.
Управляемая форма.Программно создаю на форме таблицу значений и ее реквизиты.
Вот столкнулся с непониманием, подскажите пожалуйста. Хочу заполнить эти реквизиты. В момент когда они создались или создаются записать в них значение


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

    КД = Новый КвалификаторыДаты(ЧастиДаты.Время);            

    МассивКД = Новый Массив;

    МассивКД.Добавить(Тип("Дата"));

    ОписаниеТиповВремя = Новый ОписаниеТипов(МассивКД, , ,КД);

        
    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("С");
    ТЗ.Колонки.Добавить("До");
    ТЗ.Колонки.Добавить("ФИО");
    ТЗ.Колонки.Добавить("Примечание")//ФИО и Примечание - строки


    Для Каждого Колонка Из ТЗ.Колонки Цикл

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

        НовыйЭлемент = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"), ТаблицаПолейВыбора);
        НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
        НовыйЭлемент.ПутьКДанным = "ТаблицаРасписания." + Колонка.Имя;
        НовыйЭлемент.Ширина = 10;
    КонецЦикла;
    ТаблицаПолейВыбора.УстановитьДействие("Выбор","ТЗНВыбор");
 КонецПроцедуры
 
 
   yyyuuu
 
1 - 22.08.18 - 16:27
Вроде разобрался завтра вам покажу)
   yyyuuu
 
2 - 23.08.18 - 09:47
Функция ДинамичноСоздатьТЗ(Таблица)
    //

    //Добавим таблицу: Сначала саму таблицу, потом колонку

    //Ищем если форма уже создана надо ее удалить если нет создаем

    ЭлементТаблица = Элементы.Найти("ТаблицаНаФорме");
    ЭлементыТЗ     = Элементы.Найти("ТаблицаЗначений");
    //

    Если ЭлементТаблица <> Неопределено Тогда
        //

        Элементы.Удалить(ЭлементТаблица);
        //

    КонецЕсли;
    //

    Реквизиты = Новый Массив;
    //**

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

    //

    Реквизиты.Добавить(Новый РеквизитФормы("ТаблицаНаФорме", Новый ОписаниеТипов("ТаблицаЗначений")));
    //

    Для Каждого Ст ИЗ Таблица.Колонки Цикл
        //

        Реквизиты.Добавить(Новый РеквизитФормы(Ст.Имя, Ст.ТипЗначения, "ТаблицаНаФорме"));
        //

    КонецЦикла;
    //

    //Добавим Реквизиты на форму    

    ИзменитьРеквизиты(Реквизиты);
    //

    //Добавим элементы формы

    Таб = Элементы.Добавить("ТаблицаНаФорме", тип("ТаблицаФормы"));
    Таб.ПутьКДанным = "ТаблицаНаформе";
    //

    //запретим менять положение строк и сами строки, отключим командную панель

    //

    Таб.ИзменятьСоставСтрок       = Ложь;
    Таб.ИзменятьПорядокСтрок      = Ложь;
    Таб.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;
    //

    Для Каждого СТ ИЗ Таблица.Колонки Цикл
        //

        Рек = Элементы.Добавить("Колонка" + Ст.Имя, Тип("ПолеФормы"), Таб);
        //

        Рек.Вид            = ВидПоляФормы.ПолеНадписи;
        Рек.ПутьКДанным = "ТаблицаНаФорме" + "." + Ст.Имя;
        Рек.Заголовок   = Ст.Имя;
    КонецЦикла;
    //

    //Заполним Таблицу

    ЗначениеВРеквизитФормы(Таблица,"ТаблицаНаФорме");
    //

КонецФункции

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует