Доброго времени всем!
Есть отчет РасчетныеЛисткиОрганизаций.erf на СКД все прекрасно заполняется, но есть одно но на печать выводится то по два сотрудника на лист А4 то по три, как вздумается по настройкам принтера, нужно чтобы на страницу А4 выводилось строго по две таблицы (тобиш два сотрудника) для удобства разделения бумаги пополам. Помогите выловить методику формирования или подскажыте как сделать свою для решения етой задачи.
1С:Підприємство 8.3 (8.3.10.2252)
"Управление производственным предприятием для Украины", редакция 1.3 (1.3.53.1)
П.С. Отчет не вижу как прикрепить в тему..
при компоновке - начать вывод - ввести счетчик и вставлять новую страницу
Sirius83 @ Сегодня, 11:17
,
для этого отчета делал, чтоб каждый сотрудник выходил на след листе
можете переделать как вам необходимо, ну или для себя решили как необходимо
в настройках добавил реквизит "РазбитьРасчетныеЛистыПоСтраницам" - тип("Булево") чтоб пользователь ставил галочку
Процедура ВывестиРезультатВТабличныйДокумент(ПроцессорКомпоновкиДанных, ТабличныйДокумент, ВыводитьПоСтраницам) Экспорт
////ИЗМЕНЕНО Администратор(Начало 07.08.2019
РазбитьРасчетныеЛистыПоСтраницам = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("РазбитьРасчетныеЛистыПоСтраницам").Значение;
Если РазбитьРасчетныеЛистыПоСтраницам Тогда
ЯзыкПечати = ЛокализацияПовтисп.ПолучитьЯзыкФормированияПечатныхФормОтчетов();
ОбластьСлед = ТабличныйДокумент.Область(1, , 1, );
КонецЕсли;
////Окончание)Администратор
// Создадим и инициализируем процессор вывода результата
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент);
// Обозначим начало вывода
ПроцессорВывода.НачатьВывод();
Состояние(НСТР("ru='Если Вы хотите прервать вывод отчета, нажмите Ctrl+Break'"));
// Основной цикл вывода отчета
Счетчик = 0;
Пока Истина Цикл
// Получим следующий элемент результата компоновки
ЭлементРезультата = ПроцессорКомпоновкиДанных.Следующий();
// Получим следующий элемент результата компоновки
Если ЭлементРезультата = Неопределено Тогда
// Следующий элемент не получен - заканчиваем цикл вывода
Прервать;
Иначе
// Элемент получен - выведем его при помощи процессора вывода
ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
////ИЗМЕНЕНО Администратор(Начало 07.08.2019
Если РазбитьРасчетныеЛистыПоСтраницам Тогда
ОбластьПоследнейЯчейки = ТабличныйДокумент.НайтиТекст(НСтр("ru='Долг за ';uk='Борг за '", ЯзыкПечати), ОбластьСлед);
Если ОбластьПоследнейЯчейки <> Неопределено Тогда
НомерСтрокиКонцаРЛ = ОбластьПоследнейЯчейки.Верх + 1;
ОбластьСлед = ТабличныйДокумент.Область(НомерСтрокиКонцаРЛ, , НомерСтрокиКонцаРЛ, );
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
КонецЕсли;
////Окончание)Администратор
КонецЕсли;
ОбработкаПрерыванияПользователя();
КонецЦикла;
ПроцессорВывода.ЗакончитьВывод();
////ИЗМЕНЕНО Администратор(Начало 07.08.2019
Если РазбитьРасчетныеЛистыПоСтраницам Тогда
Возврат;
КонецЕсли;
////Окончание)Администратор
Если ВыводитьПоСтраницам тогда
РазбитьТабличныйДокументПоСтраницам(ТабличныйДокумент);
КонецЕсли
КонецПроцедуры
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua