Имя: Пароль:
1C
 
Как добавить строку в табличное поле и заполнить ее данными?
0 Владислав
 
31.10.06
06:44
есть внешняя обработка, у нее есть табличная часть, когда я размещаю табличную часть на форме получается Табличное поле, где в данных написано имя Табличной части, а в значении - ВнешняяОбработка.... я создал четыре колонки интерактивно, а добавить строки не могу, как это сделать, вроде все по книжке делаю, а все равно не выходит.

вот код:

тч=ЭлементыФормы.тзТабличнаяЧасть
тч.ДобавитьСтроку();
тч.ДобавитьСтроку();
тч.ДобавитьСтроку();
тч.ДобавитьСтроку();
тч.ДобавитьСтроку();

ни одна строка не добавляется,
1 ТелепатБот
 
гуру
31.10.06
06:44
2 Владислав
 
31.10.06
06:51
еще варианты будут?
3 TormozIT
 
гуру
31.10.06
06:53

тч=ЭлементыФормы.тзТабличнаяЧасть
тч.ДобавитьСтроку();
тч.ТекущиеДанные.Колонка1 = Значение1;
...
4 Владислав
 
31.10.06
06:54
(3) пишет "Значение не является значением объектного типа (кВид)" кВид - это ижентификатор колонки
5 Владислав
 
31.10.06
06:54
идентификатор ;))
6 Tristan
 
31.10.06
06:57
я конечно затрудняюс сказать что это: "а в значении - ВнешняяОбработка", если это имеется ввиду поле "Тип значения", то там должно стоять как минимум ТаблицаЗначений. И то что в 0 будет работать.
7 Владислав
 
31.10.06
06:59
(6) я согласен, тогда скажите как мне поступить: есть табличная часть, мне нужно разместить ее на форме и заполнить некоторыми данными перед открытием.
8 Tristan
 
31.10.06
07:01
(7) улыбнуло =) Перед открытием табличной части не существует, если она не реквизит обработки, используй процедуру ПриОткрытии, или объяви ее реквизитом обработки
9 Zlodey-Drive
 
31.10.06
07:03
Процедура ПриОткрытии()
   
   Для каждого СтрокаМетаданное Из Метаданные.Документы Цикл
       Если Строка(СтрокаМетаданное.Проведение) = "Разрешить" Тогда
           НоваяСтрока = ТаблицаДокументы.Добавить();
           НоваяСтрока.Представление = СтрокаМетаданное.Синоним;
           НоваяСтрока.ИмяДокумента = СтрокаМетаданное.Имя;
           НоваяСтрока.Выводить = Истина;
           Если СтрокаМетаданное.Реквизиты.Найти("Контрагент") <> Неопределено И СтрокаМетаданное.Реквизиты.Найти("Договор") <> Неопределено Тогда
               НоваяСтрока.ЕстьДоговор = Истина;
           Иначе
               НоваяСтрока.ЕстьДоговор = Ложь;
           КонецЕсли;
       КонецЕсли;
   КонецЦикла;
   ОстанавливатьсяПоОшибке = Истина;
   
КонецПроцедуры


внешняя обработка проведения документов, есть таб поле ТаблицаДокументы вней выводятсы все доки
10 Tristan
 
31.10.06
07:04
(9) да (0) просто пытался на форме сделать что-то до открытия формы
11 Владислав
 
31.10.06
07:05
(10) я пытаюсь заполнить ТЧ в процедуре ПриОткрытии()
12 Zlodey-Drive
 
31.10.06
07:06
(11) Чем хочешь заполнить та
13 Владислав
 
31.10.06
07:07
в одной колонке данные строкового типа, в трех  - Число
14 Zlodey-Drive
 
31.10.06
07:10
Откуда ты их берешь
15 Владислав
 
31.10.06
07:12
(14) ни откуда, просто нужно заполнить 15 строк значениями, без цикла, т.е. для  каждой строки вручную нужно установить значения
16 Владислав
 
31.10.06
07:42
1С 8.0 уже далеко не первый день существует, нежуели никто не знает?
17 Zlodey-Drive
 
31.10.06
07:43
Процедура ПриОткрытии()
   // Вставить содержимое обработчика.
   Для i=1 По 15 Цикл
    НоваяСтрока = Пример.Добавить();
    новаястрока.Колонка1=" ";
      новаястрока.Колонка2=" ";
      новаястрока.Колонка3=" ";
      новаястрока.Колонка4=" ";

      КонецЦикла;
КонецПроцедуры
первая колонка тип данных строка, остальные число
18 Владислав
 
31.10.06
07:44
(17) а Пример это что, имя Табличного поля?
19 Zlodey-Drive
 
31.10.06
07:44
Да
20 Владислав
 
31.10.06
07:48
у него же нет метода Добавить(), есть ДобавитьСтроку()
21 it086
 
31.10.06
07:54
метод Добавить() есть у табличной части или у таблицы значений. Зачем добавлять строки в табличное поле? Лучше сразу в источник данных для этого таб.поля.
22 Владислав
 
31.10.06
08:04
обращаясь к табличной части МояТабличнаяЧасть методом Добавить удалось добавить строки, it086 большое спасибо, теперь эти строки нужно заполнить данными, попробовал тремя способами:

НоваяСтрока=МояТабличнаяЧасть.Добавить();
НоваяСтрока.кВид="Б";

,

МояТабличнаяЧасть.Добавить();
МояТабличнаяЧасть.кВид="Б";

,

МояТабличнаяЧасть.Добавить();
МояТабличнаяЧасть["кВид"]="Б";

все варианты не работают
23 it086
 
31.10.06
08:07
табличная часть должна содержать соответствующие реквизиты (не путайте с колонками таб.поля)
24 Владислав
 
31.10.06
08:08
точно
25 Владислав
 
31.10.06
08:11
it086 спасибо большое, все получилось
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн