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

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 185 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) Уже успел на тот момент подобное сделать. Но всё же код очень помог. Огромное спасибо!!!
Оставьте свое сообщение
Вакансии
Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день