![]() |
![]() |
![]() |
|
8.1 Динамическая табличная часть | ☑ | ||
---|---|---|---|---|
0
breezee
11.09.15
✎
17:12
|
Нужно на обычной форме создать динамическую табличную часть. Создал её - все нормально создает, но при добавлении новой строки не подставляется тип данных для колок. Нет значка выбора из справочника, просто поле ввода. Хотя тип задаю
Новый ОписаниеТипов("СправочникСсылка.Числа") Еще желательно, хоть и нее обязательно её где-нибудь хранить, т.к. 8.1 в параметрах сеанса не могу. |
|||
1
Лефмихалыч
11.09.15
✎
17:13
|
колонка табличного поля не связана с данными
|
|||
2
Лефмихалыч
11.09.15
✎
17:14
|
про хранить - ваще феерия...
|
|||
3
mehfk
11.09.15
✎
17:20
|
(0) Посмотри как в УТ 10 установка цен номенклатуры сделана. Там на форме ТЗ, у которой динамически добавляются колонки, а в докаументе две табличных части.
|
|||
4
breezee
11.09.15
✎
17:25
|
(1) А как её связать?
ЭлементыФормы.ТабличноеПоле1.Колонки.Вставить(Итератор-1,"строка" + Строка(Итератор), Новый ОписаниеТипов("СправочникСсылка.Числа")); Колонка.данные = Новый ОписаниеТипов("СправочникСсылка.Числа"); Я не так обращаюсь к ней? Данные в колонках просто перестали редактироваться. На метод "данные" не ругаеться, но автоподсказка тоже не сработала. (3) Спасибо, но сейчас нет УТ под рукой. |
|||
5
Nuobu
11.09.15
✎
17:25
|
(4) Создай реквизит с типом ХранилищеЗначения.
|
|||
6
breezee
11.09.15
✎
17:31
|
(5) Спасибо вроде должно получиться. И все же как данные у колонок установить?
|
|||
7
breezee
11.09.15
✎
17:40
|
Что я не так делаю?
http://i.imgur.com/HumOxhN.png |
|||
8
breezee
11.09.15
✎
17:46
|
АП! Почему тип строка то?
|
|||
9
breezee
11.09.15
✎
17:57
|
Я бы мог сделать несколько табличных частей, но неизвестно сколько пользователю колонок понадобиться, так что такой вариант не подойдет.
|
|||
10
breezee
11.09.15
✎
18:10
|
Это даже не гуглиться. Что я не так делаю? Может заново напишу что мне нужно - мне нужно создавать динамическую таблицу значений, для некоторых колонок - разные типы данных. Вот что я делаю
Процедура ТекстПриИзменении(Элемент) КоличествоКолонок = ЭлементыФормы.ТабличноеПоле1.Колонки.Количество()-1; Если НЕ ЗначениеЗаполнено(КоличествоКолонок) Тогда КоличествоКолонок = 0; КонецЕсли; Пока КоличествоКолонок>=0 цикл ЭлементыФормы.ТабличноеПоле1.Колонки.Удалить(КоличествоКолонок); КоличествоКолонок = КоличествоКолонок -1; КонецЦикла; Для Итератор=1 По КолСеместров цикл Колонка = ЭлементыФормы.ТабличноеПоле1.Колонки.Вставить(Итератор-1,"строка" + Строка(Итератор), Новый ОписаниеТипов("Строка")); КонецЦикла; КонецПроцедуры Процедура ТабличноеПоле1ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) // Вставить содержимое обработчика. КонецПроцедуры Процедура Кнопка1Нажатие(Элемент) ЭлементыФормы.ТабличноеПоле1.ДобавитьСтроку(); КонецПроцедуры |
|||
11
breezee
11.09.15
✎
18:14
|
(10) Там было Новый ОписаниеТипов("СправоникСсылка.Числа")); Все равно что так что так не работает.
|
|||
12
Ненавижу 1С
гуру
11.09.15
✎
18:34
|
Справочник числа это мощно
|
|||
13
breezee
11.09.15
✎
18:42
|
(12) Для тестов я создал его не задумываясь, сейчас и самому кажется забавным. Но все же как указать эта данные для поля или что нужно чтобы у колонки тип был справочника?
|
|||
14
breezee
11.09.15
✎
19:37
|
Да почему у меня значение не ссылка на справочник, а описание типов? http://i.imgur.com/ekiaojg.png Я сделал отдельно для элемента формы и для самой таблицы значения и ничерта не пашет. Где я мог накосячить? То же самое делала уже, только на 8.3 и программно заполнял значения. Вот весь код. Если ни кто не ответит пересоздам - заметил что если долго в теме ни кто не отвечает, даже если её поднимать все равно уже не ответят.
КоличествоКолонок = ЭлементыФормы.ТабличноеПоле1.Колонки.Количество()-1; Если НЕ ЗначениеЗаполнено(КоличествоКолонок) Тогда КоличествоКолонок = 0; КонецЕсли; Пока КоличествоКолонок>=0 цикл ЭлементыФормы.ТабличноеПоле1.Колонки.Удалить(КоличествоКолонок); КоличествоКолонок = КоличествоКолонок -1; КонецЦикла; КоличествоКолонок = ТабличноеПоле1.Колонки.Количество()-1; Если НЕ ЗначениеЗаполнено(КоличествоКолонок) Тогда КоличествоКолонок = 0; КонецЕсли; Пока КоличествоКолонок>=0 цикл ТабличноеПоле1.Колонки.Удалить(КоличествоКолонок); КоличествоКолонок = КоличествоКолонок -1; КонецЦикла; Для Итератор=1 По КолСеместров цикл ТабличноеПоле1.Колонки.Вставить(Итератор-1,"строка" + Строка(Итератор), Новый ОписаниеТипов("СправочникСсылка.Номенк")); Колонка = ЭлементыФормы.ТабличноеПоле1.Колонки.Вставить(Итератор-1,"строка" + Строка(Итератор), Новый ОписаниеТипов("СправочникСсылка.Номенк")); КонецЦикла; |
|||
15
lex-kex
11.09.15
✎
19:45
|
(14) Вот тебе пример готового решения, правда в 8.2, если скопировать в 8.1 думаю работать будет примерно также https://cloud.mail.ru/public/G7wm/oxTNJ9cTG
|
|||
16
breezee
11.09.15
✎
19:47
|
(15) Большое спасибо! Сейчас скопирую
|
|||
17
breezee
11.09.15
✎
20:25
|
В итогде вышло примерно то же самое и все равно нихера не работает. Скорее всего я идиот. Я не понимаю в чем проблема - 8.3 я делал все то же самое. Создавал тз, в тз добавлял колонки где тип указывал НОВЫЙ Описание типов(СправочникСсылка.Номенклатура) потом присваивал элементу формы тз и все работало. Эти обычные формы сводят меня с ума.
|
|||
18
breezee
11.09.15
✎
20:30
|
Теперь еще и данные редактировать нельзя, которые программно создаються. На строчку добавления строки ругатся
МассивТипов = Новый Массив; МассивТипов.Добавить(Тип("СправочникСсылка.Номенк")); ТаблицаСписок = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"), "ТаблицаСписок", Истина, ЭлементыФормы.ПанельТаблицы); ТаблицаСписок.ТипЗначения = Новый ОписаниеТипов(МассивТипов); ТаблицаСписок.Ширина = ЭлементыФормы.ПанельТаблицы.Ширина; ТаблицаСписок.Высота = ЭлементыФормы.ПанельТаблицы.Высота; ТаблицаСписок.УстановитьПривязку(ГраницаЭлементаУправления.Право, ЭлементыФормы.ПанельТаблицы, ГраницаЭлементаУправления.Право); ТаблицаСписок.УстановитьПривязку(ГраницаЭлементаУправления.Низ, ЭлементыФормы.ПанельТаблицы, ГраницаЭлементаУправления.Низ); Для Итератор=1 По КолСеместров цикл НоваяКолонка = ТаблицаСписок.Колонки.Добавить("строка" + Строка(Итератор), "строка" + Строка(Итератор)); НоваяКолонка.Данные = "строка" + Строка(Итератор); ЭлементыФормы.ТаблицаСписок.добавитьстроку(); КонецЦикла; |
|||
19
lex-kex
11.09.15
✎
20:35
|
(18) В динамическую таблицу нельзя добавить строку, нужно создавать новый элемент справочника "Номенк"
Справочники.Номенк.СоздатьЭлемент(); Вроде |
|||
20
breezee
11.09.15
✎
20:38
|
(19) О_О Но там же не только элемент справочника номенк будет, нужно еще чтобы пользователь вводил туда цифры всякие. Зачем тогда еще нужен динамчиеский список?
|
|||
21
lex-kex
11.09.15
✎
20:42
|
(20) Проще тогда сделать возможность редактирование списка справочника в самом списке
|
|||
22
lex-kex
11.09.15
✎
20:43
|
(21) Редактирование справочника в списке
|
|||
23
breezee
11.09.15
✎
20:49
|
(21) Да мне не нужно редактирование списка справочника. Вот полное задание, даже с ситуацией отпишусь. В ВУЗе спросили знает кто 1С - я сказал что да. Там сказали что в ворде отчеты делают, говорят не удобно, я говорю что могу сделать(надеюсь на зачеты), прикинул, из сложного там 2 таблицы, которые имеют разное кол-во столбцов + сам документ очень длинный - хорошо бы его разбить на несколько форм, чтобы пользователь мог переходить по формам, но он может вернуться - а таблица динамечикская не заполнена. У них стоит какая-то самописная конфа, и предприятие версии 8.1, апать конфу они не будут, ридется делать на 8.1, похожее на 8.3 делал(хотя после целого дня я ничего не сделал - может мне показалось что я делал). В общем - пользователь должен указывать количество стобцов и записывать в получивуюся таблицу данные.
|
|||
24
lex-kex
11.09.15
✎
20:52
|
(23) ln-group@yandex.ru скинь пример вордовского файла и cf конфы попробую помочь
|
|||
25
breezee
11.09.15
✎
20:59
|
(24) Спасибо большое за предложение, но ты и так помогал) Дело все равно не срочное, пострадаю хренью, поищу в гугле, может еще пару тем создам - может кто сразу заметит ошибки. Еще раз спасибо за предложение, но я буду чувствовать себя крайне неудобно. Пойду спать лучше) Еще раз спасибо за помощь - кстати, может еще в обработке доразберусь - может и свое доделаю.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |