![]() |
|
Создание табличных частей документа (элементов на форме) | ☑ | ||
---|---|---|---|---|
0
JuixyJes
19.05.21
✎
10:19
|
Добрый день, пытаюсь создать элемент новый (таблицу формы)
Но при выполнении кода вылетает ошибка {Документ.нпПогрузкаСудна.Форма.ФормаДокумента.Форма(747)}: Ошибка при установке значения атрибута контекста (ПутьКДанным) Таб.ПутьКДанным = "Объект.Таб"+ИмяДляЭлемента; по причине: Недопустимое значение Таб = Элементы.Добавить("Таб"+ИмяДляЭлемента, Тип("ТаблицаФормы"),НовыйЭлемент); Таб.ПутьКДанным = "Объект.Таб"+ИмяДляЭлемента; Для Каждого Ст ИЗ Элементы.Резервуар1.ПодчиненныеЭлементы Цикл Рек = Элементы.Добавить("Колонка"+ИмяДляЭлемента + Прав(Ст.Имя,СтрДлина(Ст.Имя)-10), Тип("ПолеФормы"), Таб); Рек.Вид = ВидПоляФормы.ПолеНадписи; Рек.ПутьКДанным = "Объект.Таб"+ИмяДляЭлемента + "." + Ст.Имя; Рек.Заголовок = Прав(Ст.Имя,СтрДлина(Ст.Имя)-10); КонецЦикла; |
|||
1
RomanYS
19.05.21
✎
10:21
|
У твоего объекта нет такой табличной части, которую ты указываешь источником
|
|||
2
JuixyJes
19.05.21
✎
10:28
|
Давайте распишу, что нужно сделать
У меня есть такая необходимость, создание табличных частей в неопределенном количестве на форме в разных вкладках. Одна тч у меня есть в реквизитах документа, как шаблон для создания остальных, но данные во всех разные должны быть. |
|||
3
RomanYS
19.05.21
✎
10:33
|
(2) "Табличные части" - они только в метаданных. Добавляй таблицы в <реквизиты формы>, а их потом уже используй как источник для элементов формы.
ИзменитьРеквизиты(...) |
|||
4
shuhard
19.05.21
✎
10:39
|
(2) это не табличная часть, это таблица значений
|
|||
5
JuixyJes
19.05.21
✎
11:57
|
Оййй, точно...
|
|||
6
JuixyJes
19.05.21
✎
14:00
|
Создать то я создала
А вот заполнять то ее как? |
|||
7
JuixyJes
19.05.21
✎
14:09
|
Нужно не программное заполнение
|
|||
8
acht
19.05.21
✎
14:42
|
(7) Ну а кто ж написал такой код, что
Рек.Вид = ВидПоляФормы.ПолеНадписи; ? =) |
|||
9
shuhard
19.05.21
✎
15:33
|
(7)[Нужно не программное заполнение]
доктора в топик |
|||
10
PR
19.05.21
✎
15:36
|
(9) Че ты сразу доктора?
Нажимаешь Ins и заполняешь |
|||
11
JuixyJes
20.05.21
✎
10:43
|
(8) спасибо, не заметила, на улице жара, плавлюсь...
Можно ли процедуры привязать к созданным таким образом табличкам? Их же нужно будет хранить в регистре каком-нибудь.. Ну и допустим автоматический расчет каких то полей таблички, это возможно же? |
|||
12
DrZombi
гуру
20.05.21
✎
11:32
|
(7) Не заполняй программно, ты программно ее создай :)
|
|||
13
DrZombi
гуру
20.05.21
✎
11:34
|
(11) Процедуры должны (на) (А вернее одна или несколько), должны уже быть объявлены ранее.
Можно так же сделать функцию переопределения общего модуля, Менеджера или что там у вас :) |
|||
14
JuixyJes
20.05.21
✎
12:26
|
&НаСервере
Функция ДобавитьВкладкуНаСервере(ВыбЗнач) ИмяДляЭлемента = ОставитьБуквыИЦифры(Строка(ВыбЗнач)); НовыйЭлемент = Элементы.Добавить("Стр"+ИмяДляЭлемента,Тип("ГруппаФормы"),Элементы.ГруппаВкладкиРезервуаров); НовыйЭлемент.Вид = ВидГруппыФормы.Страница; НовыйЭлемент.Заголовок = ВыбЗнач; ТЗ = Новый ТаблицаЗначений; Для Каждого Ст ИЗ Элементы.Резервуар1.ПодчиненныеЭлементы Цикл Если Ст.Имя = "Резервуар1НомерСтроки" Тогда ЗаголовокКолонки = "№"; КвалификаторыЧисла = Новый КвалификаторыЧисла(10, 0, ДопустимыйЗнак.Любой); ТипЗначения = Новый ОписаниеТипов("Число",,,КвалификаторыЧисла); ИначеЕсли Ст.Имя = "Резервуар1ВидТоплива" Тогда ЗаголовокКолонки = "Вид топлива"; ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Номенклатура"); ИначеЕсли Ст.Имя = "Резервуар1Резервуар" Тогда ЗаголовокКолонки = "Резервуар"; ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.нпРезервуары"); ИначеЕсли Ст.Имя = "Резервуар1Взлив" Тогда ЗаголовокКолонки = "Взлив, см"; КвалификаторыЧисла = Новый КвалификаторыЧисла(10, 0, ДопустимыйЗнак.Любой); ТипЗначения = Новый ОписаниеТипов("Число",,,КвалификаторыЧисла); ИначеЕсли Ст.Имя = "Резервуар1Объем" Тогда ЗаголовокКолонки = "Объем, куб.м."; КвалификаторыЧисла = Новый КвалификаторыЧисла(10, 3, ДопустимыйЗнак.Любой); ТипЗначения = Новый ОписаниеТипов("Число",,,КвалификаторыЧисла); ИначеЕсли Ст.Имя = "Резервуар1Плотность15" Тогда ЗаголовокКолонки = "Плотность при 15 °С"; КвалификаторыЧисла = Новый КвалификаторыЧисла(10, 4, ДопустимыйЗнак.Любой); ТипЗначения = Новый ОписаниеТипов("Число",,,КвалификаторыЧисла); ИначеЕсли Ст.Имя = "Резервуар1ПлотностьРасчет" Тогда ЗаголовокКолонки = "Расчетная плотность"; КвалификаторыЧисла = Новый КвалификаторыЧисла(10, 4, ДопустимыйЗнак.Любой); ТипЗначения = Новый ОписаниеТипов("Число",,,КвалификаторыЧисла); ИначеЕсли Ст.Имя = "Резервуар1Масса" Тогда ЗаголовокКолонки = "Масса, т"; КвалификаторыЧисла = Новый КвалификаторыЧисла(10, 3, ДопустимыйЗнак.Любой); ТипЗначения = Новый ОписаниеТипов("Число",,,КвалификаторыЧисла); ИначеЕсли Ст.Имя = "Резервуар1ПлотностьЛаборатория" Тогда ЗаголовокКолонки = "Плотность лаборатория"; КвалификаторыЧисла = Новый КвалификаторыЧисла(10, 4, ДопустимыйЗнак.Любой); ТипЗначения = Новый ОписаниеТипов("Число",,,КвалификаторыЧисла); ИначеЕсли Ст.Имя = "Резервуар1ПлотностьЛабораторияРасчет" Тогда ЗаголовокКолонки = "Расчетная плотность лаборатория"; КвалификаторыЧисла = Новый КвалификаторыЧисла(10, 4, ДопустимыйЗнак.Любой); ТипЗначения = Новый ОписаниеТипов("Число",,,КвалификаторыЧисла); ИначеЕсли Ст.Имя = "Резервуар1МассаЛаборатория" Тогда ЗаголовокКолонки = "Масса лаборатория, т"; КвалификаторыЧисла = Новый КвалификаторыЧисла(10, 3, ДопустимыйЗнак.Любой); ТипЗначения = Новый ОписаниеТипов("Число",,,КвалификаторыЧисла); КонецЕсли; ТЗ.Колонки.Добавить("Колонка"+ИмяДляЭлемента + Прав(Ст.Имя,СтрДлина(Ст.Имя)-10),ТипЗначения,ЗаголовокКолонки); КонецЦикла; Реквизиты = Новый Массив; Реквизиты.Добавить(Новый РеквизитФормы("Таб"+ИмяДляЭлемента, Новый ОписаниеТипов("ТаблицаЗначений"))); Для Каждого Ст ИЗ ТЗ.Колонки Цикл Реквизиты.Добавить(Новый РеквизитФормы(Ст.Имя, Ст.ТипЗначения, "Таб"+ИмяДляЭлемента)); КонецЦикла; // добавим реквизиты на форму ИзменитьРеквизиты(Реквизиты); Таб = Элементы.Добавить("Таб"+ИмяДляЭлемента, Тип("ТаблицаФормы"),НовыйЭлемент); Таб.ПутьКДанным = "Таб"+ИмяДляЭлемента; Таб.УстановитьДействие("ПриИзменении","ПриИзмененииТаблицы"); Таб.ИзменятьСоставСтрок = Истина; Для Каждого Ст ИЗ ТЗ.Колонки Цикл Рек = Элементы.Добавить("Колонка"+ИмяДляЭлемента + Прав(Ст.Имя,СтрДлина(Ст.Имя)-10), Тип("ПолеФормы"), Таб); Рек.Вид = ВидПоляФормы.ПолеВвода; Рек.ПутьКДанным = "Таб"+ИмяДляЭлемента + "."+Ст.Имя; Рек.Заголовок = Ст.Заголовок; КонецЦикла; ЗначениеВРеквизитФормы(ТЗ, "Таб"+ИмяДляЭлемента); КонецФункции |
|||
15
JuixyJes
20.05.21
✎
12:27
|
Вот я создала... Таблички создаются, заполнять могу... Но мне нужно сделать следующее:
При указании значения в колонке Взлив задать значение в колонке Объем |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |