Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Не работает ПовторятьПриПечатиСтроки

Не работает ПовторятьПриПечатиСтроки
Я
   Cоляпсус
 
05.04.18 - 17:31
Здравствуйте. Понимаю, что тема много раз объезжена, почитал в всемирном мозге. Как мне кажется должно работать, но работает только при печати через предварительный просмотр. А через просто кнопку печать заголовок не печатается на второй странице. Подскажите, что не  так. Написал у себя нужные две строчки, но не работает.

ТоварыОбласть = Макет.Область("ТоварыШапкаТаблицы");
ТабДок.ПовторятьПриПечатиСтроки = ТоварыОбласть;

Заранее благодарен
 
 
   Cоляпсус
 
1 - 05.04.18 - 17:38
Так же пробовал через 

ТоварыОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ТоварыШапкаТаблицы");
ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область("ТоварыШапкаТаблицы");

ситуация была той же
   Cоляпсус
 
2 - 05.04.18 - 17:46
Кто-то может встречался с этой ситуацией. Хотелось обойтись без ПроверкиВывода() или тут никак?
   Cоляпсус
 
3 - 05.04.18 - 17:48
Ссори через ПроверитьВывод ()
   Ёпрст
 
4 - 05.04.18 - 17:54
нужно область не макета пихать
   Cоляпсус
 
5 - 05.04.18 - 17:59
(0) Ну так здесь я и пихал областьЯчеекТабличногоДокумента
   Ёпрст
 
6 - 05.04.18 - 18:00
На предварительном просмотре, шапка твоя повторяется ?
   Cоляпсус
 
7 - 05.04.18 - 18:01
Ну да, на предварительном есть и печатаешь есть, на ПЕЧАТЬ нет
   Cоляпсус
 
8 - 05.04.18 - 18:03
Добился в печатной форме вывод шапки через ПроверитьВывод, но так же вижу это на экранной форме, можно как то избавится?
   Cоляпсус
 
9 - 05.04.18 - 18:04
От шапки в экранной форме. чтобы её не видеть, но печаталась (8)
   Ёпрст
 
10 - 05.04.18 - 18:04
(7) если на предв. просмотре всё есть, тогда всё работает как надо

Если что-то нет при печати, то попробуй воткнуть
ТабДок.Вывод = ИспользованиеВывода.Разрешить

хотя это для записи в файло..
Печать потом, через что ? Через универсаольную обработку печати с макетом на форме ?
 
 Рекламное место пустует
   Ёпрст
 
11 - 05.04.18 - 18:05
Повторять при печати строки, будет только на предв просмотре, и при печати (на бумаге) если что.
Визуально, на форме ты этого не увидишь
   Cоляпсус
 
12 - 05.04.18 - 18:07
Так ситуация обратная, при ТабДок.ПовторятьПриПечатиСтроки, не вижу на экране, не вижу на бумаге через команду ПЕЧАТЬ, но вижу при предварительном просмотре и вижу на бумаге при печати, через предварительный просмотр
   Cоляпсус
 
13 - 05.04.18 - 18:08
А при проверитьВыовод(), всё хорошо печатаестя, но на экране шапка видна при разрыве, там она конечно лишняя
   Cоляпсус
 
14 - 05.04.18 - 18:09
(10) Нет не работает всётаки как надо. ((
   Cоляпсус
 
15 - 06.04.18 - 09:14
Доброе утро всем. Вынужден повторится.
Необходимо, чтобы шапка документа, печаталась на каждой странице, когда таблица выходит за рамки одной страницы.
Для этого ей было подано:
ТоварыОбласть = Макет.Область("ТоварыШапкаТаблицы"); - область ячеек табдока. 
Если ТабДок.ПроверитьВывод(ТоварыОбластьДетальныхЗаписей) = Ложь Тогда
ТабДок.ПовторятьПриПечатиСтроки = ТоварыОбласть;
КонецЕсли; 

Но ситуация продолжает оставаться прежней: При печати командой ПЕЧАТЬ на форме, вторая страница выходит без шапки. При печати - Предварительный просмотр, видно что шапка на второй странице есть и печать из предварительного просмотра, листы печатаются как нужно с шапкой на второй странице.
Кто-то может знает как исправить ситуацию?
Пробовал после Тогда - ТабДок.Вывести(ТоварыОбластьШапкаТаблицы);
Но тогда разделение видно на экранном отображении, а это всётаки лишнее
   George Wheels
 
16 - 06.04.18 - 09:29
ТоварыОбласть = ТабДок.Область("R1:R2");
ТабДок.ПовторятьПриПечатиСтроки = ТоварыОбласть;

R1:R2 - это две первые строки. Сколько у тебя (и с какой строки повторять) тебе лучше знать.
   Cоляпсус
 
17 - 06.04.18 - 09:39
(16) Ну так на всякий случай я пробовал. Ситуация одинаковая, как  с 
ТоварыОбласть = Макет.Область("ТоварыШапкаТаблицы");
ТабДок.ПовторятьПриПечатиСтроки = ТоварыОбласть;

при предварительном есть, при печати команда нет.
   George Wheels
 
18 - 06.04.18 - 09:47
После того как ТД уже сформирован, при печати могут повторяться только его строки, а не строки макета.
В (2) ты писал ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область("ТоварыШапкаТаблицы");
но в ТабДок нет области "ТоварыШапкаТаблицы"
   Cоляпсус
 
19 - 06.04.18 - 09:59
(18) это я понял и поэтому зададл областьячеекТабличноДокумента
ТоварыОбласть = Макет.Область("ТоварыШапкаТаблицы"); но ситуация не изменилась
специально ещё раз попробывал ТоварыОбласть = ТабДок.Область("R1:R2"); - всё тоже, всё там же
   ptiz
 
20 - 06.04.18 - 10:04
(19) Ты всю ветку ходишь по одним и тем же граблям: указывать надо область ячеек табличного документа, который печатаешь.
Приведи полный код, ткнем тебя носом в грабли еще раз.
   Cоляпсус
 
21 - 06.04.18 - 10:08
РезультатЗапроса = Запрос.Выполнить();
    
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
    ТоварыОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ТоварыШапкаТаблицы");
    ТоварыОбласть = Макет.Область("ТоварыШапкаТаблицы");
    ТоварыОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("ТоварыДетали");
    
    ТабДок.Очистить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    ВыбДетЗаписи = РезультатЗапроса.Выгрузить();
    ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ТабДок.АвтоМасштаб = Истина;
    ТабДок.Вывести(ОбластьЗаголовок);
    ОбластьЗаголовок.ТекущаяОбласть.Шрифт = Новый Шрифт(,14,Истина);
    ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыбДетЗаписи[0]);
    ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
    ТабДок.Вывести(ТоварыОбластьШапкаТаблицы);
    
 
    //

    /////////////////////////////////////////////

    ВставлятьРазделительСтраниц = Ложь;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл//перебора массива объектов

        Если ВставлятьРазделительСтраниц = Истина Тогда
            ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
              КонецЕсли;
        НомерСтрокиНачало = ТабДок.ВысотаТаблицы + 1;    
    
            ТоварыОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
        ТабДок.Вывести(ТоварыОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
                    
        //подключимся к общ механизму обл печати

        УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДок, НомерСтрокиНачало, ОбъектыПечати, ВыборкаДетальныеЗаписи.Ссылка);
        
        //ВставлятьРазделительСтраниц = Истина;

    Если ТабДок.ПроверитьВывод(ТоварыОбластьДетальныхЗаписей) = Ложь Тогда
    ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область("R6C1:R6C10");;
        //ОбластьДетальныхЗаписей.Параметры.Заполнить(ТоварыОбласть);

КонецЕсли; 
    КонецЦикла;//перебора массива объектов

    
    
    Возврат ТабДок;
   Cоляпсус
 
22 - 06.04.18 - 10:08
Спасибо, что ткнёте, но казалось, что стараюсь правильно сделать
   Cоляпсус
 
23 - 06.04.18 - 10:21
Куда-то все делись
   ptiz
 
24 - 06.04.18 - 10:33
(21)  Тут верно:
ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область("R6C1:R6C10");;

А вот алгоритм неправильный.
Выкинь это условие:
  Если ТабДок.ПроверитьВывод(ТоварыОбластьДетальныхЗаписей) = Ложь Тогда


ПовторятьПриПечатиСтроки - само выводит на каждой странице, незачем это условие втыкать.
   Cоляпсус
 
25 - 06.04.18 - 10:33
Было много людей и как-то сразу стала не интересна тема
   Cоляпсус
 
26 - 06.04.18 - 10:35
(24) Согласен,так и было изначаль, но я это условие поставил только для того чтобы попробовать изменить ситуацию описанную (15), но никак не меняется ситуёвина. Но сейчас специально ещё разок попробую
   ptiz
 
27 - 06.04.18 - 10:38
И вынеси ТабДок.ПовторятьПриПечатиСтроки после цикла
   Cоляпсус
 
28 - 06.04.18 - 10:43
Так и сделал, не меняется ситуёвина.
Вот что пишет отладчик, тут наверное и проблема, (не уверен конечно)
http://prntscr.com/j1lvd3
   Cоляпсус
 
29 - 06.04.18 - 10:59
Как заговорённая, .лин
   ptiz
 
30 - 06.04.18 - 10:59
(28) Еще раз покажи весь код.
   ptiz
 
31 - 06.04.18 - 11:02
И - да, область задавать лучше строками:
ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область(6,,10,);
   Cоляпсус
 
32 - 06.04.18 - 11:42
Запрос.УстановитьПараметр("Ссылка", МассивОбъектов);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
    ТоварыОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ТоварыШапкаТаблицы");
    ТоварыОбласть = Макет.Область("ТоварыШапкаТаблицы");
    ТоварыОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("ТоварыДетали");
    
    ТабДок.Очистить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    ВыбДетЗаписи = РезультатЗапроса.Выгрузить();
    ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ТабДок.АвтоМасштаб = Истина;
    ТабДок.Вывести(ОбластьЗаголовок);
    ОбластьЗаголовок.ТекущаяОбласть.Шрифт = Новый Шрифт(,14,Истина);
    ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыбДетЗаписи[0]);
    ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
    ТабДок.Вывести(ТоварыОбластьШапкаТаблицы);
    ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область("ТоварыШапкаТаблицы")//ТоварыОбласть;

    
 
    //

    /////////////////////////////////////////////

    ВставлятьРазделительСтраниц = Ложь;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл//перебора массива объектов

        Если ВставлятьРазделительСтраниц = Истина Тогда
            ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
              КонецЕсли;
        НомерСтрокиНачало = ТабДок.ВысотаТаблицы + 1;    
    
            ТоварыОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
        ТабДок.Вывести(ТоварыОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
                    
        //подключимся к общ механизму обл печати

        УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДок, НомерСтрокиНачало, ОбъектыПечати, ВыборкаДетальныеЗаписи.Ссылка);
        
        //ВставлятьРазделительСтраниц = Истина;

    //Если ТабДок.ПроверитьВывод(ТоварыОбластьДетальныхЗаписей) = Ложь Тогда

        //ОбластьДетальныхЗаписей.Параметры.Заполнить(ТоварыОбласть);

//КонецЕсли; 
    КонецЦикла;//перебора массива объектов

    
         ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область("R6C1:R6C10");

    Возврат ТабДок;
   Cоляпсус
 
33 - 06.04.18 - 11:46
Заменил на 
    ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область(6,,6,);
 та же ф..ня((
 
 
   Cоляпсус
 
34 - 06.04.18 - 11:46
В смысле через предварительно отлично работает, через ПЕЧАТЬ  - перебьётесь называется
   Ёпрст
 
35 - 06.04.18 - 13:39
(34)
Что значит "через" печать ?

1.В предварительном просмотре, есть твои повторяющиеся строки ?
2. На бумаге, после печати, они есть ?

если ответ да и да, то так и должно быть

Если ты хочешь видеть ЭТО на поле табличного документа на форме, то ты ЭТОГО не увидишь...

хз, как тебе еще объяснить


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует