Как удалить столбец в отчете с разным форматом строк?
Мне надо удалить второй столбец, между номенклатурой и Т1, пустой.
Проблема в том, что табличный документ имеет разный формат.
Как корректно удалить столбец?
Я в итоге ставлю ширину столбца 0.1 для ячейки отчета с товарами и так он скрывается.
Но хочется удалить целиком.
Обработка на обычных формах, открывается в любой конфе, разработка под УТ 10.3
Проблема в том, что табличный документ имеет разный формат.
Как корректно удалить столбец?
Я в итоге ставлю ширину столбца 0.1 для ячейки отчета с товарами и так он скрывается.
Но хочется удалить целиком.
Макет = ПолучитьМакет("Макет");
ОбластьКолонки = Макет.Область("C2");
Макет.УдалитьОбласть(ОбластьКолонки, ТипСмещенияТабличногоДокумента.ПоВертикали);
//ОбластьКолонки.ШиринаКолонки = 0.1;
Макет.Показать();
Обработка на обычных формах, открывается в любой конфе, разработка под УТ 10.3
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
(16) если обрабатываете шапку, значит вполне можете найти область "Наименование". По ней определяете номер строки и номер колонки + 1.
Тут главное попасть в нужный формат строк. Начальная строка и начальная колонка должна быть в этом формате строк.
УдаляемаяОбласть = Результат.Область(ОбластьНаименование.Верх, ОбластьНаименование.Право + 1, Результат.ВысотаТаблицы);
Результат.УдалитьОбласть(УдаляемаяОбласть, ТипСмещенияТабличногоДокумента.ПоГоризонтали);
Тут главное попасть в нужный формат строк. Начальная строка и начальная колонка должна быть в этом формате строк.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Ежели нужно удалить какой столбец отчета на СКД, то лучше уж при формировании исключить его из выбранных полей/группировок. Ежели же нет возможности формировать СКД самостоятельно и приходится работать с макетом, то тут надо изобретать какой-то велосипед, особенно с учетом того, что над этой областью есть еще одна, которая объединена...
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Макет");
ОбластьМакета = Макет.ПолучитьОбласть();
ОбластьКолонки = ОбластьМакета.Область(4, 2, ОбластьМакета.ВысотаТаблицы);
ОбластьМакета.УдалитьОбласть(ОбластьКолонки, ТипСмещенияТабличногоДокумента.ПоГоризонтали);
ТабДок.Вывести(ОбластьМакета);
ТабДок.Показать();
Но проще дать имя нужной колонке (пример: "УдаляемаяОбласть")
и тогда получить Область можно не вычисляя, а указывая имя:
ОбластьКолонки = ОбластьМакета.Область("УдаляемаяОбласть");
Мне кажется не работает, т.к. мы из Табличного документа пробуем не его область удалить, а отдельно собранную по макету. Надо бы удалять область табдока, или вовсе собрать без той области, короче говоря, есть две переменные ТабДок и Макет
И ТабДок не имеет областей, мы же его собрали, если уж удалять, то
ТабДок.УдалитьОбласть(ТабДок.Область(4, 2, ОбластьМакета.ВысотаТаблицы));
И ТабДок не имеет областей, мы же его собрали, если уж удалять, то
ТабДок.УдалитьОбласть(ТабДок.Область(4, 2, ОбластьМакета.ВысотаТаблицы));
(16) если обрабатываете шапку, значит вполне можете найти область "Наименование". По ней определяете номер строки и номер колонки + 1.
Тут главное попасть в нужный формат строк. Начальная строка и начальная колонка должна быть в этом формате строк.
УдаляемаяОбласть = Результат.Область(ОбластьНаименование.Верх, ОбластьНаименование.Право + 1, Результат.ВысотаТаблицы);
Результат.УдалитьОбласть(УдаляемаяОбласть, ТипСмещенияТабличногоДокумента.ПоГоризонтали);
Тут главное попасть в нужный формат строк. Начальная строка и начальная колонка должна быть в этом формате строк.
(19) спасибо, помогло.
В этом примере:
В коде отчета:
В этом примере:
Макет = ПолучитьМакет("Макет");
ОбластьКолонки = Макет.Область("R4C2:R9C2");
Макет.УдалитьОбласть(ОбластьКолонки, ТипСмещенияТабличногоДокумента.ПоГоризонтали);
//ОбластьКолонки.ШиринаКолонки = 0.1;
Макет.Показать();
В коде отчета:
ПредШирина = ДокументРезультат.ШиринаТаблицы;
ОбластьКолонки =
ДокументРезультат.Область(
СтрокаНоменклатуры,
Кол,
ДокументРезультат.ВысотаТаблицы,
Кол);
Если ПредШирина <> ДокументРезультат.ШиринаТаблицы Тогда
Продолжить;
КонецЕсли;
ОбластьКолонки.ШиринаКолонки = 0.1;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот