|
Программное создание реквизита и элемента формы | ☑ | ||
---|---|---|---|---|
0
Peshalkin
16.02.22
✎
09:11
|
Добрый день, столкнулся с проблемой программного создания табицы на форме, создаю реквизит формы(таблица, ПутьКДанным - Объект.Движения.Таблица), создаю элемент формы, но проблема заключается в том, что когда я выгружаю набор записей, чтобы создать колонки, то там у меня нет колонки с типом картинка(как это было на ОФ), и не совсем понимаю, как мне в программный элемент формы(таблицу) добавить колонку с картинкой, подскажите пожалуйста, уже всё перепробовал, что можно
|
|||
1
Волшебник
модератор
16.02.22
✎
09:13
|
ЭлементыФормы.ТабПоле.Колонки.Добавить()
|
|||
2
Peshalkin
16.02.22
✎
10:34
|
(1) Извиняюсь, что сразу не уточнил, это УФ
В общем колонку добавить смог, пришлось создать еще один реквизит формы программно, запихать в нужную таблицу движений, после в элемент формы добавить колонку картинка и на этот раз на установку пути данных не ругалось. Теперь проблема в том, что когда я начинаю программно заполнять мою таблицу созданную, чтобы отобразить данные, у меня не виден реквизит картинка .-. |
|||
3
Мимохожий Однако
16.02.22
✎
10:37
|
Не стесняйся, показывай код. Сложно догадаться
|
|||
4
Peshalkin
16.02.22
✎
10:42
|
Вот код по созданию реквизитов формы + элементов формы, дальше стандартное создание колонок и заполнение таблицы через ЭтотОбъект.ИмяТаблицы.Добави() и тут у меня нет картинки, чтобы её заполнить
ТипРегистра = ?(СтрокаРегистров.РегистрБухгалтерии, "РегистрБухгалтерии", "РегистрНакопления"); ИмяРеквизита = СтрокаРегистров.Имя + "НаборЗаписей"; ТипРеквизита = Новый ОписаниеТипов(ТипРегистра + "НаборЗаписей." + СтрокаРегистров.Имя); НовыйРеквизит = Новый РеквизитФормы(ИмяРеквизита, ТипРеквизита, , , Истина); ДобавляемыеРеквизиты.Добавить(НовыйРеквизит); НовыйРеквизит = Новый РеквизитФормы("Картинка", Новый ОписаниеТипов("Картинка"), "Объект.Движения.Таблица" , , Истина); ДобавляемыеРеквизиты.Добавить(НовыйРеквизит); ИзменитьРеквизиты(ДобавляемыеРеквизиты); // На странице регистра создаем таблицу ИмяТаблицы = СтрокаРегистров.Имя + "Программно"; ТекТаблица = Элементы.Найти(ИмяТаблицы); Если ТекТаблица <> Неопределено Тогда Элементы.Удалить(ТекТаблица); КонецЕсли; ТекТаблица = Элементы.Добавить(ИмяТаблицы, Тип("ТаблицаФормы"), НоваяСтраница); ПутьКДаннымТаблицы = СтрокаРегистров.Имя + "НаборЗаписей"; ТекТаблица.ПутьКДанным = "Объект.Движения." + СтрокаРегистров.Имя; ИмяКолонки = ИмяТаблицы + "КартинкаРегистра"; ТекКолонка = Элементы.Найти(ИмяКолонки); Если ТекКолонка = Неопределено Тогда ТекКолонка = Элементы.Добавить(ИмяКолонки, Тип("ПолеФормы"), ТекТаблица); КонецЕсли; ТекКолонка.ПутьКДанным = ТекТаблица.ПутьКДанным + "." + "Картинка"; ТекКолонка.Заголовок = ""; ТекКолонка.Вид = ВидПоляФормы.ПолеКартинки; |
|||
5
Мимохожий Однако
16.02.22
✎
10:46
|
Кода,где идёт заполнение, я не увидел. Есть только код создания колонок таблицы.
|
|||
6
Peshalkin
16.02.22
✎
10:51
|
Кусок кода который создаёт реквизиты + заполняет таблицу
РеквизитыНабораЗаписей = ЭтотОбъект[ПутьКДаннымТаблицы].Выгрузить(Новый Массив); Если РеквизитыНабораЗаписей.Колонки.Найти("ИсходныйНомерСтроки") <> Неопределено Тогда РеквизитыНабораЗаписей.Колонки.Удалить("ИсходныйНомерСтроки"); КонецЕсли; // Создаем колонки таблицы Для каждого КолонкаРеквизита Из РеквизитыНабораЗаписей.Колонки Цикл ИмяКолонки = ИмяТаблицы + КолонкаРеквизита.Имя; ТекКолонка = Элементы.Найти(ИмяКолонки); Если ТекКолонка = Неопределено Тогда ТекКолонка = Элементы.Добавить(ИмяКолонки, Тип("ПолеФормы"), ТекТаблица); КонецЕсли; ТекКолонка.Заголовок = КолонкаРеквизита.Заголовок; ТекКолонка.Вид = ВидПоляФормы.ПолеВвода; ТекКолонка.ПутьКДанным = ТекТаблица.ПутьКДанным + "." + КолонкаРеквизита.Имя; ВидимостьКолонки = КолонкаРеквизита.Имя = "Регистратор" Или КолонкаРеквизита.Имя = "Период" Или КолонкаРеквизита.Имя = "Активность"; ТекКолонка.Видимость = НЕ ВидимостьКолонки; КонецЦикла; Для Каждого СтрокаДвижения Из Объект.Движения[СтрокаТаблицыРегистров.Имя] Цикл ИмяТаблицаДобавления = Лев(ТекТаблица.Имя, СтрДлина(ТекТаблица.Имя) - 1) + "НаборЗаписей"; НовСтр = ЭтотОбъект[ИмяТаблицаДобавления].Добавить(); ЗаполнитьЗначенияСвойств(НовСтр, СтрокаДвижения); //НовСтр.Картинка = КонецЦикла; |
|||
7
Peshalkin
16.02.22
✎
14:39
|
У кого-то есть мысли, почему при заполнении таблицы созданной, у меня нет колонки "Картинка"?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |