Имя: Пароль:
1C
1С v8
Программное создание табличного поля на форме и связь его с табличной частью
0 Solitar
 
09.08.13
10:16
Уже убил несколько часов, чтобы связать программно добавленное табличное поле с табличной частью

    НовыйЭлемент = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"), "ТЧ_Перечисление",  Истина, ТекущаяПанель);

    НовыйЭлемент.Верх = 6;
    НовыйЭлемент.Высота = 19;
    НовыйЭлемент.Лево = 6;
    НовыйЭлемент.Ширина = 800;
    НовыйЭлемент.Данные = "NEW__Перечисление";
    НовыйЭлемент.ТолькоПросмотр = Ложь;
    //НовыйЭлемент.ИзменятьПорядокСтрок = Истина;
    НовыйЭлемент.ИзменятьСоставСтрок = Истина;


    
    //НовыйЭлемент.СоздатьКолонки();
    
    
    НовоеПоле= НовыйЭлемент.Колонки.Вставить(0, "Ведомость");
    //НовоеПоле.Имя = "Ведомость";
    НовоеПоле.УстановитьЭлементУправления(Тип("ПолеВвода"));
    НовоеПоле.Данные = "Ведомость";

Пробовал просто через НовыйЭлемент.СоздатьКолонки() . В примерах, которые я нашел, там так и было написано...

ЧЯДНТ? Не ужели нужно добавлять все колонки табличной части в табличное поле руками?
1 Solitar
 
09.08.13
10:58
чтобы все работало, нужно данный код размещать ПриОткрытии или ПередОткрытием.
2 Solitar
 
09.08.13
14:42
появились новые вопросы:

1) как к добавленным колонкам назначит события? ведь у самой колонки нет никаких событий, а есть только у полей ввода.

2) как обратиться к полю ввода табличного поля через форму?

Сейчас убрал метод НовыйЭлемент.СоздатьКолонки()

и сделал через

НовыйЭлемент.Колонки.Вставить(0, "Ведомость");
    НовыйЭлемент.Колонки.Колонка1.УстановитьЭлементУправления (тип("ПолеВВода"));
    НовыйЭлемент.Колонки.Колонка1.Данные = "Ведомость";
    НовыйЭлемент.Колонки.Колонка1.Положение = ПоложениеКолонки.ВТойЖеКолонке;
3 cw014
 
09.08.13
14:49
УстановитьЭлементУправления
4 cw014
 
09.08.13
14:49
А потом обращайся к элементу управления через ".ЭлементУправления"
5 Solitar
 
12.08.13
16:22
в документе "Платежное поручение исходящее" есть панель "ПанельПлатежи", у нее есть страницы " - Перечисление ЗП, Выдача подотчетнику и т.д.

Я программно добавил свою страницу на данную панель, но как разместить на ней новые реквизиты, которые тоже создаются программно?  Т.к. в методе "ЭлементыФормы.Добавить" последний параметр это <Поместить На>

"<ПоместитьНа> (необязательный)
Тип: Панель; ПолеТабличногоДокумента.
Определяет, какой панели формы или какому табличному документу принадлежит создаваемый элемент. Если указана панель, то добавляемый элемент размещается на текущей странице панели. Если не указан, создаваемый элемент будет принадлежать непосредственно форме.  "

Следовательно, никак нельзя связать новые элементы с страницей?

Как временное решение сделал свою новую панель поверх "ПанельПлатежи".
6 Solitar
 
13.08.13
09:57
ап. мб есть какие то обходные пути?
7 Рэйв
 
13.08.13
09:58
(0)А зачем тебе эти танцы с бубном?
8 Рэйв
 
13.08.13
09:58
(0)добавь Таб. поле в конфигураторе и скрывай/показывай в зависимости от желания
9 Solitar
 
13.08.13
11:21
(8) нельзя трогать форму.

и еще, нельзя переопределить событие модуля объекта? Про подписка на события я знаю.

пробовал через ДобавитьОбработчик

ДобавитьОбработчик ЭтотОбъект.ПриЗаписи, Test (Ложь)
и
ДобавитьОбработчик ЭтотОбъект.ПриЗаписи, TEST
10 hhhh
 
13.08.13
12:00
(5) ну задайте текущую страницу на панели, а потом привязывайте таб поле.
11 Solitar
 
13.08.13
12:24
(10) тип тек страницы <> типу "Панель" на который можно добавлять новые элементы формы.
Независимо от того, куда вы едете — это в гору и против ветра!