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

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

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

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

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

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

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

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

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

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

    //
    /////////////////////////////////////////////
    ВставлятьРазделительСтраниц = Ложь;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл //перебора массива объектов
        Если ВставлятьРазделительСтраниц = Истина Тогда
            ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
              КонецЕсли;
        НомерСтрокиНачало = ТабДок.ВысотаТаблицы + 1;    
    
            ТоварыОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
        ТабДок.Вывести(ТоварыОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
                    
        //подключимся к общ механизму обл печати
        УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДок, НомерСтрокиНачало, ОбъектыПечати, ВыборкаДетальныеЗаписи.Ссылка);
        
        //ВставлятьРазделительСтраниц = Истина;
    Если ТабДок.ПроверитьВывод(ТоварыОбластьДетальныхЗаписей) = Ложь Тогда
    ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область("R6C1:R6C10");;
        //ОбластьДетальныхЗаписей.Параметры.Заполнить(ТоварыОбласть);
КонецЕсли;
    КонецЦикла; //перебора массива объектов
    
    
    Возврат ТабДок;
22 Cоляпсус
 
06.04.18
10:08
Спасибо, что ткнёте, но казалось, что стараюсь правильно сделать
23 Cоляпсус
 
06.04.18
10:21
Куда-то все делись
24 ptiz
 
06.04.18
10:33
(21)  Тут верно:
ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область("R6C1:R6C10");;

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


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

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

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

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

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

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

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