|   |   | 
| 
 | Добавление колонок в табличную часть документа | ☑ | ||
|---|---|---|---|---|
| 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, Спасибо вам большое. Теперь буду знать. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |