Удаление программно созданных реквизитов формы
По теме из базы знаний
- Динамический состав реквизитов
- Программное создание динамического списка на управляемой форме. (Динамическое создание динамического списка). Готовая процедура + обработка - демонстрационный пример
- [Шпаргалка] Программное создание элементов формы
- [Общий модуль] Динамическое формирование интерфейса
- 1С:БСП Дополнительные реквизиты и сведения
Найденные решения
(9)
РеквизитыФормы = ЭтаФорма.ПолучитьРеквизиты(); //Точки в шапке цикла – не круто
МассивУдаляемых = Новый Массив; //Не надо делать в цикле то, что можно сделать один раз
Для Каждого РеквизитФормы Из РеквизитыФормы Цикл
ИмяРеквизита = РеквизитФормы.Имя; //Не надо каждый раз обращаться к нему через точку
Если СтрНайти(ИмяРеквизита, "Смета") И Не СтрНайти(ИмяРеквизита, "ТекущаяСмета") Тогда //Двойное условие выглядит круче, чем условие в условии; Сравнение с нулём можно заменить на неявное сравнение с типом булево
МассивУдаляемых.Добавить(ИмяРеквизита);
КонецЕсли;
КонецЦикла;
ИзменитьРеквизиты( , МассивУдаляемых); //Не надо делать в цикле то, что можно сделать один раз
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ФормаКлиентскогоПриложения (ClientApplicationForm)
ИзменитьРеквизиты (ChangeAttributes)
Синтаксис:
ИзменитьРеквизиты(<ДобавляемыеРеквизиты>, <УдаляемыеРеквизиты>)
Параметры:
<ДобавляемыеРеквизиты> (необязательный)
Тип: Массив.
Массив, содержащий объекты типа РеквизитФормы.
Добавлять можно реквизиты верхнего уровня и вложенные реквизиты, являющиеся колонками.
К добавленным реквизитам верхнего уровня из модуля можно обращаться только с помощью конструкции ЭтотОбъект.<Имя реквизита>.
<УдаляемыеРеквизиты> (необязательный)
Тип: Массив.
Массив, содержащий строки, описывающие пути к удаляемым реквизитам.
Удалять можно только ранее программно добавленные реквизиты.
Описание:
Изменяет структуру реквизитов формы.
Сначала выполняется удаление реквизитов. Таким образом массивы добавляемых и удаляемых реквизитов могут содержать реквизиты с одинаковым путём.
Внимание! Действия добавления и удаления выполняются за один вызов. Следует учитывать, что операция изменения состава реквизитов является ресурсоемкой, поэтому операции изменения состава реквизитов формы выполняются пакетным образом.
Доступность:
Сервер, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.2.
Описание изменено в версии 8.3.16.
ИзменитьРеквизиты (ChangeAttributes)
Синтаксис:
ИзменитьРеквизиты(<ДобавляемыеРеквизиты>, <УдаляемыеРеквизиты>)
Параметры:
<ДобавляемыеРеквизиты> (необязательный)
Тип: Массив.
Массив, содержащий объекты типа РеквизитФормы.
Добавлять можно реквизиты верхнего уровня и вложенные реквизиты, являющиеся колонками.
К добавленным реквизитам верхнего уровня из модуля можно обращаться только с помощью конструкции ЭтотОбъект.<Имя реквизита>.
<УдаляемыеРеквизиты> (необязательный)
Тип: Массив.
Массив, содержащий строки, описывающие пути к удаляемым реквизитам.
Удалять можно только ранее программно добавленные реквизиты.
Описание:
Изменяет структуру реквизитов формы.
Сначала выполняется удаление реквизитов. Таким образом массивы добавляемых и удаляемых реквизитов могут содержать реквизиты с одинаковым путём.
Внимание! Действия добавления и удаления выполняются за один вызов. Следует учитывать, что операция изменения состава реквизитов является ресурсоемкой, поэтому операции изменения состава реквизитов формы выполняются пакетным образом.
Доступность:
Сервер, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.2.
Описание изменено в версии 8.3.16.
Если вдруг кому-нибудь понадобится
Для каждого Рек Из ЭтаФорма.ПолучитьРеквизиты() Цикл
Если СтрНайти(Рек.Имя, "Смета") <> 0 Тогда
Если СтрНайти(Рек.Имя, "ТекущаяСмета") <> 0 Тогда
Продолжить;
КонецЕсли;
Массив = Новый Массив;
Массив.Добавить(Рек.Имя);
ИзменитьРеквизиты(,Массив);
КонецЕсли;
КонецЦикла;
Показать
(9)
РеквизитыФормы = ЭтаФорма.ПолучитьРеквизиты(); //Точки в шапке цикла – не круто
МассивУдаляемых = Новый Массив; //Не надо делать в цикле то, что можно сделать один раз
Для Каждого РеквизитФормы Из РеквизитыФормы Цикл
ИмяРеквизита = РеквизитФормы.Имя; //Не надо каждый раз обращаться к нему через точку
Если СтрНайти(ИмяРеквизита, "Смета") И Не СтрНайти(ИмяРеквизита, "ТекущаяСмета") Тогда //Двойное условие выглядит круче, чем условие в условии; Сравнение с нулём можно заменить на неявное сравнение с типом булево
МассивУдаляемых.Добавить(ИмяРеквизита);
КонецЕсли;
КонецЦикла;
ИзменитьРеквизиты( , МассивУдаляемых); //Не надо делать в цикле то, что можно сделать один раз
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот