Имя: Пароль:
1C
1С v8
Программное создание табличного поля
,
0 thomY100
 
29.01.13
14:35
Добрый день, хочу на форме программно создать ТП, с данными из ТЧ документа, пишу код

ТабличноеПоле = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"),"НовоеТП", Истина, ЭлементыФормы.ОсновнаяПанель);
ТабличноеПоле.Данные = "ТЧ";
ТабличноеПоле.Значение = ТЧ.Выгрузить();  
ТабличноеПоле.Верх = 24;
ТабличноеПоле.Лево = 6;
ТабличноеПоле.Ширина = ЭлементыФормы.ОсновнаяПанель.Ширина-40;
ТабличноеПоле.Высота = ЭлементыФормы.ОсновнаяПанель.Высота-50;
       
ТабличноеПоле.СоздатьКолонки();

При этом создается пустое табличное поле, без колонок, в чем проблема?
еще заметил, что при
ТабличноеПоле.Значение = ТЧ.Выгрузить();  
ТабличноеПоле.Значение так и остается Неопределено...
1 Reset
 
29.01.13
14:36
Эта строка
ТабличноеПоле.Значение = ТЧ.Выгрузить();
вообще не нужна
2 thomY100
 
29.01.13
14:37
пробовал без нее, не работает
3 Wobland
 
29.01.13
14:46
в ТЧ что-нибудь положи, а (1) убери
4 thomY100
 
29.01.13
14:48
не помогло
5 Reset
 
29.01.13
14:51
(4) Начинай уже колоться, что за форма, что за "данные ТЧ" документа, как получаешь и используешь документ-объект.
Тыкать внебо советами совсем лень
6 lopus
 
29.01.13
14:53
Это УФ?
7 thomY100
 
29.01.13
14:53
форма обычная, ТЧ документа любая(пробоавл и уже существующие отразить и свою, новую - пробовал одно поле типа текст в нем делать), код при открытии срабатывает
8 Wobland
 
29.01.13
14:53
9 lopus
 
29.01.13
14:54
А понял нет.
10 Reset
 
29.01.13
14:56
вот по мотивам твоего, рабочий код (панель я поленился создавать)

   // Объект - реквизит обработки с типом ДокументОбъект.ЗаказПокупателя
   ТабличноеПоле = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"),"НовоеТП", Истина); // , ЭлементыФормы.ОсновнаяПанель
   ТабличноеПоле.Данные = "Объект.Товары";
   ТабличноеПоле.Верх = 24;
   ТабличноеПоле.Лево = 6;
   ТабличноеПоле.Ширина = Ширина-40;
   ТабличноеПоле.Высота = Высота-50;
   
   Объект=Документы.ЗаказПокупателя.НайтиПоНомеру("Ататата",ТекущаяДата()).ПолучитьОбъект();
   ТабличноеПоле.Данные="Объект.Товары";
   ТабличноеПоле.СоздатьКолонки();
11 thomY100
 
29.01.13
14:56
не могу понять почему у меня не работает, код тот же
12 Wobland
 
29.01.13
14:56
(10) лентяй ;)
13 Reset
 
29.01.13
14:57
реквизит формы* (не обработки, но можно и обработки по вкусу)
14 Reset
 
29.01.13
14:58
(7) Форма обычная - ни о чем ответ.
Форма обработки, форма документа? Общая форма?
15 Reset
 
29.01.13
14:59
(11) Код нихрена не тот же
16 thomY100
 
29.01.13
15:00
может это влияет, но перед добавление ТП, я создаю новую страницу панели, на которую его добавляю

НоваяСтраница = ЭлементыФормы.ОсновнаяПанель.Страницы.Вставить(7, "НоваяСтраница", "Использованный бюджет");
       
ЭлементыФормы.ОсновнаяПанель.ТекущаяСтраница = НоваяСтраница ;
17 Reset
 
29.01.13
15:00
(10) ТабличноеПоле.Данные два раза инициализируется, это не нужно - результат копипаста
18 toypaul
 
гуру
29.01.13
15:00
ТабличноеПоле.Данные = "ТЧ"; вот это поменять как в (11) на

ТабличноеПоле.Данные = "ТвойОбъект.ТЧ";
19 toypaul
 
гуру
29.01.13
15:02
что за форма хоть? основной реквизит формы если задан, то должно работать так

ТабличноеПоле.Данные = "ТЧ"
20 Reset
 
29.01.13
15:03
(19) "Обычная" форма, что пристал :D
21 thomY100
 
29.01.13
15:04
форма документа, не управляемая, то еще про форму интересует?)
22 thomY100
 
29.01.13
15:05
основной реквизит формы ДокументОбъект
23 Reset
 
29.01.13
15:11
(22) Тогда должго работать (0), если конечно, табличная часть называется "ТЧ".
24 Reset
 
29.01.13
15:12
Хотя иначе ошибку при инициализации данных давало б
25 thomY100
 
29.01.13
15:12
да в том-то и проблема, причем в другом доке работает, в чем различие не пойму
26 Reset
 
29.01.13
15:13
Короче, по представленной тобой информации (0) рабочий код с учетом (1)
Думай что еще не рассказал :)
27 thomY100
 
29.01.13
15:15
(1) уже сам добавлял от безысходности))
не знаю что еще может повлиять
28 toypaul
 
гуру
29.01.13
15:19
попробуй ЭлементыФормы.НовоеТП.СоздатьКолонки()
29 thomY100
 
29.01.13
15:21
разобрался, сам дурак называется, процедуру вызывал из тела модуля формы, а не при открытии, поля ввода так можно добавлять, а вот табличное поле колонки не создает