helpf.pro
Регистрация

v8.2 УП: Удаление реквизитов с формы

Persempre
19.12.2013 14:53Прочитано: 17572
Добрый день. В обработке я программно создаю реквизиты. С созданием все хорошо а вот с удаление не получается.
Суть обработки такая - вношу товары в табличную часть и жму кнопку ( обработчик ниже) когда первый раз нажимаешь все Ок, но пользователь не будет закрывать обработку каждый раз чтоб редактировать список, второй раз нажимаешь и всё - реквизиты то созданы. а как удалить я не в курсе. Подскажите пожалуйста. Заранее спасибо
Код 1C v 8.2 УП
 &НаСервере
Процедура ПоказатьИзображенияНаСервере()

МассивРеквизитов = Новый Массив;

Для Каждого Стр Из Объект.ТаблицаКомплекта Цикл
МассивРеквизитов.Добавить(Новый РеквизитФормы("АдресКартинки_" + Стр.НомерСтроки, Новый ОписаниеТипов("Строка")));
КонецЦикла;
ИзменитьРеквизиты(МассивРеквизитов);

Для Каждого СтрМассива Из МассивРеквизитов Цикл
НовыйЭлемент = Элементы.Добавить(СтрМассива.Имя , Тип("ПолеФормы"), Элементы.ГруппаИзображений);

СписокРеквизитов.Добавить(СтрМассива.Имя,СтрМассива.Имя);

НовыйЭлемент.Вид = ВидПоляФормы.ПолеКартинки;
НовыйЭлемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
НовыйЭлемент.РастягиватьПоВертикали = Ложь;
НовыйЭлемент.РастягиватьПоГоризонтали = Ложь;
НовыйЭлемент.Ширина = "10";
НовыйЭлемент.Высота = "3";
НовыйЭлемент.ПутьКДанным = СтрМассива.Имя;

КонецЦикла;

КонецПроцедуры
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
19.12.2013 17:32Ответ № 1
Нужно использовать ИзменитьРеквизиты(,Реквизиты);
где Реквизиты - это массив имеющихся реквизитов на форме

Для Управляемого Приложения
Код 1C v 8.2 УП
 &НаСервере
Процедура УдалитьКолонки(Н)
УдаляемыеРеквизитыТЗ=Новый Массив;
ОставляемаяКолонка="ОстатокНаСкладе"+Формат(Н, "ЧЦ=2; ЧВН=");
ТЗ=Объект.ТЗ.Выгрузить();
й=ТЗ.Колонки.Количество();
Пока й>3 Цикл
й=й-1;
ТекКолонка=ТЗ.Колонки.Получить(й).Имя;
Если ТекКолонка<>ОставляемаяКолонка Тогда
ТЗ.Колонки.Удалить(й);
УдаляемыеРеквизитыТЗ.Добавить("Объект.ТЗ."+ТекКолонка);
КонецЕсли;
КонецЦикла;
ИзменитьРеквизиты(, УдаляемыеРеквизитыТЗ);
Объект.ТЗ.Загрузить(ТЗ);
КонецПроцедуры


Для обычного
Код 1C v 8.х
 МассивНаУдаление = Новый Массив;
Для каждого Элемент Из Элементы.ЛистыЭксель.ПодчиненныеЭлементы Цикл
МассивНаУдаление.Добавить(Элемент);
КонецЦикла;
Для каждого Элемент Из МассивНаУдаление Цикл
Элементы.Удалить(Элемент);
КонецЦикла;
Persempre
23.12.2013 12:02Ответ № 2
Спасибо. Реализовал чуть иначе:
Код 1C v 8.2 УП
 &НаСервере
Процедура ПоказатьИзображенияНаСервере()

// Удаляем старые элементы формы и реквизиты формы если они есть
Если СписокРеквизитов.Количество() > 0 Тогда
МассивУдаления = Новый Массив;
МассивПоля = Новый Массив;
Для Каждого УдаляемыйЭлемент Из Элементы.ГруппаИзображений.ПодчиненныеЭлементы Цикл
ЭлементУдаления = УдаляемыйЭлемент.ПутьКДанным;
ПолеУдаляемогоЭлемента = Элементы.ГруппаИзображений.ПодчиненныеЭлементы.Найти(УдаляемыйЭлемент.ПутьКДанным);
МассивПоля.Добавить(ПолеУдаляемогоЭлемента);
МассивУдаления.Добавить(ЭлементУдаления);
КонецЦикла;
Для Каждого Стр Из Массивполя Цикл
Элементы.Удалить(Стр);
КонецЦикла;
ИзменитьРеквизиты(,МассивУдаления);
МассивУдаления.Очистить();
СписокРеквизитов.Очистить();
КонецЕсли;

// Заполняем элементы формы и реквизиты формы

МассивРеквизитов = Новый Массив;

Для Каждого Стр Из Объект.ТаблицаКомплекта Цикл
МассивРеквизитов.Добавить(Новый РеквизитФормы("АдресКартинки_" + Стр.НомерСтроки, Новый ОписаниеТипов("Строка")));
КонецЦикла;
ИзменитьРеквизиты(МассивРеквизитов);

Для Каждого СтрМассива Из МассивРеквизитов Цикл
НовыйЭлемент = Элементы.Добавить(СтрМассива.Имя , Тип("ПолеФормы"), Элементы.ГруппаИзображений);
СписокРеквизитов.Добавить(СтрМассива.Имя,СтрМассива.Имя);
НовыйЭлемент.Вид = ВидПоляФормы.ПолеКартинки;
НовыйЭлемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
НовыйЭлемент.РастягиватьПоВертикали = Ложь;
НовыйЭлемент.РастягиватьПоГоризонтали = Ложь;
НовыйЭлемент.Ширина = "10";
НовыйЭлемент.Высота = "3";
НовыйЭлемент.ПутьКДанным = СтрМассива.Имя;
КонецЦикла;
МассивРеквизитов.Очистить();

КонецПроцедуры
Подсказка: Вы получили ответ на свой вопрос - закройте вопрос!
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.