Имя: Пароль:
1C
1С v8
При печати большого числа картинок не хватает памяти
0 gafsa
 
07.07.14
06:22
При печати большого числа картинок не хватает памяти?Кто-нибудь сталкивался?
1 Wobland
 
07.07.14
06:24
думаю, да
2 DrZombi
 
гуру
07.07.14
06:32
(1) И что с этим делать?
Как решать сею проблему?

(0)А можешь показать Код?
3 gafsa
 
07.07.14
06:37
Для каждого стр из Табл Цикл
        
        МассивСтраницы = Новый Массив;//его надо обнулять в цикле
        
        ТабДок.Вывести(ОблЗаголовок);
        ОблПодвал.Параметры.СписокНомеровКвартир = стр.НомераКвартир;
                
        //Найдем изображение (элемент справочника ХДИ_ОР) для данной квартиры:
        Если не ЗначениеЗаполнено(ВыборкаОсновныхДанных.ИмяПланировки) Тогда
            Сообщить("Не заполнено Имя планировки для данной квартиры", СтатусСообщения.Внимание);
            Возврат;
        КонецЕсли;
        Запрос = Новый Запрос("ВЫБРАТЬ
        |    ХранилищеДополнительнойИнформацииОР.ИмяФайла,
        |    ХранилищеДополнительнойИнформацииОР.Хранилище
        |ИЗ
        |    Справочник.ХранилищеДополнительнойИнформацииОР КАК ХранилищеДополнительнойИнформацииОР
        |ГДЕ
        |    не ХранилищеДополнительнойИнформацииОР.ПометкаУдаления
        |    И ХранилищеДополнительнойИнформацииОР.ВидДанных = Значение(Перечисление.ВидыДополнительнойИнформацииОбъектов.Изображение)
        |    И ХранилищеДополнительнойИнформацииОР.Объект = &Объект
        |    И ХранилищеДополнительнойИнформацииОР.Наименование = &Наименование");
        Запрос.УстановитьПараметр("Объект", СсылкаОбъекта.ОбъектСтроительства);
        Запрос.УстановитьПараметр("Наименование", стр.ИмяПланировки);
        ХДИ = Запрос.Выполнить().Выбрать();
        Если ХДИ.Следующий() Тогда        
            //вытащим изображение
            Если ЗначениеЗаполнено(ХДИ.ИмяФайла) и (Лев(ХДИ.ИмяФайла, 1) <> ".") Тогда
                //возьми изо-ние из файла:            
                //Надо взять и выделить из ИмяФайла само имя (с расширением), а каталог взять из константы:            
                КаталогХранилищаФайлов = Константы.ХранилищеФайловПуть.Получить();
                Подкаталог = "\Изображения\";
                ДополнительныеПроцедурыОР.РазделитьИмена(ХДИ.ИмяФайла, ИмяКаталога1, ИмяСРасширением);//выделяет из полного имени файла ИмяКаталога и Имя с расширением        
                ИмяФайлаИсточника = КаталогХранилищаФайлов + Подкаталог + ИмяСРасширением;            
                ТекущаяКартинка = Новый Картинка(ИмяФайлаИсточника);            
            Иначе
                //возьми изображение из реквизита Хранилище
                ТекущаяКартинка = ХДИ.Хранилище.Получить();
            КонецЕсли;
        Иначе
            Сообщить("Не найден файл с планировкой для данной квартиры", СтатусСообщения.Внимание);
            Возврат;
        КонецЕсли;
        
        //Выведем изображение в ТабДок:
        НомерСтраницы = НомерСтраницы + 1;
        рис=ОбластьСередина.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
        рис.Картинка=ТекущаяКартинка;
        Рис.Расположить(ОбластьСередина.ТекущаяОбласть);
        рис.Лево=2;
        рис.Ширина=170;
        рис.РазмерКартинки=РазмерКартинки.АвтоРазмер;
        ТабДок.Вывести(ОбластьСередина);
        ТабДок.Вывести(ОблПодвал);
        Если НомерСтраницы=Табл.Количество() Тогда
            ТабДок.Вывести(ОбластьПодписи);
        КонецЕсли;
        табдок.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЦикла;
4 МихаилМ
 
07.07.14
06:44
выводите отдельным документом
5 SeraFim
 
07.07.14
06:45
(2) что лучше поллитра зараз или 5 раз по 100?
6 1cVandal
 
07.07.14
06:56
делай в цикле, вывод с таймаутом
7 ИС-2
 
naïve
07.07.14
07:25
На клиентском компе запустить командную строку от имени администратора, прописать там следующее:

BCDEdit /set increaseuserva xxxx - вместо хххх пишите объем виртуального адресного пространства в мегабайтах, т.е. сколько нужно памяти под работу приложений. По умолчанию 2 гига. Вообще в 32-разрядных операционных системах выделяется 4 гигабайта: 2 - на приложения и 2 на нужды самой ОС.  Я выбрал 3000 (т.е. CDEdit /set increaseuserva 3000). Однако система может подглючивать. Особенно, если у вас 2 гига оперативки, как у меня. Это для ОС семейства Windows Vista, 7, Windows 2008.

Для Windows XP \ Windows 2003 пишем
/3GB /userva=xxxx (xxxx в МБ в диапазоне 2048 - 3072) в файле boot.ini, рекомендуемый максимум значений userva 2900–3030.

http://infostart.ru/public/147631/
8 gafsa
 
07.07.14
07:28
МихаилМ,что значит выводить отдельным документом?
9 gafsa
 
07.07.14
07:38
ИС-2,у нас 1С на удаленном рабочем столе,то бишь на сервере,всё равно командную строку на клиентском компе запускать?
10 Stepa86
 
07.07.14
07:43
11 Бешеная Нога
 
07.07.14
07:44
(8) выводить не на отдельные страницы одного табличного документа, а в отдельные табличные документы
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший