empty basket
Ваша корзина пуста
Выберите в каталоге интересующий товар
и нажмите кнопку «В корзину».
Перейти в каталог
empty delayed
Отложенных товаров нет
Выберите в каталоге интересующий товар
и нажмите кнопку
Перейти в каталог
Заказать звонок
г. Жуковский
Поиск
Войти
Логин
Пароль
Войти как пользователь
Зарегистрироваться
После регистрации на сайте вам будет доступно отслеживание состояния заказов, личный кабинет и другие новые возможности
1С: Франчайзинг
Логин
Пароль
Войти как пользователь
Зарегистрироваться
После регистрации на сайте вам будет доступно отслеживание состояния заказов, личный кабинет и другие новые возможности
Логин
Пароль
Войти как пользователь
Зарегистрироваться
После регистрации на сайте вам будет доступно отслеживание состояния заказов, личный кабинет и другие новые возможности

Как добавить или удалить колонки в табличной части

09.02.2020
Программное удаление и добавление колонок в табличной части управляемой формы 1С 8.3
Часто бывает ситуация, когда необходимо программно управлять составом табличной части в управляемой форме.
В данном примере рассмотрим следующую ситуацию: есть управляемая форма, на управляемой форме есть таблица - связанная с реквизитом формы. Нам надо удалить одни колонки и добавить другие программным способом. Массив удаляемых и добавляемых колонок определен нами заранее.

Перед добавлением новых элементов на форму, необходимо добавить сами реквизиты формы:


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


Теперь определим удаляемые реквизиты:

МассивУдаляемыхРеквизитов = Новый Массив;
Для Каждого тЭлемент из МассивУдаляемыхИмен Цикл
     Если ЭтаФорма.Элементы.Найти("Данные"+тЭлемент) <> Неопределено Тогда
          МассивУдаляемыхРеквизитов.Добавить("Данные."+тЭлемент);
     КонецЕсли;
КонецЦикла;


После подготовки массивов - редактируем реквизты формы

ЭтаФорма.ИзменитьРеквизиты(МассивДобавляемыхРеквизитов, МассивУдаляемыхРеквизитов);


После редактирования реквизитов можно приступать к редактированию элементов формы:

Удаление колонок:

Для Каждого тЭлемент из МассивУдаляемыхИмен Цикл
     нЭлемент = ЭтаФорма.Элементы.Найти("Данные"+тЭлемент);
     Если нЭлемент <> Неопределено Тогда
          Элементы.Удалить(нЭлемент);
     КонецЕсли;
КонецЦикла;


Добавление новых колонок:

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

Ведущий программист 1С

Тельнова Яна