Как программно добавить колонку в табличную часть управляемой формы

 

Я уже писал об общем принципе программного добавления элементов на управляемую форму, теперь напишу конкретно о том, как добавить колонку табличной части или таблицы значений.

Итак, у нас есть справочник «Тест» с табличной частью «Тест», в табличной части присутствуют реквизиты «Тест1» и «Тест2», а нам нужно добавить еще один реквизит — «Тест3» и показать его на форме.

Выглядит это приблизительно так:

Не думаю, что приведенный код нуждается в комментариях, но на всякий случай скажу, что первые три строки создают новый реквизит типа «Строка» — тут важно указать путь к создаваемому реквизиту — третий параметр.

Точно также можно добавить колонку любой таблице значений (не табличной части) — в этом случае нужно убрать часть «Объект.» из кода.

Следующие три строки добавляют саму колонку на форму.

На этом все, надеюсь данная статья Вам помогла.

6 комментариев к “Как программно добавить колонку в табличную часть управляемой формы

    • Переместить(, , )
      вот как-то так..
      Элементы.Переместить(нЭлемент,Элементы.Тест,Элементы.)

  1. помогите пожалуйста я в 1с чайник это много сказано) 1С 7.7 бух. учет (7.70.307) в реестр документов нужно добавить колонку ИНН контрагента. Что нужно написать в таблице и в модуле?

  2. Предлагаю добавить обработчик событий ПриИзменении

    &НаСервере
    Процедура _ДобавитьКолонкуНаСервере(ИмяКолонки, ИмяТаблицыОбъекта, ИмяПредСтоящейКолонки, ИмяПроцедурыПриИзменении=Неопределено)
    //Добавляет сущетсвующий реквизит (ИмяКолонки) табличной части (ИмяТаблицыОбъекта) на форму перед колонкой (ИмяПредСтоящейКолонки)
    нЭлемент = Элементы.Добавить(ИмяКолонки, Тип(«ПолеФормы»), Элементы[ИмяТаблицыОбъекта]);
    нЭлемент.Вид = ВидПоляФормы.ПолеВвода;
    нЭлемент.ПутьКДанным = «Объект.»+ ИмяТаблицыОбъекта +».» + ИмяКолонки;
    Элементы.Переместить(нЭлемент, Элементы[ИмяТаблицыОбъекта], Элементы[ИмяТаблицыОбъекта].ПодчиненныеЭлементы[ИмяПредСтоящейКолонки]);
    Если ИмяПроцедурыПриИзмененииНеопределено тогда
    нЭлемент.УстановитьДействие(«ПриИзменении», ИмяПроцедурыПриИзменении);
    КонецЕсли;
    КонецПроцедуры

    Пример использования:
    _ДобавитьКолонкуНаСервере(«МассаБрутто», «Товары», «ТоварыНоменклатура», «ТоварыМассаБруттоПриИзменении»);

Оставить комментарий