Вывел отчет в таб. док., теперь хочу удалить из этого таб. документа одну колонку, пишу:

```1c
    ТД.УдалитьОбласть(ТД.Область(, 2, , 2), ТипСмещенияТабличногоДокумента.ПоГоризонтали);
```

Ничего не происходит.

Вручную колонку удалить можно, если сначала кликнуть на ячейку с данными, а потом на заголовок колонки (она вся выделится).
Но если сначала кликнуть на ячейку в самой первой строке ТД (там нет данных), потом на заголовок колонки, то вся колонка не выделится.

Видимо, ТД после СКД состоит из каких-то независимых друг от друга областей...

Как с этим работать?
---
xaozai, если отчет состоит из одной таблицы или одной ветви группировки, то "ТД.ВысотаТаблицы".
---
xaozai, вам нужен пример не для табличного документа, а для таблицы значений. Вот в ней уже удалите строку какую вам нужно и далее выводите ее. В уроках Гилева по СКД это описано.

Код примерно такой:
```1c
    Функция ПолучитьТаблицуКонтрагентов()

    ТЗ = Новый ТаблицаЗначений;

    Схема = ЭтотОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    Настройки = ЭтотОбъект.КомпоновщикНастроек.ПолучитьНастройки();

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

    МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(Схема, Настройки, , ,
    Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;

    ПроцессорВывода.УстановитьОбъект(ТЗ);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

    Возврат ТЗ;

    КонецФункции //ПолучитьТаблицуКонтрагентов()
```
---
Ошибку получаю...

Хотелось бы всё-таки уже выведенную таблицу отредактировать немного...
---
xaozai, может тогда просто в запросе ее убрать? Сделайте схему номер2 и там уберите не нужную колонку. При выводе просто придется изменить название схемы.
---
У меня выводится таблица, в которой есть группировка колонок по некоторому признаку и вложенная группировка колонок по датам. В зависимости от значения признака, колонку нужно либо выводить, либо не выводить.

Пример:
---
xaozai, так что вам мешает. До вывода в табличный документ это сделать?
---
Как это сделать?
---
xaozai,
В зависимости от значения признака, колонку нужно либо выводить, либо не выводить

а что мешает сделать два варианта настроек для скд и формировать нужный при наличии нужного признака??
---
Все делается в одном запросе. Признак - это:

```1c
    Выбрать
    "По месяцам" как Признак,
    Период как Месяц,
    ...

    объединить все

    Выбрать
    "РазницаПослПредПосл" как Признак,
    ДатаВремя(1,1,1) как Месяц,
    ...
```

и в настройках СКД добавлена таблица в которой колонки группируются по признаку и после группировки по признаку добавлена вложенная группировка по периоду.
---
xaozai, (9) xaozai, Если проблема состоит в том чтобы найти ячейку со значением группировки, то можно искать через расшифровку с помощью примерно такого кода:

```1c
    НазваниеИскомогоПоляСКД = "ПолеПоиска";
    ЗначениеИскомогоПоля = "ЗначениеПоиска";

    НайденнаяОбласть = Неопределено;

    ДокументРезультат = ЭлементыФормы.Результат;
    НомерЛево = 1; НомерПраво = ДокументРезультат.ШиринаТаблицы; НомерВерх = 1; НомерНиз = ДокументРезультат.ВысотаТаблицы;
    Для НКолонки = НомерЛево По НомерПраво Цикл
    Для НСтроки = НомерВерх По НомерНиз Цикл
    ТекущаяОбластьДокумента = ДокументРезультат.Область(НСтроки,НКолонки,НСтроки,НКолонки);
    РасшифровкаОбласти = ТекущаяОбластьДокумента.Расшифровка;
    Если ТипЗнч(РасшифровкаОбласти) <> Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда
    Продолжить;
    КонецЕсли;
    Попытка
    ЭлементРасшифровки = ДанныеРасшифровки.Элементы[РасшифровкаОбласти];
    Исключение
    Продолжить;
    КонецПопытки;
    Если ТипЗнч(ЭлементРасшифровки) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
    Если ЭлементРасшифровки.ПолучитьПоля().Количество()=1 Тогда
    Для Каждого ЗначениеПоляРасшифровки Из ЭлементРасшифровки.ПолучитьПоля() Цикл
    Если Строка(ЗначениеПоляРасшифровки.Поле) = НазваниеИскомогоПоляСКД и ЗначениеПоляРасшифровки.Значение = ЗначениеИскомогоПоля Тогда
    НайденнаяОбласть = ТекущаяОбластьДокумента;
    Прервать;
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    КонецЕсли;
    Если НайденнаяОбласть <> Неопределено Тогда
    Прервать;
    КонецЕсли;
    КонецЦикла;
    Если НайденнаяОбласть <> Неопределено Тогда
    Прервать;
    КонецЕсли;
    КонецЦикла;
```
---
xaozai, Видимо, ТД после СКД состоит из каких-то независимых друг от друга областей...

Как с этим работать?
Так:

```1c
    ТД.УдалитьОбласть(ТД.Область(, 2, Х, 2), ТипСмещенияТабличногоДокумента.ПоГоризонтали);
```

где "Х" - последняя строка области с таким форматом строк.
---
А как определить Х?
---
xaozai, если отчет состоит из одной таблицы или одной ветви группировки, то "ТД.ВысотаТаблицы".
---
(9) Спасибо! Кажется, получается...
---
Всем спасибо!