Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 10:25

Работа с макетом в документе

Автор Nosferatu112, 21 июн 2024, 12:03

0 Пользователей и 1 гость просматривают эту тему.

Nosferatu112

Есть у меня макет,
СкринМакета.png
Попробовал выводить его так
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Автомобили.Наименование КАК Наименование,
| Автомобили.Марка КАК Марка,
| Автомобили.Категория КАК Категория,
| Автомобили.ЦветТС КАК ЦветТС,
| Автомобили.ГодВыпуска КАК ГодВыпуска,
| Автомобили.ГосударственныйНомер КАК ГосударственныйНомер,
| Автомобили.VIN КАК VIN,
| Автомобили.ШассиРама КАК ШассиРама,
| Автомобили.МодельНомерДвигателя КАК МодельНомерДвигателя,
| Автомобили.КузовКабинаПрицеп КАК КузовКабинаПрицеп,
| Автомобили.МощностьДвигателя КАК МощностьДвигателя,
| Автомобили.СерияСТС + Автомобили.НомерСТС КАК СвидетельствоОРегистрации
|ИЗ
| Справочник.Автомобили КАК Автомобили
|ГДЕ
| Автомобили.СобственникТС = &СобственникТС";

Запрос.УстановитьПараметр("СобственникТС", ВыборкаСобственник.СобственникТС);

РезультатЗапроса = Запрос.Выполнить();

Выборка = РезультатЗапроса.Выбрать();
ТС = 0;
Пока Выборка.Следующий() Цикл
ТС = ТС + 1;
ДанныеШапка.Параметры.Автомобиль = "ТС №" + Строка(ТС);
ДанныеШапка.Параметры.НаименованиеАвто = Выборка.Наименование;
ДанныеШапка.Параметры.МаркаАвто = Выборка.Марка;
ДанныеШапка.Параметры.КатегорияАвто = Выборка.Категория;
ДанныеШапка.Параметры.ЦветАвто = Выборка.ЦветТС;
ДанныеШапка.Параметры.ГодАвто = Выборка.ГодВыпуска;
ДанныеШапка.Параметры.ГосНомер = Выборка.ГосударственныйНомер;
ДанныеШапка.Параметры.VIN = Выборка.VIN;
ДанныеШапка.Параметры.Шасси = Выборка.ШассиРама;
ДанныеШапка.Параметры.Двигатель = Выборка.МодельНомерДвигателя;
ДанныеШапка.Параметры.Кузов = Выборка.КузовКабинаПрицеп;
ДанныеШапка.Параметры.Мощность = Выборка.МощностьДвигателя;
ДанныеШапка.Параметры.СвидетельствоОРегистрации = Выборка.СвидетельствоОРегистрации;
ТабличныйДокумент.Присоединить(ДанныеШапка);
КонецЦикла;
Но данные выводятся друг под другом то есть
Характеристика   автомобиль

Характеристика   автомобиль

Характеристика   автомобиль
И.т.д
Как мне вывести шапку 1 раз а параметры присоединять справа столько раз сколько есть авто
Вот так
НужнаяТаблица.png

LexaK

Nosferatu112, скорее всего
область ДанныеШапка - должна быть прямоугольной формы
а не выделенными строчками макета
(не проверял)
если помогло нажмите: Спасибо!

Максим75

Nosferatu112, а к чему Вы присоединяете?
в тексте этого не видно. Должна быть вначале область, а потом к ней что-то присоединяется.

Nosferatu112

Максим75, Весь код выглядит так

ТабличныйДокумент = Новый ТабличныйДокумент; 

ТабличныйДокумент.ПолеСлева = 15;
ТабличныйДокумент.ПолеСправа = 15;
ТабличныйДокумент.ПолеСнизу = 5;
ТабличныйДокумент.ПолеСверху = 10;

ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ТабличныйДокумент.АвтоМасштаб = Истина;
ТабличныйДокумент.ОтображатьЗаголовки = Ложь;
ТабличныйДокумент.ОтображатьСетку = Ложь;
ТабличныйДокумент.ТолькоПросмотр = Ложь;

Макет = ПолучитьМакет("МакетПриложения1");

Шапка = Макет.ПолучитьОбласть("Шапка");

ДанныеШапка = Макет.ПолучитьОбласть("ДанныеШапка");


Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ок_КомплексныйДоговорАрендыНесколькихТСБезЭкипажа.Номер КАК Номер,
| ДЕНЬ(ок_КомплексныйДоговорАрендыНесколькихТСБезЭкипажа.Дата) КАК Число,
| МЕСЯЦ(ок_КомплексныйДоговорАрендыНесколькихТСБезЭкипажа.Дата) КАК Месяц,
| ГОД(ок_КомплексныйДоговорАрендыНесколькихТСБезЭкипажа.Дата) КАК Год,
| ок_КомплексныйДоговорАрендыНесколькихТСБезЭкипажа.ДатаОкончанияДействия КАК ДатаОкончанияДействия,
| ок_КомплексныйДоговорАрендыНесколькихТСБезЭкипажа.Арендатор.Наименование КАК Арендатор
|ИЗ
| Документ.ок_КомплексныйДоговорАрендыНесколькихТСБезЭкипажа КАК ок_КомплексныйДоговорАрендыНесколькихТСБезЭкипажа
|ГДЕ
| ок_КомплексныйДоговорАрендыНесколькихТСБезЭкипажа.Ссылка = &Ссылка";

Запрос.УстановитьПараметр("Ссылка", СсылкиНаДокументы);
РезультатЗапроса = Запрос.Выполнить();

Выб = РезультатЗапроса.Выбрать();

Пока Выб.Следующий() Цикл

Шапка.Параметры.НомерДоговора = Выб.Номер;
Шапка.Параметры.Число = Выб.Число;
Если Выб.Месяц = 1 Тогда
Месяц = "Января";
ИначеЕсли Выб.Месяц = 2 Тогда
Месяц = "Февраля";
ИначеЕсли Выб.Месяц = 3 Тогда
Месяц = "Марта";
ИначеЕсли Выб.Месяц = 4 Тогда
Месяц = "Апреля";
ИначеЕсли Выб.Месяц = 5 Тогда
Месяц = "Мая";
ИначеЕсли Выб.Месяц = 6 Тогда
Месяц = "Июня";
ИначеЕсли Выб.Месяц = 7 Тогда
Месяц = "Июля";
ИначеЕсли Выб.Месяц = 8 Тогда
Месяц = "Августа";
ИначеЕсли Выб.Месяц = 9 Тогда
Месяц = "Сентября";
ИначеЕсли Выб.Месяц = 10 Тогда
Месяц = "Октября";
ИначеЕсли Выб.Месяц = 11 Тогда
Месяц = "Ноября";
ИначеЕсли Выб.Месяц = 12 Тогда
Месяц = "Декабря";
КонецЕсли;
Шапка.Параметры.Месяц = Месяц;
Шапка.Параметры.Год = СтрЗаменить(Строка(Выб.Год),Символы.НПП,"");

КонецЦикла;

ТабличныйДокумент.Вывести(Шапка);
//ТабличныйДокумент.Вывести(ДанныеШапка);



Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ок_КомплексныйДоговорАрендыНесколькихТСБезЭкипажа.СобственникТС КАК СобственникТС
|ИЗ
| Документ.ок_КомплексныйДоговорАрендыНесколькихТСБезЭкипажа КАК ок_КомплексныйДоговорАрендыНесколькихТСБезЭкипажа
|ГДЕ
| ок_КомплексныйДоговорАрендыНесколькихТСБезЭкипажа.Ссылка = &Ссылка";

Запрос.УстановитьПараметр("Ссылка", СсылкиНаДокументы);

РезультатЗапроса = Запрос.Выполнить();

ВыборкаСобственник = РезультатЗапроса.Выбрать();

Пока ВыборкаСобственник.Следующий() Цикл


Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Автомобили.Наименование КАК Наименование,
| Автомобили.Марка КАК Марка,
| Автомобили.Категория КАК Категория,
| Автомобили.ЦветТС КАК ЦветТС,
| Автомобили.ГодВыпуска КАК ГодВыпуска,
| Автомобили.ГосударственныйНомер КАК ГосударственныйНомер,
| Автомобили.VIN КАК VIN,
| Автомобили.ШассиРама КАК ШассиРама,
| Автомобили.МодельНомерДвигателя КАК МодельНомерДвигателя,
| Автомобили.КузовКабинаПрицеп КАК КузовКабинаПрицеп,
| Автомобили.МощностьДвигателя КАК МощностьДвигателя,
| Автомобили.СерияСТС + Автомобили.НомерСТС КАК СвидетельствоОРегистрации
|ИЗ
| Справочник.Автомобили КАК Автомобили
|ГДЕ
| Автомобили.СобственникТС = &СобственникТС";

Запрос.УстановитьПараметр("СобственникТС", ВыборкаСобственник.СобственникТС);

РезультатЗапроса = Запрос.Выполнить();

Выборка = РезультатЗапроса.Выбрать();
ТС = 0;
Пока Выборка.Следующий() Цикл
ТС = ТС + 1;
ДанныеШапка.Параметры.Автомобиль = "ТС №" + Строка(ТС);
ДанныеШапка.Параметры.НаименованиеАвто = Выборка.Наименование;
ДанныеШапка.Параметры.МаркаАвто = Выборка.Марка;
ДанныеШапка.Параметры.КатегорияАвто = Выборка.Категория;
ДанныеШапка.Параметры.ЦветАвто = Выборка.ЦветТС;
ДанныеШапка.Параметры.ГодАвто = Выборка.ГодВыпуска;
ДанныеШапка.Параметры.ГосНомер = Выборка.ГосударственныйНомер;
ДанныеШапка.Параметры.VIN = Выборка.VIN;
ДанныеШапка.Параметры.Шасси = Выборка.ШассиРама;
ДанныеШапка.Параметры.Двигатель = Выборка.МодельНомерДвигателя;
ДанныеШапка.Параметры.Кузов = Выборка.КузовКабинаПрицеп;
ДанныеШапка.Параметры.Мощность = Выборка.МощностьДвигателя;
ДанныеШапка.Параметры.СвидетельствоОРегистрации = Выборка.СвидетельствоОРегистрации;
ТабличныйДокумент.Присоединить(ДанныеШапка);
КонецЦикла;

    КонецЦикла;



Возврат ТабличныйДокумент;

Nosferatu112

LexaK, Прямоугольной формы имеете ввиду вот так?

ДругойМакет.png

Если да, то я так уже пробовал выводится друг под другом

Максим75

Nosferatu112, ну области немного не совпадают (не знаю, может это важно).
Да и названия в макете областей одни, а в коде Вы другие выбираете.

Nosferatu112

Максим75, Макет в скрине в ответе Lexak это другой макет их просто 3 разных

LexaK

Цитата: Nosferatu112 от 21 июн 2024, 12:22Прямоугольной формы имеете ввиду вот так?
вы не правильно понимаете определение области макета!
вот пример вывода и присоединения областей
если помогло нажмите: Спасибо!

Nosferatu112

LexaK, Благодарю, я не знал что область можно выделять не только слева в макете, заработало

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск