Имя: Пароль:
1C
1С v8
Падает 1С при массовой выгрузке табличных документов.
,
0 tndr
 
24.11.17
09:47
Значит, платформа 8.2.19.130, конфа УТ 10.3 в режиме совместимости с 8.1, работаем через терминальные серверы Win 2008 r2, Win 2012.
Проблема следующая:
Обработкой формирую печатные формы (табличные документы) документов РТиУ и Сч.Ф. за период, эти печатные формы не открываю, но сохраняю в каталог на диске, на них есть ШК.
Так вот в какой-то момент 1с-ка крашится, и даже не успевает задампиться, хотя в тех. журнале dump create включен:
<dump create="1" location="C:\dumps" prntscrn="1" type="3"/>

Опытным путем установлено, что как только у 1с-ого процесса количество GDI-объектов становится 10000 то происходит вылет.
В логах ОС, в записи этой ошибки есть такая строка:
Sig[3].Name=Имя модуля с ошибкой
Sig[3].Value=MSVCR90.dll

Подскажите, можно ли это как-то забороть?
1 craxx
 
24.11.17
09:51
(0) на 8.3 перейти
2 FIXXXL
 
24.11.17
09:54
(0) подели выгрузку на части
3 tndr
 
24.11.17
10:02
(1) Это конечно вариант, но пока такой возможности нет, к сожалению...
Я так полагаю, что из-за наличия картинки штрихкода, происходит утечка памяти, и что 1с сама не ее освобождает.

(2) Скорее всего именно так придется делать, если конечно не найдется решения как после записи каждого Таб. дока, грохать  GDI-объект.

Пробовал, после записи на диск; ТабДок = Неопределено;
не помогает.
Пробовал; ТабДок.Рисунки.Очистить();
То же ничего не дает, количество GDI-объектов все равно растет...
4 MM
 
24.11.17
10:08
Может ActiveX, формирующий штрихкоды, GDI-объекты не освобождает или использована натив компонента для ШК?
Если попробовать без ШК формировать документы утечка не прекращается?
5 tndr
 
24.11.17
10:13
(4) В качестве компоненты ШК используется типовая 1с-ская
1C BarCode 8.0.16.4

Без ШК не пробовал, по-экспериментировать можно в принципе, но дело в том, что хранить печатные формы все-таки надо с ними...
6 mehfk
 
24.11.17
10:18
(5) Попробуй без него, если поможет - переделаешь на использование шрифта ean13.ttf
7 tndr
 
24.11.17
10:20
(4)(6) Спасибо, попробую.
Результат озвучу.
8 MM
 
24.11.17
10:22
(5) Можно поэкспериментировать со старыми версиями этой же компоненты. Если ШК сложнее ean, то можно переделать на новую компоненту или даже на внешнюю программу формирования.
9 lodger
 
24.11.17
10:53
еще вариант - создать подпапку в темпах, а генерацию табдока от и до вынести в отдельную процедуру, которая в теории, по завершении должна так и сяк освободить все использованные компоненты и переменные.
после завершения цикла обхода таблицы с вводными зайти в папку и забрать файлы как файлы, а не табдоки.

но скорее всего это не поможет.
можно почитать статью https://habrahabr.ru/post/318948/
в которой есть аварийные варианты, вроде передвинуть ограничение в 10000 объектов. но она подходит если у вас есть сурсы и возможность отладки компоненты, однако для понимания сути проблемы - очень информативно.

вангую, что смена компоненты для генерации ШК на свежую - вероятно поможет.
10 rincewind
 
24.11.17
10:56
(7) Была похожая проблема. Решилась использованием нестандартной компоненты генерации штрихкода. Погугли "ocvita".
11 tndr
 
24.11.17
11:48
Да, действительно, подтверждается, без картинки ШК, утечки нет, количество объектов не растет.

(9) Со статьей ознакомились, познавательно, но к сожалению, воспроизвести описанные манипуляции скорее всего не получится, из-за отсутствия навыков и инструментов. Кроме того, даже если бы получилось диагностировать источник утечек, то исправить на вряд ли бы получилось...
Поэтому, судя по всему, остается пробовать варианты с использованием альтернативных компонент генерации штрихкода.

(6) (8) (9) (10) Спасибо, что накидали вариантов :)
Будем пробовать.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.