Имя: Пароль:
1C
1С v8
Изображения во временном хранилище
0 Crashxxx
 
19.12.11
13:47
Проблема в следующем:
На управляемой форме в 6 Полей вида "Поле картинки". ПриСозданииНаСервере на сервере происходит помещение файла картинки во ВременноеХранилище с указанием ИД формы (чтобы при закрытии формы очистить хранилище). В поля формы присваивается значение адреса во ВременномХранилище.
Все исправно работает пока 3 раза подряд открываешь форму, но на 4-1 раз отображаются только 2 последние картинки из 6-ти и платформа подвисает. После закрытия-открытия все нормально. Причем повторяется такое и с нескольких запущенных 1С и с разных ПК. А если перед открытием в 4-й раз выждать минут 10 то все открывается нормально опять только три раза подряд. Принудительная очистка ВременногоХранилища не помогла. В чем может быть проблема?
1 Crashxxx
 
19.12.11
15:09
пробовал передавать картинку, двоичные данные, все равно зависание. может кэш виноват?
2 Crashxxx
 
19.12.11
16:37
На сервере приложений (8.2.14.590) все работает нормально, на других ПК выбает раньше чем 3 открытия зависает. Причем заметно виснет именно интерфейс.
3 Crashxxx
 
19.12.11
16:38
а само приложение работает "нормально"
4 Crashxxx
 
19.12.11
16:39
код модуля формы:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   ДокументСсылка  = Параметры["ДокументСсылка"];
   ПутьФотоПСА = ОбщийМодульУправляемоеПриложение.ПолучитьКаталогФото(ДокументСсылка.Склад, ДокументСсылка.Дата);
   ПрефиксФото = "";
   Если ТипЗнч(ДокументСсылка) = Тип("ДокументСсылка.ДокументСБ") Тогда
       ПрефиксФото = "СБ_";
   КонецЕсли;
   НомерДокумента = ДокументСсылка.Номер;
   ИменаФотографий = Новый Массив();
   ИменаФотографий.Добавить(ПрефиксФото + НомерДокумента + "_БР1.jpg");
   ИменаФотографий.Добавить(ПрефиксФото + НомерДокумента + "_БР2.jpg");
   ИменаФотографий.Добавить(ПрефиксФото + НомерДокумента + "_БР3.jpg");
   ИменаФотографий.Добавить(ПрефиксФото + НомерДокумента + "_НТ1.jpg");
   ИменаФотографий.Добавить(ПрефиксФото + НомерДокумента + "_НТ2.jpg");
   ИменаФотографий.Добавить(ПрефиксФото + НомерДокумента + "_НТ3.jpg");
   МассивСсылок = ПолучитьФотографии(ПутьФотоПСА, ИменаФотографий);
   ФотографияБрутто1 = МассивСсылок[0];
   ФотографияБрутто2 = МассивСсылок[1];
   ФотографияБрутто3 = МассивСсылок[2];
   ФотографияНетто1  = МассивСсылок[3];
   ФотографияНетто2  = МассивСсылок[4];
   ФотографияНетто3  = МассивСсылок[5];
КонецПроцедуры

&НаСервере
Функция ПолучитьФотографии(ПолныйПутьКФото, МассивИмёнФайлов)
   Для н = 0 по МассивИмёнФайлов.Количество()-1 Цикл
       Картинка = Новый Картинка(ПолныйПутьКФото + МассивИмёнФайлов[н]);
       Адрес = ПоместитьВоВременноеХранилище(Картинка, ЭтаФорма.УникальныйИдентификатор);
       МассивИмёнФайлов[н] = Адрес;
   КонецЦикла;
   Возврат МассивИмёнФайлов;
КонецФункции
5 Crashxxx
 
19.12.11
16:41
ФотографияБрутто1 - ФотографияНетто3 это поля управляемой формы вида "Поле картинки"
6 Crashxxx
 
19.12.11
16:43
причем если оставить на некоторое время (5-10мин) "подвисший" интерфейс, то все нормально работает
7 Crashxxx
 
20.12.11
08:41
ап
8 Crashxxx
 
20.12.11
10:27
использование фотографий в формате jpg решило проблему