Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

При открытии справочника не отображается картинка и её имя файла с расширением.

При открытии справочника не отображается картинка и её имя файла с расширением.
Я
   Reraru
 
05.02.20 - 14:33
Имеется справочник Благотворительные организации с реквизитами Картинка - Хранилище значений и Логотип типа строка. У справочника есть форма элемента элементом Логотип типа Поле Картинки, который применяется для связи Хранилище значений, а также реквизит СсылкаНаКартинку, в которой после загрузки картинки хранится её имя с расширением.
Сама загрузка картинки и сохранение её в реквизите проходит успешно.
https://sun9-71.userapi.com/c854128/v854128104/1e4646/_QODZEF1fNo.jpg
https://sun9-39.userapi.com/c854128/v854128104/1e465a/XA0Pbi2aIb8.jpg


<code>

&НаКлиенте
Процедура Просмотр(Команда, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    Режим = РежимДиалогаВыбораФайла.Открытие;
    ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим);
    ДиалогОткрытия.ПолноеИмяФайла = "";
    Фильтр =  "Все картинки (*.bmp;*.jpg;*.jpeg;*.png;)|*.bmp;*.jpg;*.jpeg;*.png;*|"
+ "Формат bmp (*.bmp)|*.bmp|"
+ "Формат JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|"
+ "Формат PNG (*.png)|*.png|";// картинки

    ДиалогОткрытия.Фильтр = Фильтр;
    ДиалогОткрытия.МножественныйВыбор = Ложь;
    ДиалогОткрытия.Заголовок = "Выберите файл для загрузки";
    ОписаниеОповещения = Новый ОписаниеОповещения("ПослеЗагрузкиФайла",ЭтаФорма);
    ДиалогОткрытия.Показать(ОписаниеОповещения);
    
    
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    Если ЭтоАдресВременногоХранилища(Логотип)  Тогда
        ФайлКартинки = ПолучитьИзВременногоХранилища(Логотип);
        ТекущийОбъект.Картинка = Новый ХранилищеЗначения(ФайлКартинки);
        УдалитьИзВременногоХранилища(Логотип);
        Логотип = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"Картинка");
    КонецЕсли;
КонецПроцедуры


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

&НаКлиенте
Процедура ПослеПомещенияФайла(Результат, Адрес, ВыбранноеИмяФайла,ДопПараметры) Экспорт
    Если Не Результат Тогда
        Возврат;
    КонецЕсли;
    Логотип = Адрес;
    Модифицированность = Истина;
КонецПроцедуры


&НаКлиенте
Процедура ПослеЗагрузкиФайла(ВыбранныйФайл,ДопПараметр) Экспорт
    //если пользователь выбрал файл, мы будем помещать его во временное
    //хранилище при помощи метода НачатьПомещениеФайла.
    Если ВыбранныйФайл = Неопределено Тогда
        Возврат;
    КонецЕсли;
    ОписаниеОповещения = Новый ОписаниеОповещения("ПослеПомещенияФайла", ЭтаФорма);
    НачатьПомещениеФайла(ОписаниеОповещения,, ВыбранныйФайл[0], Ложь, УникальныйИдентификатор);
КонецПроцедуры


</code>
   Reraru
 
1 - 05.02.20 - 15:40
Если я использую в коде команды

СсылкаНаКартинку = Новый Картинка (ДиалогОткрытия.ПолноеИмяФайла,Истина);

то мне выходит ошибка что каталог не обнаружен
   unbred
 
2 - 05.02.20 - 15:51
(1) в каком месте используешь?)
 исходя из >: ДиалогОткрытия.ПолноеИмяФайла = "";<
 там и нет нихрена))
   Reraru
 
3 - 05.02.20 - 15:57
Переделал, но тогда поле объекта СсылкаНаКартинку недоступно для записи:

&НаКлиенте
Процедура ПослеПомещенияФайла(Результат, Адрес, ВыбранноеИмяФайла,ДопПараметры) Экспорт 
    Если Не Результат Тогда 
        Возврат; 
    КонецЕсли;
    
        Если Результат Тогда
        Файл = Новый Файл (ВыбранноеИмяФайла);
        ЭтаФорма.Элементы.СсылкаНаКартинку = файл.Имя
        КонецЕсли;
    
    //СсылкаНаКартинку = Адрес; //присвоим реквизиту формы «СсылкаНаКартинку» адрес временного хранилища.

    Логотип = Адрес;
    Модифицированность = Истина; 
КонецПроцедуры (2)
   unbred
 
4 - 05.02.20 - 16:09
   Reraru
 
5 - 05.02.20 - 16:43
Задача решена и имя файла записывается правильно с учётом его расширения.
Мне не понятно почему не могла проходить запись в элемент СсылкаНаКартинку
&НаКлиенте 
Процедура ПослеПомещенияФайла(Результат, Адрес, ВыбранноеИмяФайла,ДопПараметры) Экспорт 
    Если Не Результат Тогда 
        Возврат; 
    КонецЕсли;
    
        Если Результат Тогда
        Файл = Новый Файл (ВыбранноеИмяФайла);
        ЭтаФорма.Объект.СсылкаНаКартинку = Файл.Имя + Символы.ПС
        КонецЕсли;
    
    //СсылкаНаКартинку = Адрес; //присвоим реквизиту формы «СсылкаНаКартинку» адрес временного хранилища.

    Логотип = Адрес;
    Модифицированность = Истина; 
КонецПроцедуры
   Reraru
 
6 - 05.02.20 - 16:45
(4) https://sun9-64.userapi.com/c854128/v854128349/1eb856/cn8xvhhoC6A.jpg
Как мне сделать отображение картинки в реквизите Логотип ?
   Reraru
 
7 - 05.02.20 - 21:43
Помощь! Туплю блин.
Как вывести картинку в реквизит справочника?
На форму картинка выводится.
&НаКлиенте 
Процедура ПослеЗагрузкиФайла(ВыбранныйФайл,ДопПараметр) Экспорт 
    //если пользователь выбрал файл, мы будем помещать его во временное

    //хранилище при помощи метода НачатьПомещениеФайла.

    Если ВыбранныйФайл = Неопределено Тогда 
        Возврат; 
    КонецЕсли; 
    ОписаниеОповещения = Новый ОписаниеОповещения("ПослеПомещенияФайла", ЭтаФорма); 
    НачатьПомещениеФайла(ОписаниеОповещения,, ВыбранныйФайл[0], Ложь, УникальныйИдентификатор);
   
   
КонецПроцедуры
&НаКлиенте 
Процедура ПослеПомещенияФайла(Результат, Адрес, ВыбранноеИмяФайла,ДопПараметры) Экспорт 
    Если Не Результат Тогда 
        Возврат; 
    КонецЕсли;
   
   
    //Так как реквизит СсылкаНаКартинку имеет тип строка неограниченной длины 

        Если Результат Тогда//то из выбранного ранее файла будет формироваться его

        Файл = Новый Файл (ВыбранноеИмяФайла);//имя и расширение

        ЭтаФорма.Объект.СсылкаНаКартинку = Файл.Имя;//затем оно отобразится в данном реквизите.

    КонецЕсли;   
       
       Объект.Логотип = ВыбранноеИмяФайла;
    //СсылкаНаКартинку = Адрес; //присвоим реквизиту формы «СсылкаНаКартинку» адрес временного хранилища.

    Логотип = Адрес;
    Модифицированность = Истина; 
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    //СсылкаНаКартинку заменена на Логотип

    Если ЭтоАдресВременногоХранилища(Логотип)  Тогда 
        ФайлКартинки = ПолучитьИзВременногоХранилища(Логотип); 
        ТекущийОбъект.Картинка = Новый ХранилищеЗначения(ФайлКартинки);
        УдалитьИзВременногоХранилища(Логотип); 
        Логотип = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"Картинка");   
        //СсылкаНаКартинку = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"Картинка"); 

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

КонецПроцедуры
&НаКлиенте
Процедура Просмотр(Команда, СтандартнаяОбработка, Адрес)
   
    СтандартнаяОбработка = Ложь; 
    Режим = РежимДиалогаВыбораФайла.Открытие; 
    ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим); 
    ДиалогОткрытия.ПолноеИмяФайла = ""; 
    Фильтр =  "Все картинки (*.bmp;*.jpg;*.jpeg;*.png;)|*.bmp;*.jpg;*.jpeg;*.png;*|"
+ "Формат bmp (*.bmp)|*.bmp|"
+ "Формат JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|"
+ "Формат PNG (*.png)|*.png|"// картинки

    ДиалогОткрытия.Фильтр = Фильтр; 
    ДиалогОткрытия.МножественныйВыбор = Ложь; 
    ДиалогОткрытия.Заголовок = "Выберите файл для загрузки"; 
    ОписаниеОповещения = Новый ОписаниеОповещения("ПослеЗагрузкиФайла",ЭтаФорма); 
    ДиалогОткрытия.Показать(ОписаниеОповещения);
   
   
КонецПроцедуры
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    Логотип = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"Картинка");
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект) 
    Логотип = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"Картинка");
КонецПроцедуры

[IMG]https://sun9-10.userapi.com/c854128/v854128759/1ebdd8/7IcOUekv5uk.jpg[/IMG] [IMG]https://sun9-71.userapi.com/c854128/v854128104/1e4646/_QODZEF1fNo.jpg[/IMG]
   Reraru
 
8 - 05.02.20 - 21:44

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.