Программное создание на форме табличного поля и заполнение его ТЗ

1. Max0n57 15.04.24 17:17 Сейчас в теме
Всем привет. Пишу обработку которая читает файл Exel и на основании прочитанных данных изменяет реквизиты номенклатуры. Мне нужно после завершения её работы выводились внесенные изменения. Затем все изменения я помещаю в ТЗ. При первой загрузке из Exel все отрабатывает корректно, но при следующих загрузках выходит такая ошибка. Подскажите, пожалуйста, как мне удалить реквизит с формы, чтобы исправить эту ошибку?

Для Каждого Колонка Из ТаблицаИзменений.Колонки Цикл
		ТипыЗначений = Новый Массив;
		Для каждого тТип из Колонка.ТипЗначения.Типы() Цикл
			Если тТип <> Тип("Null") Тогда
				ТипыЗначений.Добавить(тТип);
			КонецЕсли;
		КонецЦикла;
		МассивРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Новый ОписаниеТипов(ТипыЗначений), ИмяТЗ));
	КонецЦикла;
	//Если ЭтаФорма.Элементы.Количество()>3 Тогда
	//	УдаляемыеРеквизиты = Новый Массив;
	//	РеквизитыДляУдаления = ПолучитьРеквизиты(ИмяТЗ);
	//	//Для Каждого РеквизитУдаления Из РеквизитыДляУдаления Цикл
	//	//УдаляемыеРеквизиты.Добавить(ИмяТЗ+"."+РеквизитУдаления.Имя);
	//	// Удаляем элементы формы
	//	Элементы.Удалить(Элементы[ЗаголовокТЗ]);
	//	//КонецЦикла;
	//КонецЕсли;
	//Если Не ЭтаФорма.Элементы.Количество() > 80  Тогда
	//	ЭтаФорма.ИзменитьРеквизиты(,МассивРеквизитов);
	//	КонецЕсли;
	ЭтаФорма.ИзменитьРеквизиты(МассивРеквизитов);      
	эТаблица = Элементы.Добавить(ЗаголовокТЗ, Тип("ТаблицаФормы"),);
	эТаблица.ПутьКДанным = ИмяТЗ;
	эТаблица.Отображение = ОтображениеТаблицы.Список;
	эТаблица.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;
	эТаблица.ИзменятьСоставСтрок = Ложь;    
	
	Для Каждого Колонка Из ТаблицаИзменений.Колонки Цикл
		НовыйЭлемент = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"), эТаблица);
		НовыйЭлемент.ПутьКДанным = ИмяТЗ + "." + Колонка.Имя;
		НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
		НовыйЭлемент.КнопкаОчистки = Ложь;
		НовыйЭлемент.КнопкаВыбора = Ложь;
		НовыйЭлемент.РедактированиеТекста = Ложь;
		НовыйЭлемент.КнопкаОткрытия = Истина;
	КонецЦикла;
	//КонецЕсли;
	ЭтаФорма.ЗначениеВРеквизитФормы(ТаблицаИзменений, ИмяТЗ); 
Показать
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
3. SlavaKron 15.04.24 18:44 Сейчас в теме
(1) Из вопроса не понятно - каждый раз новый набор колонок что ли? Если нет, то зачем удалять – создайте 1 раз, в следующие просто проверяйте какой-нибудь флаг.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. SlavaKron 15.04.24 18:44 Сейчас в теме
(1) Из вопроса не понятно - каждый раз новый набор колонок что ли? Если нет, то зачем удалять – создайте 1 раз, в следующие просто проверяйте какой-нибудь флаг.
2. DENSKR 15 15.04.24 18:17 Сейчас в теме
Нужно юзать отладчик!
4. starjevschik 15.04.24 18:54 Сейчас в теме
дык надо все эти элементы удалить, когда второй раз делаешь. Или проверить, что они есть, и не делать еще раз.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот