Возможно передвинуть текст/параметр в табличном документе на одну строку выше программно?

1. Zemo 06.04.23 12:34 Сейчас в теме
Добрый день.
Понимаю, что вопрос может показаться смешным и глупым. После долгих блужданий по интернету не смог найти ясного ответа.
На скрине каждый цвет- область, которая отличается по имени. Суть в том, что с красным цветом и коричневым в плане вывода проблем нет, но как мне вывести синюю область? Конечно проще всего взять всё это под одну область, но синяя область будет заполняться и выводиться через цикл, соответственно, если использовать одну область, всё будет дублироваться. Для синей области, я так же делал отдельную область (скрин 2), чтобы она выводилась строго по левому краю, но у меня получается пробел в 2-3 ячейки. Исходя из этого, я задаюсь вопросом, возможно ли программно поднять на эти 2-3 ячейки синюю область, чтобы избежать пробела? Я не удивлюсь тому, если упущу самое элементарное. Поэтому заранее прошу без критики и негатива, все мы люди)
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
4. Onwardv 64 06.04.23 14:54 Сейчас в теме
(3) Вот код:

Процедура Пуск() Экспорт
	КраснаяОбласть = ПолучитьКраснуюОбласть();
	КоричневаяОбласть = ПолучитьКоричневуюОбласть();
	СиняяОбласть = ПолучитьСинююОбласть();
	
	КоричневаяПлюсСиняя = Новый ТабличныйДокумент;
	КоричневаяПлюсСиняя.Вывести(КоричневаяОбласть);
	КоричневаяПлюсСиняя.Вывести(СиняяОбласть);
	
	ИтоговыйТабДок = Новый ТабличныйДокумент;
	
	ИтоговыйТабДок.Вывести(КраснаяОбласть);
	
	ИтоговыйТабДок.Присоединить(КоричневаяПлюсСиняя);
	
	ИтоговыйТабДок.Область(1,1).ШиринаКолонки = 26;
	ИтоговыйТабДок.Область(1,2).ШиринаКолонки = 30;
	ИтоговыйТабДок.Показать();
КонецПроцедуры                            

Функция ПолучитьКраснуюОбласть()
	ТабДок = Новый ТабличныйДокумент;
	ТабДок.Область(1,1,1,1).Текст = "Первая строка Красной Области";
	ТабДок.Область(2,1,2,1).Текст = "Вторая строка Красной Области";
	ТабДок.Область(3,1,3,1).Текст = "Третья строка Красной Области";
	ТабДок.Область(1,1,3,1).ЦветТекста = Новый Цвет(255, 0, 0); // красный 
	Область = ТабДок.ПолучитьОбласть(1,1,3,1);

	Возврат Область;   
КонецФункции         

Функция ПолучитьКоричневуюОбласть() 
	ТабДок = Новый ТабличныйДокумент;
	ТабДок.Область(1,1,1,1).Текст = "Первая строка Коричневой Области";
	ТабДок.Область(1,1,1,1).ЦветТекста = Новый Цвет(123, 63, 0); // коричневый 
	Область = ТабДок.ПолучитьОбласть(1,1,1,1);
	Возврат Область;   
КонецФункции

Функция ПолучитьСинююОбласть()
	ТабДок = Новый ТабличныйДокумент;
	ТабДок.Область(1,1,1,1).Текст = "Первая строка Синей Области";
	ТабДок.Область(2,1,2,1).Текст = "Вторая строка Синей Области";
	ТабДок.Область(1,1,2,1).ЦветТекста = Новый Цвет(0, 0, 255); // синий 
	Область = ТабДок.ПолучитьОбласть(1,1,2,1);
	Возврат Область;   
КонецФункции
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. coollerinc 186 06.04.23 14:51 Сейчас в теме
Я бы сделал так: объединил обе области. и оставил вашу отдельную область. В первую итерацию цикла я бы заполнял в объединённую область. Последующие записи уже в отдельную область.
3. Onwardv 64 06.04.23 14:52 Сейчас в теме
Надо понимать, что методы Получитьобласть(), Вывести() и Присоединить() работают с объектами типа ТабличныйДокумент.

Отсюда следует, что Вам нужно использовать промежуточный объект ТабличныйДокумент,
где вы соберете Коричневую и Синюю область друг под другом.
Затем, в итоговом ТабДоке делаете вывод красной области и присоединяете справа промежуточный.
Прикрепленные файлы:
4. Onwardv 64 06.04.23 14:54 Сейчас в теме
(3) Вот код:

Процедура Пуск() Экспорт
	КраснаяОбласть = ПолучитьКраснуюОбласть();
	КоричневаяОбласть = ПолучитьКоричневуюОбласть();
	СиняяОбласть = ПолучитьСинююОбласть();
	
	КоричневаяПлюсСиняя = Новый ТабличныйДокумент;
	КоричневаяПлюсСиняя.Вывести(КоричневаяОбласть);
	КоричневаяПлюсСиняя.Вывести(СиняяОбласть);
	
	ИтоговыйТабДок = Новый ТабличныйДокумент;
	
	ИтоговыйТабДок.Вывести(КраснаяОбласть);
	
	ИтоговыйТабДок.Присоединить(КоричневаяПлюсСиняя);
	
	ИтоговыйТабДок.Область(1,1).ШиринаКолонки = 26;
	ИтоговыйТабДок.Область(1,2).ШиринаКолонки = 30;
	ИтоговыйТабДок.Показать();
КонецПроцедуры                            

Функция ПолучитьКраснуюОбласть()
	ТабДок = Новый ТабличныйДокумент;
	ТабДок.Область(1,1,1,1).Текст = "Первая строка Красной Области";
	ТабДок.Область(2,1,2,1).Текст = "Вторая строка Красной Области";
	ТабДок.Область(3,1,3,1).Текст = "Третья строка Красной Области";
	ТабДок.Область(1,1,3,1).ЦветТекста = Новый Цвет(255, 0, 0); // красный 
	Область = ТабДок.ПолучитьОбласть(1,1,3,1);

	Возврат Область;   
КонецФункции         

Функция ПолучитьКоричневуюОбласть() 
	ТабДок = Новый ТабличныйДокумент;
	ТабДок.Область(1,1,1,1).Текст = "Первая строка Коричневой Области";
	ТабДок.Область(1,1,1,1).ЦветТекста = Новый Цвет(123, 63, 0); // коричневый 
	Область = ТабДок.ПолучитьОбласть(1,1,1,1);
	Возврат Область;   
КонецФункции

Функция ПолучитьСинююОбласть()
	ТабДок = Новый ТабличныйДокумент;
	ТабДок.Область(1,1,1,1).Текст = "Первая строка Синей Области";
	ТабДок.Область(2,1,2,1).Текст = "Вторая строка Синей Области";
	ТабДок.Область(1,1,2,1).ЦветТекста = Новый Цвет(0, 0, 255); // синий 
	Область = ТабДок.ПолучитьОбласть(1,1,2,1);
	Возврат Область;   
КонецФункции
Показать
5. Onwardv 64 06.04.23 14:57 Сейчас в теме
(3) Надеюсь, понятно всё объяснил.
6. Zemo 07.04.23 01:22 Сейчас в теме
(5) Уже успел на тот момент подобное сделать. Но всё же код очень помог. Огромное спасибо!!!
Оставьте свое сообщение

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