|
Добавление колонок в табличную часть документа | ☑ | ||
---|---|---|---|---|
0
webDoktor
04.10.11
✎
16:05
|
<b>1С 8.1</b>
<b>Задача:</b> При загрузки формы, добавить 100 новых колонок в табличное поле. <b>Пытаюсь решить следующим образом задачу:</b> Счетчик = 0; Пока Счетчик <= 100 Цикл ЭлементыФормы.Таблица.Колонки.Добавить("Колонка"+Счетчик); Счетчик = Счетчик + 1; КонецЦикла; Колонки создаются. <b>Проблема:</b> После того, как колонки созданы, создаю строку, но в данную строку невозможно внести данные. <b>Вопрос:</b> Как создать программно 100 новых колонок/столбцов/полей в табличной части документа, чтобы в дальнейшем в них можно было записать данные НЕ программно, а визуально, с использованием формы, где располагается данная табличная часть? |
|||
1
Scooter
04.10.11
✎
16:06
|
(0)свяжи с данными
|
|||
2
Scooter
04.10.11
✎
16:07
|
ТекКолонка = ДокФорма.ЭлементыФормы.Товары.Колонки.Добавить("МестоХраненияПолучатель", "Место хранения получатель");
ТекКолонка.Данные = "МестоХраненияПолучатель"; ТекКолонка.УстановитьЭлементУправления(Тип("ПолеВвода")); ТекКолонка.ЭлементУправления.КнопкаВыбора = Истина; ТекКолонка.ЭлементУправления.ВыборГруппИЭлементов = ИспользованиеГруппИЭлементов.Элементы; ТекКолонка.ЭлементУправления.УстановитьДействие("НачалоВыбора", Новый Действие("ТоварыМестоХраненияПолучательНачалоВыбора")); |
|||
3
zbv
04.10.11
✎
16:08
|
в качестве данных табличного поля не использовать табличную часть, а использовать таблицу значений.
|
|||
4
SoftIce
04.10.11
✎
16:49
|
или так
ТабЧасть - реквизит формы типа ТаблицаЗначений Для к = 1 по 10 Цикл НовКолонка = ТабЧасть.Колонки.Добавить("Колонка"+к, Новый ОписаниеТипов("Строка")); КонецЦикла; ЭлементыФормы.ТабЧасть.СоздатьКолонки(); |
|||
5
webDoktor
04.10.11
✎
16:49
|
> ТекКолонка.Данные = "МестоХраненияПолучатель";
Что это за параметр? Как я понимаю, данные должны браться из источника "МестоХраненияПолучатель"? Это что, справочник? Остальное все понятно. Сделал так (добавил поле с типом "ПолеВвода"): ТекКолонка = ЭлементыФормы.Таблица.Колонки.Добавить("Поле", "Новое поле"); ТекКолонка.УстановитьЭлементУправления(Тип("ПолеВвода")); Колонка создалась. Данные можно вводить. Проблема (прямо объясняю пошагово): Добавить строчку (в панели есть специальная кнопочка). Далее заполняю реквизит "Наименование" и затем перехожу к созданной колонке "Поле". Два раза кликаю по месту, куда нужно вводить данные, ввожу данные. Затем нажимаю Enter и введенные данные пропадают. Причем, если снова два раза кликнуть на это поле, то как мы видим, данные есть. То есть, данные можно ввести и отредактировать, но данные невозможно просто просмотреть. |
|||
6
SoftIce
04.10.11
✎
16:52
|
Попробуй (4)
|
|||
7
webDoktor
04.10.11
✎
16:52
|
SoftIce,
Если делать так: Для к = 1 по 10 Цикл НовКолонка = Таблица.Колонки.Добавить("Колонка"+к, Новый ОписаниеТипов("Строка")); КонецЦикла; ЭлементыФормы.Таблица.СоздатьКолонки(); То возникает ошибка: Поле объекта не обнаружено (Колонки). А если делать так: Для к = 1 по 10 Цикл НовКолонка = ЭлементыФормы.Таблица.Колонки.Добавить("Колонка"+к, Новый ОписаниеТипов("Строка")); КонецЦикла; ЭлементыФормы.Таблица.СоздатьКолонки(); То колонки вовсе не добавляются. |
|||
8
Asmody
04.10.11
✎
16:53
|
(0) [Как создать программно 100 новых колонок/столбцов/полей в табличной части документа] — ответ: никак. реквизиты табличных частей создаются только в конфигураторе
|
|||
9
SoftIce
04.10.11
✎
16:57
|
На форму добавляем ТабличноеПоле. Имя=Таблица; Данные=Таблица. Создается реквизит формы с тем же именем.
Процедура ПриОткрытии() Для к = 1 по 10 Цикл НовКолонка = Таблица.Колонки.Добавить("Колонка"+к, Новый(ОписаниеТипов("Строка")); КонецЦикла; ЭлементыФормы.Таблица.СоздатьКолонки(); КонецПроцедуры Обрати внимание: колонки добавляешь не в элемент формы а в реквизит формы |
|||
10
webDoktor
04.10.11
✎
16:58
|
Asmody,
Предположим, если создавать, допустим электронный журнал для класса. Все помнят его? Много-много-много полей, где каждое поле равняется дате занятия и в этой колонке выставляются оценки. Допустим, там 50 колонок. Получается, нужно создавать 50 реквизитов? |
|||
11
Asmody
04.10.11
✎
16:59
|
(9) ты вопрос читал? он не хочет данные программно записывать, хочет чтобы «само». Поэтому ответ «никак».
|
|||
12
SoftIce
04.10.11
✎
16:59
|
Если ТабличноеПоле связано с ТабличнойЧастью документа - то действительно никак.
|
|||
13
Asmody
04.10.11
✎
17:00
|
(10) как один из возможных вариантов — да. если хочется, чтобы «само»
|
|||
14
SoftIce
04.10.11
✎
17:01
|
Электронный - не бумажный. Оценки выставлять каким-то документом и записывать в РС. Потом запросом выбирать и программно заполнять в желаемую форму
|
|||
15
webDoktor
04.10.11
✎
17:03
|
Asmody,
SoftIce, Спасибо вам большое. Теперь буду знать. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |