![]() |
![]() |
![]() |
|
Добавление Колонок в табличнуюЧасть | ☑ | ||
---|---|---|---|---|
0
mzelensky
09.11.09
✎
15:20
|
Здравствуйте! Стоит следующая проблема: имеется справочник, в форме элемента справочника пользователь указывает количество строк и количество колонок, нажимает кнопочку "сформировать" и в результате должно получиться следующее - в табличной части (в этой же форме) должно создаться необходимое количество колонок ( (колонка наименования и колонка количества)*число колонок введенное пользователем ) и затем необходимое количество строк. Как создать колонку, я знаю, но у меня не получается определить этой колонке ТИП ЗНАЧЕНИЯ (мне нужно чтобы у колонки Наименования была ссылка на элемент другого справочника, а у колонки Количество - число). Подскажите плиз, как это сделать!?!?!?
И еще, можно ли использовать вместо табличной части ТабличноеПоле? |
|||
1
ТелепатБот
гуру
09.11.09
✎
15:20
|
||||
2
twise
09.11.09
✎
15:26
|
Колонки.Добавить(<Имя>, <Тип>, <Заголовок>, <Ширина>)
|
|||
3
mzelensky
09.11.09
✎
15:38
|
Пишу так:
Для сч=1 по ПолеВвода2 цикл имя="Наименование"+строка(сч); Табличноеполе1.Колонки.Добавить(имя, Новый ОписаниеТипов("СправочникСсылка.Номенклатура"), имя ); имя="Количество"+строка(сч); Табличноеполе1.Колонки.Добавить(имя, Новый ОписаниеТипов("Число"), имя); КонецЦикла; ОШИБКА: неверное имя колонки на первой же итерации!ТабличноеПоле1 - тип значения ТаблицаЗначений. |
|||
4
hhhh
09.11.09
✎
15:46
|
(3) так добавляй в таблицу значений, зачем ты через задницу хочешь добавить?
|
|||
5
vmv
09.11.09
✎
15:46
|
строка(сч) - формат правильно задай без пробелов и разделителей
|
|||
6
vmv
09.11.09
✎
15:50
|
тип сначала составной сделать надо и прописать его при добавлении колонки ОДИН раз.
код вообще бредовый) |
|||
7
mzelensky
09.11.09
✎
15:58
|
Если я делаю вот так:
ТЗ=Новый ТаблицаЗначений(); Для сч=1 по ПолеВвода2 цикл имя="Наименование"+строка(сч); ТЗ.Колонки.Добавить(имя, Новый ОписаниеТипов("СправочникСсылка.Номенклатура"), имя ); имя="Количество"+строка(сч); ТЗ.Колонки.Добавить(имя, Новый ОписаниеТипов("Число"), имя); КонецЦикла; То все создается нормально!!!Код Работоспособный!!! Но, мне нужно сделать тоже самое с Табличнм полем (размещенным в форме), у которого тип данных ТаблицаЗначений. Почему-то, когда я пытаюсь сдела тоже самое с этим Табличным Полем, то выходит ошибка!!! |
|||
8
mzelensky
09.11.09
✎
16:01
|
(5) Никакого формата там создавать не надо в (строка(сч)). Таким образом я просто добиваюсь ,чтобы имена колонок были:
Наименование1 Количество1 Наименование2 Количество2 и так далее!Составной тип тут тоже НЕ нужен. так как одной ячейки соответствует только 1 тип значения (либо ссылка на справочник, либо число)! |
|||
9
73
09.11.09
✎
16:02
|
(7) Потому что ТП не есть ТЗ.
Добавь колонки в ТЗ, а у ТП сделай СоздатьКолонки(). |
|||
10
butterbean
09.11.09
✎
16:02
|
(7) посмотри отладчиком - перед добавлением твоих колонок нету ли уже с такими же именами
|
|||
11
NcSteel
09.11.09
✎
16:04
|
УТ документ Установка Цен (хороший пример)
|
|||
12
mzelensky
09.11.09
✎
16:17
|
В итоге вот так сделал - работает:
Для сч=1 по ПолеВвода2 цикл имя="Наименование"+строка(сч); Если ТабличноеПоле1.Колонки.Найти(имя)<>Неопределено тогда продолжить; КонецЕсли; ТабличноеПоле1.Колонки.Добавить(имя, Новый ОписаниеТипов("СправочникСсылка.Номенклатура"), имя, 30 ); имя="Количество"+строка(сч); ТабличноеПоле1.Колонки.Добавить(имя, Новый ОписаниеТипов("Число"), имя, 16); КонецЦикла; Элементыформы.ТабличноеПоле1.СоздатьКолонки(); Теперь другйо вопрос, как тоже самое сделать с табличной частью???? |
|||
13
asady
09.11.09
✎
16:27
|
в ТП создавай колонки
типа так: ТекКолонка = ЭлментыФормы.табличноеПоле1.Колонки.Добавить(Имя); ТекКолонка.УстановитьЭлементУправления(Тип("ПолеВвода")); ЭУ_Колонки = Колонка.ЭлементУправления; ЭУ_Колонки.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Номенклатура"); |
|||
14
mzelensky
09.11.09
✎
16:39
|
(13) Все добавляется, но глюк такой:
Когда добавляешь строку и указываешь в колонке "Наименование" какой либо элемент справочника Номенклатура, то наименование не отображается в ячейке табличной части. При этом же, если создать скажем 3 строки и хотябы одной из них указать какой-то элемент справочника, то и все остальным строка присвоется это значение :( |
|||
15
asady
09.11.09
✎
16:40
|
(14) эти колонки можно заполнять и читать теперь только ПриПолученииДанных() или ПриВыводеСтроки()
|
|||
16
asady
09.11.09
✎
16:41
|
(15) они же не связаны никак с источником данных твоего ТП :)
ты видимо задачу плохо поставил :) - бывает.... - особенно поначалу |
|||
17
mzelensky
09.11.09
✎
16:44
|
Просто до этого не приходилось сталкиваться с динамическим созданием реквизитов ТабличнойЧасти :( а сейчас вот приперло!
|
|||
18
asady
09.11.09
✎
16:46
|
(17) пойми для это есть источник данных динамический ТЗ например, а Табличная часть это статика.
|
|||
19
mzelensky
09.11.09
✎
16:47
|
Мне нужно, чтобы эти данные хранились в Базе. Т.е. первоначально я ТЗ создам, уже это сделал, но как эти данные записать так, чтобы при повторном вызове элемента справочника (формы где все это делается) все ранее введенные данные остались, а не сбросились в 0?!
|
|||
20
asady
09.11.09
✎
16:48
|
(19) тебе в (11) посоветовали учиться на типовых - пробовал?
|
|||
21
NcSteel
09.11.09
✎
16:50
|
(19) Такое ТЧ делается через 2 ТЧ.
|
|||
22
mzelensky
09.11.09
✎
16:50
|
А там реализована именно эта технология?
Я не люблю лесть в типовые, потому что там много лишнего и тяжело разобраться. |
|||
23
NcSteel
09.11.09
✎
16:56
|
(22) В типовых мало лишнего (просто сделано уиверсально), да реализовано.
|
|||
24
mzelensky
09.11.09
✎
17:09
|
Хорошо, посмотрю. Спасибо! :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |