Вывод таблиц в два столбца на макет

1. Jane1508 4 01.04.22 11:17 Сейчас в теме
УПП 1.3. На печатную форму надо вывести табличные поля в два столбца. Как наименее трудно затратно это сделать? Поля одинаковые. Строчки всегда будет 4. Пробовала разные варианты, что-то не получается и уже запуталась. Первый столбец вывожу через Вывести. Второй(в первой строке, во втором столбце) пробовала через Присоединить, он выводит его во втором столбец но ниже, не в один уровень с первым столбцом.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
6. nomad_irk 76 17.05.22 15:59 Сейчас в теме
(5)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", ЭтотОбъект.Ссылка);
Запрос.Текст = 
"ВЫБРАТЬ
|    ТехнологическаяКартаСекция_1.Серия КАК Серия,
|    ТехнологическаяКартаСекция_1.Цвет КАК Цвет,
|    ТехнологическаяКартаСекция_1.Вес КАК Вес,
|    ТехнологическаяКартаСекция_1.Анилокс КАК Анилокс
|ИЗ
|    Справочник.ТехнологическаяКарта.Секция_1 КАК ТехнологическаяКартаСекция_1
|ГДЕ
|    ТехнологическаяКартаСекция_1.Ссылка = &Ссылка";
    
Таб1 = Запрос.Выполнить().Выгрузить();
Запрос.Текст = 
"ВЫБРАТЬ
 |    ТехнологическаяКартаСекция_2.Серия КАК Серия,
 |    ТехнологическаяКартаСекция_2.Цвет КАК Цвет,
 |    ТехнологическаяКартаСекция_2.Вес КАК Вес,
 |    ТехнологическаяКартаСекция_2.Анилокс КАК Анилокс
 |ИЗ
 |    Справочник.ТехнологическаяКарта.Секция_2 КАК ТехнологическаяКартаСекция_2
 |ГДЕ
 |    ТехнологическаяКартаСекция_2.Ссылка = &Ссылка";    

Таб2 = Запрос.Выполнить().Выгрузить();

 Для ИндексСтроки = 0 По Таб1.Количество() - 1 Цикл 
    ОбластьТаб1 = Макет.ПолучитьОбласть("Строка|Столбец1");
    ОбластьТаб2 = Макет.ПолучитьОбласть("Строка|Столбец2");

    ОбластьТаб1.Параметры.Заполнить(Таб1[ИндексСтроки]);
    ТабДокумент.Вывести(ОбластьТаб1);
    ОбластьТаб2.Параметры.Заполнить(Таб2[ИндексСтроки]);
    ТабДокумент.Присоединить(ОбластьТаб2);
КонецЦикла;

Возврат ТабДокумент;
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. nomad_irk 76 17.05.22 14:26 Сейчас в теме
5. Jane1508 4 17.05.22 15:46 Сейчас в теме
(4)
ОбластьТаб1 = Макет.ПолучитьОбласть("Строка|Столбец1");
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("Ссылка", ЭтотОбъект.Ссылка);
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ТехнологическаяКартаСекция_1.Серия КАК Серия,
		|	ТехнологическаяКартаСекция_1.Цвет КАК Цвет,
		|	ТехнологическаяКартаСекция_1.Вес КАК Вес,
		|	ТехнологическаяКартаСекция_1.Анилокс КАК Анилокс
		|ИЗ
		|	Справочник.ТехнологическаяКарта.Секция_1 КАК ТехнологическаяКартаСекция_1
		|ГДЕ
		|	ТехнологическаяКартаСекция_1.Ссылка = &Ссылка";
	
	Таб1 = Запрос.Выполнить().Выгрузить();
	// 
	Для Каждого СтрокаТабличнойЧасти из  Таб1 Цикл 
		ОбластьТаб1.Параметры.Заполнить(СтрокаТабличнойЧасти);
		ТабДокумент.Вывести(ОбластьТаб1);
	КонецЦикла;
	
	ОбластьТаб2 = Макет.ПолучитьОбласть("Строка|Столбец2");
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("Ссылка", ЭтотОбъект.Ссылка);
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ТехнологическаяКартаСекция_2.Серия КАК Серия,
		|	ТехнологическаяКартаСекция_2.Цвет КАК Цвет,
		|	ТехнологическаяКартаСекция_2.Вес КАК Вес,
		|	ТехнологическаяКартаСекция_2.Анилокс КАК Анилокс
		|ИЗ
		|	Справочник.ТехнологическаяКарта.Секция_2 КАК ТехнологическаяКартаСекция_2
		|ГДЕ
		|	ТехнологическаяКартаСекция_2.Ссылка = &Ссылка";
	
	Таб2 = Запрос.Выполнить().Выгрузить();
		Для Каждого СтрокаТабличнойЧасти из  Таб2 Цикл
			ОбластьТаб2.Параметры.Заполнить(СтрокаТабличнойЧасти);
			ТабДокумент.Вывести(ОбластьТаб2); 
		КонецЦикла;	
	Возврат ТабДокумент;
Показать

Понятно, что тут тяп ляп какой-то, но как выйти из этого не пойму.
6. nomad_irk 76 17.05.22 15:59 Сейчас в теме
(5)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", ЭтотОбъект.Ссылка);
Запрос.Текст = 
"ВЫБРАТЬ
|    ТехнологическаяКартаСекция_1.Серия КАК Серия,
|    ТехнологическаяКартаСекция_1.Цвет КАК Цвет,
|    ТехнологическаяКартаСекция_1.Вес КАК Вес,
|    ТехнологическаяКартаСекция_1.Анилокс КАК Анилокс
|ИЗ
|    Справочник.ТехнологическаяКарта.Секция_1 КАК ТехнологическаяКартаСекция_1
|ГДЕ
|    ТехнологическаяКартаСекция_1.Ссылка = &Ссылка";
    
Таб1 = Запрос.Выполнить().Выгрузить();
Запрос.Текст = 
"ВЫБРАТЬ
 |    ТехнологическаяКартаСекция_2.Серия КАК Серия,
 |    ТехнологическаяКартаСекция_2.Цвет КАК Цвет,
 |    ТехнологическаяКартаСекция_2.Вес КАК Вес,
 |    ТехнологическаяКартаСекция_2.Анилокс КАК Анилокс
 |ИЗ
 |    Справочник.ТехнологическаяКарта.Секция_2 КАК ТехнологическаяКартаСекция_2
 |ГДЕ
 |    ТехнологическаяКартаСекция_2.Ссылка = &Ссылка";    

Таб2 = Запрос.Выполнить().Выгрузить();

 Для ИндексСтроки = 0 По Таб1.Количество() - 1 Цикл 
    ОбластьТаб1 = Макет.ПолучитьОбласть("Строка|Столбец1");
    ОбластьТаб2 = Макет.ПолучитьОбласть("Строка|Столбец2");

    ОбластьТаб1.Параметры.Заполнить(Таб1[ИндексСтроки]);
    ТабДокумент.Вывести(ОбластьТаб1);
    ОбластьТаб2.Параметры.Заполнить(Таб2[ИндексСтроки]);
    ТабДокумент.Присоединить(ОбластьТаб2);
КонецЦикла;

Возврат ТабДокумент;
Показать
8. Jane1508 4 17.05.22 16:16 Сейчас в теме
(6) Спасибо большое!!!
А вообще есть какой-то другой, более грамотный способ вывести такого формата таблички? У меня вот их 8. И на форме сделать не в виде Табличного документа. Было бы идеально ,конечно, добавить как в Екселе 8 таблиц формата 5х4
9. nomad_irk 76 18.05.22 07:53 Сейчас в теме
(8)чем не устраивают табличные части?
или как задача целиком звучит?
11. Jane1508 4 20.05.22 12:57 Сейчас в теме
(9) Задача сделать справочник с 8 таблицами одинакового формата 4х5.
Да устраивают, просто 8 таблиц ,а именно табличных полей громоздко выглядит)))
А можно как-то по умолчанию прописать, чтобы при открытии справочника уже было 4 строки пустые? А не добавлять в ручную каждую строку.
12. nomad_irk 76 20.05.22 14:35 Сейчас в теме
(11)
Да устраивают, просто 8 таблиц ,а именно табличных полей громоздко выглядит)))

На форме расположите ТЧ на 8-ми страницах - будет не громоздко.

(11)
А можно как-то по умолчанию прописать, чтобы при открытии справочника уже было 4 строки пустые?

можно. в "передОткрытием" пишите что-то вроде

Для Сч = 1 ПО 4 Цикл
         ТабличнаяЧасть1.Добавить();
         ТабличнаяЧасть2.Добавить();
............
         ТабличнаяЧастьN.Добавить();
КонецЦикла;
13. Jane1508 4 20.05.22 15:12 Сейчас в теме
(12)
Для Ст = 1 по 4 Цикл
	ЭлементыФормы.ТабличноеПоле1.ДобавитьСтроку();
	ЭлементыФормы.ТабличноеПоле2.ДобавитьСтроку();
	ЭлементыФормы.ТабличноеПоле3.ДобавитьСтроку();
КонецЦикла;

Вот в таком формате сделала, но он при каждом открытии добавляет строки. По коду логично, почему он так делает. Но понятное дело если мы просто зашли посмотреть справочник, добавлять ничего не надо. Теперь вопрос,как зафиксировать чтобы всегда было 4 строки и всё.
14. nomad_irk 76 20.05.22 15:19 Сейчас в теме
(13)проверять количество строк, имеющихся в ТЧ:

Если ТабличнаяЧасть1.Количество() < 4 Тогда
           ТабличнаяЧасть1.Добавить();
КОнецЕсли;
15. Jane1508 4 20.05.22 15:25 Сейчас в теме
(14) Я по-другому смогла сделать, Через
Если ЭтотОбъект.ЭтоНовый() Тогда
. Мне такой вариант подходит.
Через проверку количества строк, это надо 8 табличных полей проверить, наверное дольше времени займет.
Спасибо большое за помощь!
10. yurikmellon 6 18.05.22 08:32 Сейчас в теме
(1) я такую задачу решал через два табличных документа, присоединял первый ко второму

 ТабДок1 = Новый ТабличныйДокумент();
    ТабДок2 = Новый ТабличныйДокумент();
    СтрокиРаботы = Макет.ПолучитьОбласть("Строки|Работы"); 
    СтрокиМатериалы = Макет.ПолучитьОбласть("Строки|Материалы"); 
    Для каждого СтрокаРабот Из СсылкаНаОбъект.Работы Цикл
        СтрокиРаботы.Параметры.КодРаб = СтрокаРабот.Работа.Артикул;
        СтрокиРаботы.Параметры.Работа = СтрокаРабот.Работа.Наименование;
        СтрокиРаботы.Параметры.Стоимость = СтрокаРабот.СуммаВсего;
        ТабДок1.Вывести(СтрокиРаботы);
    КонецЦикла;
    Для каждого СтрокаТовары из СсылкаНаОбъект.Товары цикл   
        СтрокиМатериалы.Параметры.Товар = СтрокаТовары.Номенклатура.Наименование;
        СтрокиМатериалы.Параметры.Кол = СтрокаТовары.Количество;
            СтрокиМатериалы.Параметры.Стоимость = СтрокаТовары.СуммаВсего;
        ТабДок2.Вывести(СтрокиМатериалы);
    КонецЦикла;
ТабДокумент.Присоединить(ТабДок1);
ТабДокумент.Присоединить(ТабДок2);
Показать


https://imgur.com/nZZCAFC
2. user1203706 13 02.04.22 11:36 Сейчас в теме
(1) Самый примитив - через вставитьОбласть.
В начале формируете 2 независимых Табличных Документа, потом второй вставляете в первый через ВставитьОбласть. Усё.
3. Jane1508 4 17.05.22 14:22 Сейчас в теме
(2) а в макете делать две отдельные вертикальные области? Или вообще второй столбец удалить
Прикрепленные файлы:
7. nomad_irk 76 17.05.22 16:03 Сейчас в теме
(3)так понимаю, у вас шапка на два столбца шириной, поэтому не нужно удалять.
Оставьте свое сообщение

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