Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Автоматический макет на СКД
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
Sirius83
Доброго времени всем!
Есть отчет РасчетныеЛисткиОрганизаций.erf на СКД все прекрасно заполняется, но есть одно но на печать выводится то по два сотрудника на лист А4 то по три, как вздумается по настройкам принтера, нужно чтобы на страницу А4 выводилось строго по две таблицы (тобиш два сотрудника) для удобства разделения бумаги пополам. Помогите выловить методику формирования или подскажыте как сделать свою для решения етой задачи.

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

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

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

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


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

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

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

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

В пользовательских настройках?
fly
Цитата(Sirius83 @ 13.01.20, 16:43) необходимо зарегистрироваться для просмотра ссылки
В пользовательских настройках?


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