|
Недостаточно памяти или снова утечка памяти при печати сканов сторонним прилож. | ☑ | ||
---|---|---|---|---|
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 в батнике? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |