#0
by UMthis
Доброго времени суток! 1с 8.2 Ситуация следующая. Есть каталог картинок которые лежат на сервере(jpg).(картинок около 10 000 штук) Есть ссылки на эти картинки в 1с. Необходимо данные картинки по определенному признаку сгруппировать и поместить в общие файлы pdf. (в одном файле пдф будет по 3-6 листов с картинками) Груповую обработку по формированию пдф файлов написал(Создается таб док, в него рисуются картинки с разделителем) но вот не задача... 1С начинает дико жрать память и не высвобождать ее при сохранении каждого отдельного таб документа. Порциями выгружать вообще не вариант.. Кто-нить решал данную проблему с высвобождением памяти?? и как? Благодарю..
#2
by Otark
ТабДок = Неопределено или формирование каждого дока в отдельной функции не спасает? Про управление памятью которую занимает 1с из самой 1с не слышал не разу. И да может иметь смысл.
#3
by Фрэнки
скорей всего, что не спасает. Как минимум, на прежних релизах платформы такие манипуляции видимого эффекта не давали
#4
by rphosts
не существует у 1с релиза 8.2 есть релиз например 8.2.19.130. Если у релиза есть проблема с утечкой памяти - инфа об этом давно известна. Если это не проблема платформы - значит проблема кода.
#5
by Фрэнки
под отдельной функцией тоже не спасает. Нужно спасаться открытием отдельного контекстного пространства в виде объекта или специальной придуманной формы. НО! Это если не прибегать к использованию регламентных заданий или фоновых и т.п. Нормальный вариант есть в том, чтобы создать задание регламентное, стартовать его в фоновом режиме и тогда оно само за собой подчистит память при завершении. На относительно новых релизах платформы и на 8.2.19.х уже должно работать нормально.
#6
by UMthis
так и делаю в отдельной функ-ции. Пробовал очищать его после записи.. Дело в том, что данная манипуляция необходима для пользователей в дальнейшем.
#7
by Фрэнки
к сожалению убедился в том, что если существует табличный документ в контексте, то выделенная ему память продолжает "висеть" до закрытия контекста - не закрытия окна/поля с табличным документом, а самого того владельца, которому это все окно или поле принадлежит.
#8
by mehfk
Откликаешься на эту вакансию Устраиваешься работать в 1С. Исправляешь баги платформы. Увольняешься из 1С. Профит!
#9
by UMthis
Принудительно программно его нельзя закрыть? Меня очень смущает сей факт, что это не предусмотрено..
#10
by Фрэнки
нельзя. В классических языках есть отдельное понятие и процедура деструктора объекта, в котором проверяется вся захваченная объектом память и освобождается принудительно. В 1С деструкторов объектам не раскрыли и конструкции ТабДок = Неопределено не являются дестурктором. Чтоб закрылись все созданные явным и неявным образом объекты с владельцем "текущий контекст" должно "закрыться" объект-владелец, например, именно форма, указанная владельцем в создании табличного документа. Если не указан владелец, то даже не знаю, кого нужно будет "закрыть", чтоб произошла очистка памяти без завершения сеанса пользователя, например.
#11
by ildary
тогда может имеет смысл добавить окно прокладку, которое открывается, отрабатывает текущую задачу и закрывается, освобождая ТабДок?
#12
by UMthis
в теории, на грани фантастики.- Если данная функция будет вешаться на форму(определенную) А цикл, будет вызывать- открывать/закрывать формы и выполнять алгоритм. В теории это же сработает?)))
#13
by Фрэнки
(11,12) ТабДок на чем создается? Если это поле самой формы, то я подозреваю, что форму нужно сделать не внутри объекта вида отчет/обработка, а допустим общая форма конфигурации. Подозреваю, что для общих форм вероятно предусмотрели очистку памяти. А если это формы создаются после создания объекта обработка/отчет, то они продолжат существовать в памяти до момента закрытия само объекта-родителя формы. Тут важно понимать, что формы это не совсем объекты.
#14
by Фрэнки
В реальности надо копать в регламентные/фоновые задания. Тогда эти задания будут создавать новые сеансы, записывать файловые документы на диск и завершаться, а затем уже результаты открывать и смотреть, причем, если говорим о пдф, то открывать их уже запуском нового приложения-вьювера
#15
by Сияющий в темноте
ну да,если нн хватает памяти на клиенте,давайье перейдем на сервер и будет не хватать памяти там,но он же 64 бита,и мы это не сразу заметим а вообще,говорилось,что 1с при освобождении памяти не сразу возвращает ее системе,поэтому,посмотрите,что происходит с памятью при формировании второго документа,возможно,она больше памяти не запррсит
#16
by Фрэнки
13+ скорей всего, что общая форма тоже не является самостоятельным объектом и "привяжется" к контексту того объекта, в котором она открывается
#18
by UMthis
Таб док я не открываю и не вывожу.. он висит программно. я его только заполняю(области). потом в пдф выгружаю.
#23
by H A D G E H O G s
Это вы еще на 32x сидите скорее всего. Добро пожаловать в светлое будущее x64, когда 1Ска ограничивает себя только свободной оперативной памятью:
#24
by ildary
позвольте поинтересоваться - это реальное потребление памяти при работе или результат утечек памяти?
#26
by H A D G E H O G s
Это реальное потребление памяти при печати/просмотре 100500 высококачественных tiff изображений. Как только свободная оперативка подходит к концу - 1С сбрасывает потребленную оперативку.
#28
by H A D G E H O G s
Хочу выразить респект. Если раньше, при потреблении больше 1.5 гига изображения иногда проскакивали неотрисованными/неотпечатанными, то теперь такой фигни нет. Все хорошо в x64.
#30
by Фрэнки
Так это не просто 64-битный клиент, а вероятно более свежая версия платформы. Я видел где-то рекомендации использовать 64-бит начиная с какой-то там версии для решения проблем с нехваткой памяти при работе конфигуратора в режиме сравнения конфигураций, объединения, обновления и т.п.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- есть ли возможность зафиксировать строку в дереве значений?
- УПП 1.3, почему нет дебетового оборота по налоговому счету 70 ?
- ПоказатьОповещениеПользователя толстый клиент
- Комплексная автоматизация 2. Требование-накладная
- Два узла на одном плане обмена, как задать разные правила регистрации
- 1c:enterprise development tools не читает список информационных баз.
- На командной панели табличной части в отборе не хватает полей для выбора сравнений
- Документооборот 2.1: Повторное согласование без уже согласовавших
- Проблема создание COM объекта с указанием имени сервера....
- 8.3 УФ сохранить данные в форме документа до записи объекта
- Как передать переменную запрос с сервера на клиент?
- v7: Запуск внешней обработки по расписанию
- Ошибка выемки ДС из кассы ККМ
- ЕСТЬNULL в запросе
- 1С Розница 2.2 базовая + АТОЛ 11Ф убрать НДС в чеках
- Ошибка (Розничная цена товара из строки 1 списка "Товары" не установлена)
- Внешняя обработка заполнения табличных частей
- Не работает com-connection между серверами разных версий
- Кому принадлежат стандартные конфигурации 1С?
- Менеджер против Набора записей для регистров сведений