Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Исчезает изображение в тонком клиенте , при повторном открытии элемента          
irbis_triffle Подменю пользователя
сообщение 26.03.12, 11:58
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 40
Спасибо сказали: 7 раз
Рейтинг: 0

Всем добрый день!
Столкнулся с проблемой, которую сам не могу победить(( :
Имеется два справочника: номенклатура и ХранилищеДополнительнойИнформации, в номенклатуре есть реквизит ОсновноеИзображение с типом СправочникСсылка.ХранилищеДополнительнойИнформации, в ХранилищеДополнительнойИнформации есть реквизит Файл и типом ХранилищеЗначения.
С помощью книги "Разработка управляемого интерфейса" организована загрузка и сохранение в базе картинки (в справочнике ХранилищеДополнительнойИнформации) и указание ссылки на этот объект в справочнике номенклатура.
Проблема в следующем: при открытии в тонком клиенте элемента справочника Номенклатура или справочника ХранилищеДополнительнойИнформации изображение отображается:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    Если НЕ Объект.Ссылка.Пустая() Тогда
        Если Объект.ОсновноеИзображение <> "" И НЕ Объект.ОсновноеИзображение = Справочники.ХранилищеДополнительнойИнформации.ПустаяСсылка() Тогда
            СсылкаНаКартинку = ПолучитьНавигационнуюСсылку(Объект.ОсновноеИзображение.Ссылка, "Файл");
            ИмяФайлаКартинки = Объект.ОсновноеИзображение.ИмяФайла;
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры



&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    Если НЕ Объект.Ссылка.Пустая() Тогда
            
        СсылкаНаФайл = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "Файл");
        
    КонецЕсли;
    
КонецПроцедуры



А при повторном открытии изображения пропадают, причем в отладке реквизит СсылкаНаФайл заполнен и отображается именно пустое изображение и не отсутствующее - ТекстНевыбраннойКартинки не отображается:



В web-клиенте все работает нормально.

Подскажите где я ошибся?

Заранее благодарен.

PS 1С:Предприятие 8.2 (8.2.15.301), конфигурация самописная.

irbis_triffle Подменю пользователя
сообщение 26.03.12, 14:38
Сообщение #2

Общительный
**
Группа: Пользователи
Сообщений: 40
Спасибо сказали: 7 раз
Рейтинг: 0

UPDATE:
когда картинка не отображается - её все-же можно сохранить на диск и получится нормальный файл, но на форме она не отображается(

Small sa Подменю пользователя
сообщение 26.03.12, 14:58
Сообщение #3

Говорящий
***
Группа: Пользователи
Сообщений: 52
Из: Санкт-Петербург
Спасибо сказали: 12 раз
Рейтинг: 0

Может помочь:

[необходимо зарегистрироваться для просмотра ссылки]

[необходимо зарегистрироваться для просмотра ссылки]

irbis_triffle Подменю пользователя
сообщение 26.03.12, 15:03
Сообщение #4

Общительный
**
Группа: Пользователи
Сообщений: 40
Спасибо сказали: 7 раз
Рейтинг: 0

UPDATE2:
Ошибка отображения наблюдается только у картинок большого размера ( > 800 кб)

Спасибо сказали: Ardi,

irbis_triffle Подменю пользователя
сообщение 27.03.12, 11:37
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 40
Спасибо сказали: 7 раз
Рейтинг: 0

UPDATE3:
Если загружать картинку с цветовой моделью "CMYK" ("JPEG CMYK (v1.2)", 2.5 Мб) то в тонком клиенте не возникает проблем с отображением.
Если загружать картинку с цветовой моделью "RGB" (JPEG TrueColor (v1.1)) то в тонком клиенте изображение отображается только при первом обращении, при повторном обращении изображение пустое.

Можно было бы загружать все картинки в CMYK, но тогда возникают проблемы с использованием web-клиента через IE (которые требует именно RGB).

Чувствую, что хожу по полю с граблями, но все никак их не увижу...

Загрузил учебную базу "Файлы и картинки" из дополнения к книге "Разработка управляемого интерфейса" - при загрузке картинки JPEG RGB свыше 800кб - она даже не отображается в форме элемента, при загрузке картинки CMYK проблем не возникает.

Получается, что это не ошибка в моей конфигурации?

У кого есть типовая конфа - пожалуйста попробуйте загрузить RGB изображение (например основное изображение номенклатуры) с размером больше 800 кб. Может эту проблему можно обойти?

Спасибо сказали: Ardi,

Batchir Подменю пользователя
сообщение 27.03.12, 11:46
Сообщение #6

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1443 раз
Рейтинг: 0

Если Вас утешит, то с большими картинками и в толстом клиенте я наблюдал эффекты, да и хранить большие картинки не очень хорошо (точнее какой вообще смысл?).
Вот что я использовал для того что бы программно урезать картинку до нормальных размеров и что бы грузилась как надо:
1. Подключил внешнюю компоненту GFLAx
2. При добавлении картинки обращался к этой компоненте и форматировал картинку, пример кода (использовал в УТ):
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогОткрытияФайла.Заголовок = "Выберите файл с изображением";
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
ДиалогОткрытияФайла.ПредварительныйПросмотр = Истина;
ДиалогОткрытияФайла.Фильтр = ПолучитьФильтрИзображений(); // функция описана отдельно
Если ДиалогОткрытияФайла.Выбрать() Тогда
    //ВыбранноеИзображение = Новый Картинка(ДиалогОткрытияФайла.ПолноеИмяФайла, Ложь);
    Попытка
        Картинки= Новый COMОбъект("GFLAx.GFLAx");
        Картинки.LoadBitmap(ДиалогОткрытияФайла.ПолноеИмяФайла);
        ШиринаКартинки=Картинки.Width;
        ВысотаКартинки=Картинки.Height;
        НовВысота = 600;
        ОтклонениеРазмера =  ВысотаКартинки/НовВысота;
        НовШирина =  ШиринаКартинки/ОтклонениеРазмера;
        Картинки.Resize(НовШирина,НовВысота);
        Картинки.SaveFormat=1;
        Картинки.SaveBitmap(ДиалогОткрытияФайла.ПолноеИмяФайла);
        ПолныйПуть = ДиалогОткрытияФайла.ПолноеИмяФайла;
        ПутьБезРасшерения = "";
        ПозицияТочки = Найти(ДиалогОткрытияФайла.ПолноеИмяФайла ,".");
        Пока ПозицияТочки <> 0 Цикл
            ПутьБезРасшерения = ПутьБезРасшерения + Лев(ПолныйПуть,ПозицияТочки);
            ПолныйПуть = Сред(ПолныйПуть,ПозицияТочки+1,СтрДлина(ПолныйПуть)- ПозицияТочки);
            ПозицияТочки = Найти(ПолныйПуть ,".");
        КонецЦикла;
        ПолныйПуть = ПутьБезРасшерения + "JPG";
        ВыбранноеИзображение = Новый Картинка(ПолныйПуть,Ложь);
        
    Исключение
        Сообщить("Не подключена компонента для сжатия изображений GFLAx",СтатусСообщения.Важное);
        ПолныйПуть = ДиалогОткрытияФайла.ПолноеИмяФайла;
        ВыбранноеИзображение = Новый Картинка(ПолныйПуть,Ложь);
    КонецПопытки;
Иначе
    Возврат;
КонецЕсли;
НовыйОбъект = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
НовыйОбъект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение;
НовыйОбъект.Хранилище = Новый ХранилищеЗначения(ВыбранноеИзображение, Новый СжатиеДанных);
НовыйОбъект.Объект = ОбъектВладелец;
НовыйОбъект.ИмяФайла = ПолучитьИмяФайлаИзПолногоПути(ПолныйПуть);

в результате я все загружаемые картинки привожу к размеру 600 пикселей по высоте, а ширину автоматом рассчитываю, что бы сохранить пропорцию.

Сообщение отредактировал Batchir - 27.03.12, 11:59

Спасибо сказали: irbis_triffle,

irbis_triffle Подменю пользователя
сообщение 27.03.12, 11:54
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 40
Спасибо сказали: 7 раз
Рейтинг: 0

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

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 15.06.25, 2:25
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!