Имя: Пароль:
1C
1С v8
Недостаточно памяти или снова утечка памяти при печати сканов сторонним прилож.
0 memogolik
 
07.07.15
10:31
Есть обработка для групповой печати табличных форм для документа РТиУ (1с 8.2.18.90 КА 1.1)
После добавления блока с печатью качественных удостоверений программа после печати некоторого количества вылетает с ошибкой "Недостаточно памяти".
вот кусок алгоритма:
сТЗ = ПодготовкаПечатиСертификатов(ДокРеализация.Ссылка);
Для Каждого врем2 ИЗ сТЗ Цикл      
ЗапуститьПриложение("C:\Program Files (x86)\IrfanView\i_view32.exe "+СокрЛП(врем2)+" /print=""" + ПринтерДляПечати + """", , Истина);
КонецЦикла;

В переменную сТЗ я получаю список путей к изображениям для печати.
При этом процесс 1с8.exe*32 НЕ уменьшает память после печати определенной порции документов. Т.е. он занимает все больше и больше памяти, пока не дойдет до 3.5гб и вылетает ошибка.
Как можно побороть проблему?
Заранее спасибо за ответы.
1 memogolik
 
07.07.15
10:41
а п
2 Альбатрос
 
07.07.15
10:43
Никак.
3 Garykom
 
гуру
07.07.15
10:46
(2) ну зачем так сразу категорично?

(0) а ты батник то сделай... сохрани... и запусти...
4 memogolik
 
07.07.15
10:47
(3) не понял причем тут батник?
у меня 1с8.exe растет
5 Garykom
 
гуру
07.07.15
10:48
(3)+ т.е. зачем в цикле запускать этот инфанвьюв?

пути есть, сформируй файлик bat состоящий из строк запуска с нужными уже известными путями к файликам

и один раз этот бат-ник запусти из 1с
6 Garykom
 
гуру
07.07.15
10:49
(4) тогда позовите специалиста
7 Альбатрос
 
07.07.15
10:50
(5) Ну кстати вариант, да.
8 eklmn
 
гуру
07.07.15
10:53
Попытка
    ИФайл = "C:\Program Files\IrfanView\i_view32.exe "+путь.НаименованиеФайла +" /print";
    ЗапуститьПриложение(ИФайл);
    Исключение

ничего не растёт
9 memogolik
 
07.07.15
10:57
(5) можно поподробнее или где почитать об этом можно?
10 eklmn
 
гуру
07.07.15
10:59
(5) у меня в двух вложенных циклах и ничего не растет, у автора что-то не так
11 Dmitrii
 
гуру
07.07.15
11:00
У метода ЗапуститьПриложение есть еще четвертый параметр
<КодВозврата> (необязательный)
Тип: Число; Неопределено.
Параметр (если он указан) содержит код завершения работы системы - значение, передаваемое приложением операционной системе, если работа была завершена корректно, если такой код был получен. В противном случае возвращает Неопределено.

Может проверить КодВозврата? Вдруг у вас некорректно завершается приложение.
12 memogolik
 
07.07.15
11:01
(10) а инфранвью тоже в цикле или как предложено выше через батник?
13 eklmn
 
гуру
07.07.15
11:13
(12) в цикле
14 eklmn
 
гуру
07.07.15
11:14
(12) ты зачем 3 параметр в истину поставил?
15 eklmn
 
гуру
07.07.15
11:15
убери
16 memogolik
 
07.07.15
11:19
просто у меня кроме распечатки сертификатов до и после есть другие печатные формы. нужно чтобы последовательность выхода была определенная, если я сниму он не будет проблем?
17 eklmn
 
гуру
07.07.15
11:19
(проблеммы будут у 1С если не снимешь
18 Garykom
 
гуру
07.07.15
11:20
(16) тогда даже последовательность (очередность) печати сертификатов не обязательно что будет нужная
19 memogolik
 
07.07.15
11:24
условно говоря:
ПФ1
ПФ2
сертификаты
ПФ3
мне не важно в какой посл-ти будут печататься сертификаты, важно, чтобы сначала пф1, потом пф2, потом картинки(не важно посл-ть картинок), потом пф3
20 eklmn
 
гуру
07.07.15
11:28
(19) и при чем тут первый параметр?
21 eklmn
 
гуру
07.07.15
11:28
*третий
22 memogolik
 
07.07.15
11:30
(17) а какая у вас платформа?
23 memogolik
 
07.07.15
11:30
третий параметр ждет окончания запуска, прежде чем пустить следующий
24 eklmn
 
гуру
07.07.15
11:31
(23) ждет 1С и копит *овна в памяти, при чем тут твоя последовательность печати?
25 memogolik
 
07.07.15
11:45
(24) походу помогает! СПАСИБО вам огромное. память не увеличивается
26 memogolik
 
08.07.15
09:29
(24)и все таки нет. Документы после удаления третьего параметра печатаются вразнобой.
пф1-сертификат-пф2-сертификат етц,
а должно быть
пф1, пф2, сертификаты, пф3
27 eklmn
 
гуру
08.07.15
09:43
(26) покажи процедуру как на печать выводишь
28 memogolik
 
08.07.15
09:49
сТЗ = ПодготовкаПечатиСертификатов(ДокРеализация.Ссылка);
                Для Каждого врем2 ИЗ сТЗ Цикл
                    Попытка
                    //ЗапуститьПриложение("C:\Program Files (x86)\IrfanView\i_view32.exe "+СокрЛП(врем2)+" /print=""" + ПринтерДляПечати + """", , Истина);
                        ЗапуститьПриложение("C:\Program Files (x86)\IrfanView\i_view32.exe "+СокрЛП(врем2)+" /print=""" + ПринтерДляПечати + """");
                    Исключение
                        Сообщить(ОписаниеОшибки());
                    КонецПопытки;    
                КонецЦикла;
Фишка походу в том, что инфранвью без этого 3 параметра сама пускает на печать, 1Ска остальные ПФ тоже. Между собой они ни как не связаны.
29 memogolik
 
08.07.15
09:51
Все это идет в цикле по документам, до и после блока с качественными идет печать других ПФ из 1с(торг12, сф)
30 eklmn
 
гуру
08.07.15
10:18
(28) всю поцедуру
31 memogolik
 
08.07.15
10:40
32 Garykom
 
гуру
08.07.15
10:43
сделай уже батник с "start /wait"
33 memogolik
 
08.07.15
10:46
(32) никогда не сталкивался , можно пример или ссылку где почитать?
34 Garykom
 
гуру
08.07.15
10:48
гугли "bat start /wait"
35 memogolik
 
08.07.15
10:59
(34) в итоге должно получиться что то типа
ЗапуститьПриложение("d:\my.bat",,"Истина");?
Если не установить этот параметр то все равно печатные формы до и после сертификатов будут перемешиваться. Тогда зачем ключ /wait в батнике?