Добрый день, уважаемые форумчани. Прошу помощи
1С:Предприятие 8.3 (8.3.15.1869), "Управление производственным предприятием для Украины", редакция 1.3 (1.3.66.1) , формы обычные (не управляемые)
как посчитать страницы в макете при выводе области в цикле
и как вывести их в нижнем или в верхнем колонтитуле?
Макет = ЭтотОбъект.ПолучитьМакет("МакетКаталогПоЭлементам");
ОбластьШапка1= Макет.ПолучитьОбласть("ШапкаСтока|Шапка1");
ОбластьШапка2= Макет.ПолучитьОбласть("ШапкаСтока|Параметры1");
ОбластьШапка3= Макет.ПолучитьОбласть("ШапкаСтока|Шапка2");
ОбластьШапка4= Макет.ПолучитьОбласть("ШапкаСтока|Параметры2");
ОбластьКартинка11= Макет.ПолучитьОбласть("параметр|Шапка1");
ОбластьПараметр1= Макет.ПолучитьОбласть("параметр|Параметры1");
ОбластьКартинка22= Макет.ПолучитьОбласть("параметр|Шапка2");
ОбластьПараметр2= Макет.ПолучитьОбласть("параметр|Параметры2");
ОбластьШапка4.Параметры.Дата = ТекущаяДата();
ТабДок.Вывести(ОбластьШапка1);
ТабДок.Присоединить(ОбластьШапка2);
ТабДок.Присоединить(ОбластьШапка3);
ТабДок.Присоединить(ОбластьШапка4);
МассивОбластей = Новый Массив;
НомерСтроки=5;
Для каждого строка из аа Цикл
...........
Для i = 1 По строка[0].свойства.Количество() Цикл
если строка[0].свойства[i-1].выбор=Истина Тогда
ОбластьПараметр1.Параметры.ИмяДопПоля=строка[0].свойства[i-1].наименование;
ТабДок.Область(5+(i-1),3).ШиринаКолонки = ШиринаРисунка;
ТабДок.Область(5+(i-1),3).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь); //имя,размер,полужирный,наклонный,подчеркивание,зачеркивание
ТабДок.Область(5+(i-1),2).ШиринаКолонки =ШиринаКол;
ТабДок.Область(5+(i-1),2).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь);
ТабДок.Область(5+(i-1),1).ШиринаКолонки = ШиринаКол;
ТабДок.Область(5+(i-1),1).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь);
ТабДок.Область(5+(i-1),1).ВысотаСтроки=ВысотаСтр;
ТабДок.Область(5+(i-1),2).ВысотаСтроки=ВысотаСтр;
ОбластьПараметр1.Параметры.ЗначениеДопПоля=строка[0].свойства[i-1].значение;
ТабДок.Вывести(ОбластьПараметр1);
ТабДок.Присоединить(ОбластьКартинка11);
ОбластьПараметр2.Параметры.ИмяДопПоля=строка[1].свойства[i-1].наименование;
ОбластьПараметр2.Параметры.ЗначениеДопПоля=строка[1].свойства[i-1].значение;
ТабДок.Область(5+(i-1),4).ВысотаСтроки=ВысотаСтр;
ТабДок.Область(5+(i-1),5).ВысотаСтроки=ВысотаСтр;
ТабДок.Область(5+(i-1),4).ШиринаКолонки =ШиринаКол;
ТабДок.Область(5+(i-1),4).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь);
ТабДок.Область(5+(i-1),5).ШиринаКолонки =ШиринаКол;
ТабДок.Область(5+(i-1),5).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь);
ТабДок.Область(5+(i-1),6).ШиринаКолонки = ШиринаРисунка;
ТабДок.Область(5+(i-1),6).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь);
ТабДок.Присоединить(ОбластьПараметр2);
ТабДок.Присоединить(ОбластьКартинка22);
КонецЦикла;
НомерСтроки_н=НомерСтроки;
НомерСтроки=НомерСтроки+строка[0].свойства.Количество();
НомерСтроки_к=НомерСтроки;
ОбластьКартинка01 = ТабДок.Область(НомерСтроки_н+1,3,НомерСтроки_к,3);
ОбластьКартинка01.Объединить();
Линия = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
ОбластьКарточки1 =ТабДок.Область(НомерСтроки_н+1,1,НомерСтроки_к,3);
ОбластьКарточки1.Обвести(Линия, Линия, Линия, Линия);
Рисунок1 = ТабДок.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок1.Картинка = Изображение1;
Рисунок1.Расположить(ОбластьКартинка01);
ОбластьКартинка02 = ТабДок.Область(НомерСтроки_н+1,6,НомерСтроки_к,6);
ОбластьКартинка02.Объединить();
Линия = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
ОбластьКарточки2 =ТабДок.Область(НомерСтроки_н+1,4,НомерСтроки_к,6);
ОбластьКарточки2.Обвести(Линия, Линия, Линия, Линия);
Рисунок2 = ТабДок.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок2.Картинка = Изображение2;
Рисунок2.Расположить(ОбластьКартинка02);
ОблКаталог=Макет.ПолучитьОбласть(НомерСтроки_н+1,1,НомерСтроки_к,6);
ТабДокумент.Вывести(ОблКаталог);
конеццикла;
ОбластьЗаголовокСтрока=Макет.ПолучитьОбласть(2,1,4,6);
ТабШапка.Вывести(ОбластьЗаголовокСтрока);
МассивОбластей.Очистить();
МассивОбластей.Добавить(ТабДокумент);
Если Не ТабДок.ПроверитьВывод(МассивОбластей) Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
МассивОбластей.Очистить();
КонецЕсли;
ТабДок.Защита = Истина;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;
ТабДок.РазмерСтраницы= "A4";
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Вывести(ТабДок);
ТабДок.Показать();
Svetas_2024 @ Вчера, 9:32
,
Можно задать шаблон для колонтитула и он будет выводить какая страница и сколько всего.... ("АВТОМАТИЧЕСКИ")
Гугль вооще не работает?
Колонтитул является специальным текстом, выводимым вверху или внизу каждой страницы при выводе документа на печать. В тексте колонтитула можно использовать следующие управляющие конструкции:
[&НомерСтраницы]] ([&PageNumber]]) - при печати в данном месте будет выведен номер страницы,
[&СтраницВсего]] ([&PagesTotal]]) - при печати в данном месте будет выведено общее количество страниц,
[&Дата]] ([&Date]]) - при печати в данном месте будет выведена текущая дата,
[&Время]] ([&Time]]) - при печати в данном месте будет выведено текущее время.
Код 1C v 8.х
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("ЗаявкаНаОплату");
//...
// код заполнения табличного документа
//...
ТабДок.НижнийКолонтитул.НачальнаяСтраница = 1;
ТабДок.НижнийКолонтитул.ВертикальноеПоложение = ВертикальноеПоложение.Низ;
ТабДок.НижнийКолонтитул.ТекстВЦентре= строка(ИмяПользователя())+" [&Дата] - [&Время]";
ТабДок.НижнийКолонтитул.ТекстСлева="?";
ТабДок.НижнийКолонтитул.Выводить = Истина;
Шаблоны для колонтитула:
[&НомерСтраницы]
[&СтраницВсего]
[&Дата]
[&Время]
Свойство табличного документа:
НижнийКолонтитул
Значения
ВертикальноеПоложение (VerticalAlign)
Выводить (Enabled)
НачальнаяСтраница (StartPage)
ТекстВЦентре (CenterText)
ТекстСлева (LeftText)
ТекстСправа (RightText)
Шрифт (Font)
Задаете например: ТекстСправа = "[&СтраницВсего]";
З.Ы, Можно сразу задать колонтитулы для нужного макета в конфигураторе (без программирования)
Открыть нужный макет. Меню: "Таблица" - "Настройка печати" - "Колонтитулы"
Откроется конструктор - там все понятно (нужные кнопочки вверху слева)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua