Как удалить столбец в отчете с разным форматом строк?

1. fixin 4253 17.12.23 21:50 Сейчас в теме
Мне надо удалить второй столбец, между номенклатурой и Т1, пустой.
Проблема в том, что табличный документ имеет разный формат.

Как корректно удалить столбец?
Я в итоге ставлю ширину столбца 0.1 для ячейки отчета с товарами и так он скрывается.
Но хочется удалить целиком.

	Макет = ПолучитьМакет("Макет");
	ОбластьКолонки = Макет.Область("C2");
	Макет.УдалитьОбласть(ОбластьКолонки, ТипСмещенияТабличногоДокумента.ПоВертикали);
	//ОбластьКолонки.ШиринаКолонки = 0.1;
	Макет.Показать();


Обработка на обычных формах, открывается в любой конфе, разработка под УТ 10.3
Прикрепленные файлы:
НеУдаляетсяКолонка.epf
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
19. spacecraft 18.12.23 15:54 Сейчас в теме +1 $m
(16) если обрабатываете шапку, значит вполне можете найти область "Наименование". По ней определяете номер строки и номер колонки + 1.
УдаляемаяОбласть = Результат.Область(ОбластьНаименование.Верх, ОбластьНаименование.Право + 1, Результат.ВысотаТаблицы);
Результат.УдалитьОбласть(УдаляемаяОбласть, ТипСмещенияТабличногоДокумента.ПоГоризонтали);

Тут главное попасть в нужный формат строк. Начальная строка и начальная колонка должна быть в этом формате строк.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
11. Vinzor 94 18.12.23 12:47 Сейчас в теме
15. starik-2005 3046 18.12.23 15:03 Сейчас в теме
(1) Ежели нужно удалить какой столбец отчета на СКД, то лучше уж при формировании исключить его из выбранных полей/группировок. Ежели же нет возможности формировать СКД самостоятельно и приходится работать с макетом, то тут надо изобретать какой-то велосипед, особенно с учетом того, что над этой областью есть еще одна, которая объединена...
2. user1481466 17.12.23 22:40 Сейчас в теме +0.1 $m
Добрый день!

Попробуйте по горизонтали

Макет.УдалитьОбласть(ОбластьКолонки, ТипСмещенияТабличногоДокумента.ПоГоризонтали);
3. Agapov_Stas 1 18.12.23 01:39 Сейчас в теме
ну если в конфигураторе удалить, то как показано на скрине
наступить на ячейку, которая вам нужна - вверху выделится нужный формат строк и правой кнопкой по заголовку - удалить
Прикрепленные файлы:
6. fixin 4253 18.12.23 09:57 Сейчас в теме
(3) мне нужно программно, т.е. кодом на языке 1с.
10. user856012 13 18.12.23 12:00 Сейчас в теме
нужно программно, т.е. кодом на языке 1с
Как правило, необходимость извращений с кодом свидетельствует об изначально неправильной постановке задачи.
4. Agapov_Stas 1 18.12.23 01:46 Сейчас в теме +0.2 $m
Если это результат формирования СКД, то только через танцы с бубнами
например вот так Пример
7. fixin 4253 18.12.23 09:57 Сейчас в теме
8. Agapov_Stas 1 18.12.23 10:28 Сейчас в теме +0.1 $m
(7) ну да - есть такое
но можете попробовать поиграться с настройками вывода отчета (например, убрать вывод отбора или параметров - именно они создают отдельный формат строк )
если они не критичны для вас - то думаю это решит вопрос
5. fixin 4253 18.12.23 09:56 Сейчас в теме
9. spacecraft 18.12.23 11:19 Сейчас в теме
	ТабДок = Новый ТабличныйДокумент;
	Макет = ПолучитьМакет("Макет");
	ОбластьМакета = Макет.ПолучитьОбласть();
	ОбластьКолонки = ОбластьМакета.Область(4, 2, ОбластьМакета.ВысотаТаблицы);
	ОбластьМакета.УдалитьОбласть(ОбластьКолонки, ТипСмещенияТабличногоДокумента.ПоГоризонтали);
	ТабДок.Вывести(ОбластьМакета);
	ТабДок.Показать();


Но проще дать имя нужной колонке (пример: "УдаляемаяОбласть")
и тогда получить Область можно не вычисляя, а указывая имя:
ОбластьКолонки = ОбластьМакета.Область("УдаляемаяОбласть");
12. user1481466 18.12.23 12:51 Сейчас в теме
Мне кажется не работает, т.к. мы из Табличного документа пробуем не его область удалить, а отдельно собранную по макету. Надо бы удалять область табдока, или вовсе собрать без той области, короче говоря, есть две переменные ТабДок и Макет
И ТабДок не имеет областей, мы же его собрали, если уж удалять, то

ТабДок.УдалитьОбласть(ТабДок.Область(4, 2, ОбластьМакета.ВысотаТаблицы));
13. fixin 4253 18.12.23 14:42 Сейчас в теме
(9) этот табличный документ СКД рисует, там имя не задашь.
14. Anton_new01 18.12.23 15:01 Сейчас в теме
мне кажется самый простой способ это задать макет СКД.
в нужном формате, без программных извращений.
20. fixin 4253 18.12.23 15:54 Сейчас в теме
(14) с макетом я бился еще полчаса, он выдает лишние колонки с цифрами в заголовках. Не все так однозначно.

Вот скриншот с макетами СКД.
Прикрепленные файлы:
16. fixin 4253 18.12.23 15:12 Сейчас в теме
(15) не получится. Я тупил минут 15 и понял, что не пойму, как его исключить. Проще пост-обработку сделать, тем более, что я шапку все равно обрабатываю, ибо макеты СКД глючат.
17. starik-2005 3046 18.12.23 15:18 Сейчас в теме +0.1 $m
(16)
Я тупил минут 15 и понял, что не пойму, как его исключить
Так он в горизонтальной группировке. Просто пробежаться по группировкам таблицы (колонки) и найти там группировку "Заказ", ну и Использовать = Ложь.
19. spacecraft 18.12.23 15:54 Сейчас в теме +1 $m
(16) если обрабатываете шапку, значит вполне можете найти область "Наименование". По ней определяете номер строки и номер колонки + 1.
УдаляемаяОбласть = Результат.Область(ОбластьНаименование.Верх, ОбластьНаименование.Право + 1, Результат.ВысотаТаблицы);
Результат.УдалитьОбласть(УдаляемаяОбласть, ТипСмещенияТабличногоДокумента.ПоГоризонтали);

Тут главное попасть в нужный формат строк. Начальная строка и начальная колонка должна быть в этом формате строк.
21. fixin 4253 18.12.23 16:58 Сейчас в теме
(19) спасибо, помогло.
В этом примере:
	
        Макет = ПолучитьМакет("Макет");
	ОбластьКолонки = Макет.Область("R4C2:R9C2");
	Макет.УдалитьОбласть(ОбластьКолонки, ТипСмещенияТабличногоДокумента.ПоГоризонтали);
	//ОбластьКолонки.ШиринаКолонки = 0.1;
	Макет.Показать();


В коде отчета:
				ПредШирина = ДокументРезультат.ШиринаТаблицы;
				ОбластьКолонки = 
				ДокументРезультат.Область(
				СтрокаНоменклатуры,
				Кол, 
				ДокументРезультат.ВысотаТаблицы,
				Кол); 
				Если ПредШирина <> ДокументРезультат.ШиринаТаблицы Тогда
					Продолжить;
				КонецЕсли;
				ОбластьКолонки.ШиринаКолонки = 0.1;  

Показать
18. fixin 4253 18.12.23 15:53 Сейчас в теме
(17) не выйдет, ибо под ним две группировки.
Прикрепленные файлы:
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот