Версия для печати темы (https://pro1c.org.ua/index.php?s=1512ac7bf7a3af7cdfcb90b40d0ec317&showtopic=56243)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Автоматический макет на СКД

Автор: Sirius83 10.01.20, 11:17

Доброго времени всем!
Есть отчет РасчетныеЛисткиОрганизаций.erf на СКД все прекрасно заполняется, но есть одно но на печать выводится то по два сотрудника на лист А4 то по три, как вздумается по настройкам принтера, нужно чтобы на страницу А4 выводилось строго по две таблицы (тобиш два сотрудника) для удобства разделения бумаги пополам. Помогите выловить методику формирования или подскажыте как сделать свою для решения етой задачи.

1С:Підприємство 8.3 (8.3.10.2252)
"Управление производственным предприятием для Украины", редакция 1.3 (1.3.53.1)

П.С. Отчет не вижу как прикрепить в тему..


Автор: sava1 10.01.20, 11:20

при компоновке - начать вывод - ввести счетчик и вставлять новую страницу

Автор: fly 10.01.20, 12:58

Sirius83 @ Сегодня, 11:17 * ,
для этого отчета делал, чтоб каждый сотрудник выходил на след листе
можете переделать как вам необходимо, ну или для себя решили как необходимо

в настройках добавил реквизит "РазбитьРасчетныеЛистыПоСтраницам" - тип("Булево") чтоб пользователь ставил галочку


Процедура ВывестиРезультатВТабличныйДокумент(ПроцессорКомпоновкиДанных, ТабличныйДокумент, ВыводитьПоСтраницам) Экспорт
    
    ////ИЗМЕНЕНО Администратор(Начало 07.08.2019
    РазбитьРасчетныеЛистыПоСтраницам = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("РазбитьРасчетныеЛистыПоСтраницам").Значение;
    Если РазбитьРасчетныеЛистыПоСтраницам Тогда
        ЯзыкПечати = ЛокализацияПовтисп.ПолучитьЯзыкФормированияПечатныхФормОтчетов();
        ОбластьСлед = ТабличныйДокумент.Область(1, , 1, );
    КонецЕсли;
    ////Окончание)Администратор

    
    // Создадим и инициализируем процессор вывода результата
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент);

    // Обозначим начало вывода
    ПроцессорВывода.НачатьВывод();
    Состояние(НСТР("ru='Если Вы хотите прервать вывод отчета, нажмите Ctrl+Break'"));

    // Основной цикл вывода отчета
    Счетчик = 0;
    Пока Истина Цикл
        
        
        // Получим следующий элемент результата компоновки
        ЭлементРезультата = ПроцессорКомпоновкиДанных.Следующий();
        
        // Получим следующий элемент результата компоновки
        Если ЭлементРезультата = Неопределено Тогда
            
            // Следующий элемент не получен - заканчиваем цикл вывода
            Прервать;
            
        Иначе
            
            // Элемент получен - выведем его при помощи процессора вывода
            ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
            
            ////ИЗМЕНЕНО Администратор(Начало 07.08.2019
            Если РазбитьРасчетныеЛистыПоСтраницам Тогда
                ОбластьПоследнейЯчейки = ТабличныйДокумент.НайтиТекст(НСтр("ru='Долг за ';uk='Борг за '", ЯзыкПечати), ОбластьСлед);
                Если ОбластьПоследнейЯчейки <> Неопределено Тогда
                    НомерСтрокиКонцаРЛ     = ОбластьПоследнейЯчейки.Верх + 1;
                    ОбластьСлед = ТабличныйДокумент.Область(НомерСтрокиКонцаРЛ, , НомерСтрокиКонцаРЛ, );
                    ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
                КонецЕсли;
            КонецЕсли;
            ////Окончание)Администратор
        КонецЕсли;
        
        ОбработкаПрерыванияПользователя();
        
    КонецЦикла;
    
    ПроцессорВывода.ЗакончитьВывод();
    
    ////ИЗМЕНЕНО Администратор(Начало 07.08.2019
    Если РазбитьРасчетныеЛистыПоСтраницам Тогда
        Возврат;
    КонецЕсли;
    ////Окончание)Администратор
    
    Если ВыводитьПоСтраницам тогда
        РазбитьТабличныйДокументПоСтраницам(ТабличныйДокумент);
    КонецЕсли
    
КонецПроцедуры

Автор: Sirius83 13.01.20, 16:43

Цитата(fly @ 10.01.20, 13:58) *
в настройках добавил реквизит "РазбитьРасчетныеЛистыПоСтраницам" - тип("Булево") чтоб пользователь ставил галочку

В пользовательских настройках?

Автор: fly 13.01.20, 16:55

Цитата(Sirius83 @ 13.01.20, 16:43) *
В пользовательских настройках?


да
Если я правильно понял (форма "ФормаНастройки" = "Пользовательские настройки").

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua