Имя: Пароль:
1C
1С v8
Групповая печать документов
0 Альбатрос
 
04.07.13
12:20
Бухия 2.0
Есть необходимость печатать сразу 3-4 тыс. документов одного вида. Групповая обработка делает это оч. долго. Сделал вывод, что это из-за того, что она отправляет на печать каждый документ отдельно. Ускорит ли этот процесс, если все таб. документы я соберу в один и отправлю его на печать?
Если ускорит, то как объединить таб. документы в один? в СП посмотрел, чот подходящего метода не обнаружил =(
1 vicof
 
04.07.13
12:23
Выводишь таким же образом + ВывестиГоризонтальныйразделительСтраниц()
2 Альбатрос
 
04.07.13
12:23
оу, сори, вывести() как раз позволяет присоединять таб. документы =)
3 smotritel
 
04.07.13
12:23
(0) переходи на 3.0, она как раз печатает все "таб. документы в один"
4 Kreont
 
04.07.13
12:23
3-4 сразу не пойдет, принтер захлебнется такой задачей, разве что тестировать оптимальное значение (50, 200, и т.п.).

Напиши отдельную обработку и по очереди добавляй нужн.печ.формы в один таб.док, сразу будет еще быстрей от того что стандартная написана универсально и в 90% неоптимально для конкретной задачи.
5 vicof
 
04.07.13
12:23
Но не факт, что ускорит. Возмет, сожрет оперативной памяти, и сдохнет.
6 smotritel
 
04.07.13
12:26
(0) тормоза не только из-за того что "отправляет на печать каждый документ отдельно" и "если все таб. документы я соберу в один" не сильно поможет.

тормоза ещё из-за того, что для каждого документа выполнятся запрос(ы).

в 3.0 выполняется один запрос(ы) на все документы, потом из этого собирается "портянка", разделенная разделителем страниц - и уже она выводится на экран
7 Альбатрос
 
04.07.13
12:26
(4) Ну хз. При групповой печати обращается к общему модулю УниверсальныеМеханизмы.НапечататьДокумент. В принципе, норм. функция вроде. Ее -то за основу и беру. У нас печатные станки, им кол-во в 3-4 тыс. доков - тьфу! =)
8 Альбатрос
 
04.07.13
12:27
(6) Хм... верно.
9 Альбатрос
 
04.07.13
12:29
(6) Но я все же попробую. Просто задержка перед печатаемыми доками ~ 2сек. А печ. форма формируется в разы быстрее
10 acsent
 
04.07.13
12:31
стандартные печ формы нельзя объеденить в один таб документ, только внешние
11 Альбатрос
 
04.07.13
12:40
(10) почему это? у объекта есть ф-ция печать, - она возвращает таб. документ
12 Альбатрос
 
23.09.13
06:13
Мужики, вообщем переделал из групповой обработки под задачу быстрой групповой печати.
Но получение печ. формы все равно происходит долго.
Сделал замер производительности, затуп происходит на:

Объект = Ссылка.ПолучитьОбъект();

из процедуры:

Процедура ПечатьДокументов(МассивДокументов, НаПринтер)
    
    Если НаПринтер Тогда
        
        Ответ = Вопрос("При печати документов без предварительного просмотра будут использованы настройки,
            |используемые при последней печати. Продолжить?", РежимДиалогаВопрос.ДаНет);
        Если Ответ = КодВозвратаДиалога.Нет Тогда
            Возврат;
        КонецЕсли;
        
    КонецЕсли;
    
    Для каждого Ссылка Из МассивДокументов Цикл
        
        Объект = Ссылка.ПолучитьОбъект();
        МетаданныеОбъекта = Объект.Метаданные();
        
        Если НапечататьДокументПоУмолчаниюАльтернатива(Объект, , НаПринтер, Истина) Тогда
            Сообщить(Ссылка);
        КонецЕсли;
        
        ИндикаторОбработки = ИндикаторОбработки + 1;
        ОбработкаПрерыванияПользователя();
        
    КонецЦикла;
    ТабДокумент.Показать();
    Сообщить("-----------------------------------------------------------", СтатусСообщения.БезСтатуса);
    Сообщить("Выполнение обработки завершено", СтатусСообщения.БезСтатуса);
    
КонецПроцедуры

Процедура как в типовой, с моими маленькими изменениями.
Так вот мужики, мой тупой вопрос:
Как ускорить получение объекта? =)
"Объект" затем используется в куче других типовых процедурах и функциях. База файловая.
13 Oleg_Kag
 
23.09.13
07:12
в (6) написали же:

в 3.0 выполняется один запрос(ы) на все документы, потом из этого собирается "портянка", разделенная разделителем страниц - и уже она выводится на экран.

Ускорить - сделать запрос ко всем документам сразу. Вы, обращаясь в цикле к каждому объекту и вызывая каждый раз процедуру печати, от своей проблемы ни сколько не ушли.
14 Альбатрос
 
23.09.13
07:20
(13) Нуууу.. прибавка во времени все же есть, но недостаточна. Просто из-за природной лени неохота было свою обработку ваять.=) Похоже другого выхода нет. Надо пилить свое. Спасибо, тему можно закрывать.
15 ИС-2
 
naïve
23.09.13
07:41
(0) с 1C и без меня помогут.

Но как эти 4 тысячи листочков пламируешь преврать в документы?
Для этого их надо отсортировать (пр ТОРГ12 + СФ + лабуда), простеплерировать, поставить подпись и печать. Сами занимаемся этой проблемой. Вот и думаю...

Или будет - я напечатал, а там сами разбирайтесь?
16 Альбатрос
 
23.09.13
07:57
(15) У меня такой задачи пока нет. В принципе, усорение печати нужно пока только для одного вида док-та. Но да, если уж делать, то делать сразу универсально. Может потом еще и продать удастся =)
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший