Здравствуйте, не могу удалить колонки из реквизита формы таблицы значений ("данные"). Они только очищаются. После удаления остается 1 одна, как и должно быть. Но визуально (на стороне пользователя) вижу все колонки ТЗ и они просто пустые...
НомерСоответствияТекущейКолонки = мСоответствиеТиповЦен[СтрокаБезСимв];
Если НомерСоответствияТекущейКолонки = Неопределено Тогда
НомерСоответствияТекущейКолонки = МассивСкладов.Количество();
мСоответствиеТиповЦен.Вставить(СтрокаБезСимв, мСоответствиеТиповЦен.Количество());
КонецЕсли;
// Колонки.
ТекущаяКолонка = КолонкиТаблицы.Найти(СтрокаБезСимв);
Если ТекущаяКолонка = Неопределено Тогда // надо вставить
КолонкиТаблицы.Вставить(ОчереднойНомерКолонки, СтрокаБезСимв, Новый ОписаниеТипов("Булево"), Склад, 25);
ОчереднойНомерКолонки = ОчереднойНомерКолонки + 1;
Иначе
СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки);
КонецЕсли;
// Все, что за пределами, надо удалить.
Для НомерУдаляемойКолонки = ОчереднойНомерКолонки По КолонкиТаблицы.Количество() - 1 Цикл
КолонкиТаблицы.Удалить(ОчереднойНомерКолонки);
КонецЦикла;
ЭлементыФормы.Данные.СоздатьКолонки();
КонецЦикла;
Удаляю:
Счетчик = Данные.Колонки.Количество()-1;
Пока Счетчик >= 0 Цикл
Колонка = Данные.Колонки[Счетчик];
Если Колонка.Имя = "Номенклатура" Тогда
Прервать;
КонецЕсли;
Индекс = НовМассиСкладов.Найти(Справочники.Склады.НайтиПоНаименованию(Колонка.Заголовок));
Если Индекс = Неопределено Тогда
ЭтаФорма.Данные.Колонки.Удалить(Колонка);
КонецЕсли;
Счетчик = Счетчик - 1;
КонецЦикла;
(0) И зачем при создании СоздатьКолонки() внутри цикла? Делай 1 раз после цикла.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший