Имя: Пароль:
1C
1С v8
8.1 Динамическая таблица
0 breezee
 
12.09.15
16:38
Нужно на обычной форме создать таблицу, количество колонок которой выбирает сам пользователь, т.е.там есть несколько стандартных колонок и еще несколько колонок добавляемых пользователем. Табилцу создал, но указании типа данных справочник - кнопка выбора не появляется у строки колонки, туда можно писать строку, в общем - что то не так.
1 Брегорьян
 
12.09.15
16:39
а ну и чо?
2 breezee
 
12.09.15
16:41
(1) Как сделать тип у колонок справочника? При описании типов справочник стоит, в отладке у колонки тип "Номенклатура" - наименование справочника, тип значения - описание типов.
3 Брегорьян
 
12.09.15
16:50
(2) не тип колонок сделать, а кнопку выбора у элемента управления
4 breezee
 
12.09.15
16:57
(3) Кнопку выбора добавил, возможности выбора все равно нет, за совет - спасибо!
5 breezee
 
12.09.15
17:00
(3) Спасибо большое! Для поля тоже тип поставил - все заработало.
6 breezee
 
12.09.15
17:05
А можно как-то панель управления как у табличной части к таблице значений привязать(добавить, удалить строки)?
7 breezee
 
12.09.15
17:06
И вообще хрень выходит - если для одной строки колонки выбираю 1 элемент справочника - он подставляется для всей колонки. Как это исправить?
8 Брегорьян
 
12.09.15
17:07
(6) разрешаю
(7) больше такого не писать
9 breezee
 
12.09.15
17:08
(8) Почему не писать?
10 Брегорьян
 
12.09.15
17:09
(9) ну хрень же сделал
11 breezee
 
12.09.15
17:11
(10) А как правильно сделать, подскажите, пожалуйста? Вот код добавления колонок
    КоличествоКолонок = ЭлементыФормы.ТабличноеПоле1.Колонки.Количество()-1;
    Если НЕ ЗначениеЗаполнено(КоличествоКолонок) Тогда КоличествоКолонок = 0;
        КонецЕсли;
    Пока КоличествоКолонок>=0 цикл
    ЭлементыФормы.ТабличноеПоле1.Колонки.Удалить(КоличествоКолонок);
    КоличествоКолонок = КоличествоКолонок -1;    
КонецЦикла;

  КоличествоКолонок = ТабличноеПоле1.Колонки.Количество()-1;
    Если НЕ ЗначениеЗаполнено(КоличествоКолонок) Тогда КоличествоКолонок = 0;
        КонецЕсли;
    Пока КоличествоКолонок>=0 цикл
    ТабличноеПоле1.Колонки.Удалить(КоличествоКолонок);
    КоличествоКолонок = КоличествоКолонок -1;    
    КонецЦикла;


    Для Итератор=1 По КолСеместров цикл
         ТабличноеПоле1.Колонки.Вставить(Итератор-1,"строка" + Строка(Итератор), Новый ОписаниеТипов("СправочникСсылка.Числа"));
        
        Колонка =ЭлементыФормы.ТабличноеПоле1.Колонки.Вставить(Итератор-1,"строка" + Строка(Итератор), Новый ОписаниеТипов("СправочникСсылка.Числа"));
        Колонка.элементУправления.КнопкаВыбора = Истина;
        Колонка.элементУправления.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Числа");
    КонецЦикла;
12 Брегорьян
 
12.09.15
17:15
брр... зачем два раза вставляешь?
13 Брегорьян
 
12.09.15
17:15
>СправочникСсылка.Числа
есть подозрение на ересь
14 breezee
 
12.09.15
17:18
(12) Первый раз для табличного поля а второй раз для элемента формы? Или для элемента формы достаточно(пытался сделать чтобы работало)
(13)Первое попавшееся название, которое пришло в голову. Потом буду это исправлять, сейчас нужно чтобы просто работало то что описал в 1 посте
15 RomanYS
 
12.09.15
17:20
ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
16 Брегорьян
 
12.09.15
17:21
(14) да я не про название
17 breezee
 
12.09.15
17:24
(15) Т.е. мне нужно запонить таблицу значений, потом присвоить её табличному полю и вызвать метод создатьколонки()? Спасибо, сейчас попробую.
18 breezee
 
12.09.15
17:34
Колонки создались, кнопка выбора автоматически не появилась. Может потому что тип не справочник,а описание типов? http://i.imgur.com/GfIe91o.png
Код создание тз и заполнение колонок
Тз = новый ТаблицаЗначений;
Для Итератор=1 По КолСеместров цикл
    Тз.Колонки.Вставить(Итератор-1,"строка" + Строка(Итератор), Новый ОписаниеТипов("СправочникСсылка.Числа"));
КонецЦикла;
     ЭлементыФормы.ТабличноеПоле1.Значение = Тз;
    ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
19 Брегорьян
 
12.09.15
17:39
ЭлементыФормы.ТабличноеПоле1.Значение = Тз;
данные же
20 breezee
 
12.09.15
17:42
(19) Данные - это эелементы конфигурации - табличные части, реквизиты и т.д.? Не знаю где в синтаксис помощнике посмотреть, гугл то же не то выдает, так что извините, если ошибся. Как тогда таблицу динамической сделать, если я укажу табличную часть в конфигураторе, которая не может быть динамической?
21 breezee
 
12.09.15
17:45
(20) если я укажу для данных табличную часть в конфигураторе
Простите, описался
22 Брегорьян
 
12.09.15
17:45
(20) данные - это свойство такое. строковое, кстати, а то ты ещё минут 40 долбиться в него будешь
23 Брегорьян
 
12.09.15
17:46
(22) и наверняка ж делается без кода
24 breezee
 
12.09.15
17:57
(22)Спасибо, но я все равно ничерта не понимаю. В синтаксис помощнике написано что выставляется только для элементов изменяющих данные, у меня табличное поле данные документа не изменяет. Да и это строковый тип данных, как Вы написали. Как мне присвоить таблицу значений элементу формы и создать колонки для элемента формы? (23) Как без кода? Я совсем запутался.
25 Брегорьян
 
12.09.15
18:02
твоё ТП изменяет реквизит формы типа ТЗ. ну или должно бы так делать
26 Брегорьян
 
12.09.15
18:03
я ваще ни разу не помню за собой никаких вопросов в первый раз с динамической таблицей на форме. там всё просто же
27 breezee
 
12.09.15
18:07
(26) Ну выводить их легко, просто присвоить ТЗ ТП, а чтобы можно было работать с ними пользователю как с табличной частью - тут хрень начинается(хотя если четно - я кривой). + На обычных формах 2 раз что-то делаю
28 Брегорьян
 
12.09.15
18:11
не надо ничего никуда присваивать. оно всё само делается при добавлении ТП на форму
29 breezee
 
12.09.15
18:17
(28) Я пытался присвоить ТЗ элементу формы, а нужно было самому ТП. Спасибо большое за советы!

Вопрос не по теме - такую простую хрень я решал очень много времени - может программирование в 1с не моё? Или я просто не имею достаточного опыта?
30 Брегорьян
 
12.09.15
18:24
конечно не твоё, если ты сорокалетен и бородат ;)
31 breezee
 
12.09.15
18:29
(30) Ну с бородат ты угадал)) Еще раз спасибо большое за помощь!!!