helpf.pro
Регистрация

v8: Не отображается картинка.

Lavr
20.05.2012 22:22Прочитано: 3565
Здравствуйте.
Вот код:
Код 1C v 8.х
 Процедура ОтобразитьКартинку() 
ЗначениеКартинки = Изображения.Получить();
Если ЗначениеКартинки <> Неопределено Тогда
ЭлементыФормы.Изображение.Картинка = ЗначениеКартинки;
Иначе
ЭлементыФормы.Изображение.Картинка = Новый Картинка(Неопределено);
КонецЕсли;
КонецПроцедуры


Процедура Нажатие(Элемент)

Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Заголовок = "Выберите файл с фотографией";
Диалог.ПолноеИмяФайла = "";
Диалог.ПредварительныйПросмотр = Истина;
Диалог.Фильтр =
"Все картинки (*.bmp;*.dib;*.rle;*.jpg;*.jpeg;*.tif;*.gif;*.png;*.ico;*.wmf;*.emf)|*.bmp;*.dib;*.rle;*.jpg;*.jpeg;*.tif;*.gif;*.png;*.ico;*.wmf;*.emf|"
+ "Формат bmp (*.bmp;*.dib;*.rle)|*.bmp;*.dib;*.rle|"
+ "Формат JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|"
+ "Формат TIFF (*.tif)|*.tif|"
+ "Формат GIF (*.gif)|*.gif|"
+ "Формат PNG (*.png)|*.png|"
+ "Формат icon (*.ico)|*.ico|"
+ "Формат метафайл (*.wmf;*.emf)|*.wmf;*.emf|"; // картинки

Если Диалог.Выбрать() Тогда
Выбранное = Новый Картинка(Диалог.ПолноеИмяФайла,Ложь);
ЭлементыФормы.Изображение.Картинка = Выбранное;
Иначе
Отказ = Истина;
Возврат;
КонецЕсли;
КонецПроцедуры

подскажите пожалуйста, как правильно сделать так чтобы сохраненная картинка отображалась при открытии формы элемента справочника? Я нажимаю кнопку Обзор нахожу картинку, она отображается на форме, сохраняется элемент справочника, но при повторном открытии картинка не отображается.
Благодарю.

П. С., я очень начинающий, учусь по учебникам и для закрепления материала экспериментирую.
Изменено 21.05.12 11:37:34
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
21.05.2012 11:39Ответ № 1
(0) Lavr, создаешь в справочнике Реквизит Картинка - ХранилищеЗначение и код:
Код 1C v 8.х
 Процедура ОтобразитьКартинку() 
ЗначениеКартинки = Картинка.Получить();
Если ЗначениеКартинки <> Неопределено Тогда
ЭлементыФормы.ПолеКартинки.Картинка = ЗначениеКартинки;
Иначе
ЭлементыФормы.ПолеКартинки.Картинка = Новый Картинка(Неопределено);
КонецЕсли;
КонецПроцедуры

Процедура ВыбратьИзФайлаНажатие(Элемент)
// Выбор файла с просмотром
ДиалогВыбораФайла = Новый
ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогВыбораФайла.Каталог = "";
ДиалогВыбораФайла.ПредварительныйПросмотр = Истина;
ДиалогВыбораФайла.ИндексФильтра = 0;
Если ДиалогВыбораФайла.Выбрать() Тогда
Файл = Новый Файл(ДиалогВыбораФайла.ПолноеИмяФайла);
Картинка = Новый ХранилищеЗначения(Новый Картинка(ДиалогВыбораФайла.ПолноеИмяФайла));
ОтобразитьКартинку();
КонецЕсли;
КонецПроцедуры
Lavr
23.05.2012 21:50Ответ № 2
Здравствуйте.
(1) E_Migachev, не отображается. Версия 1С 8.1 В справочнике Картинки реквизит Картинка (Хранилище значения), в форме элемента: Код, Наименование, ПолеКартинки; ПолеКартинки как гиперссылка. Все открывает выбирает изображение, отображает его, в справочнике записываются элементы, но после закрытия формы элемента и открытия ее снова, картинки уже нет.
E_Migachev
24.05.2012 00:38Ответ № 3
(2) Lavr, В при Открытии написали присваивание?
Lavr
24.05.2012 21:50Ответ № 4
(3) E_Migachev, нет. При открытии в модуле формы или в модуле приложения должно быть?
E_Migachev
25.05.2012 11:21Ответ № 5
в модуле формы на которой хотите видеть картинку
Lavr
27.05.2012 13:48Ответ № 6
(5) E_Migachev, нет, не писал. Т. е. необходимо прописать присваивание значений к переменным? Но что к чему пока не понятно.
E_Migachev
27.05.2012 14:11Ответ № 7
(6) Lavr, в при открытии напиши:
Код 1C v 8.х
 ЗначениеКартинки = Картинка.Получить(); 
Если ЗначениеКартинки <> Неопределено Тогда
ЭлементыФормы.ПолеКартинки.Картинка = ЗначениеКартинки;
Иначе
ЭлементыФормы.ПолеКартинки.Картинка = Новый Картинка(Неопределено);
КонецЕсли;
Lavr
27.05.2012 21:42Ответ № 8
(7) E_Migachev, может так:

Процедура ПриОткрытии()
ЗначениеКартинки = Картинка.Получить();
Если ЗначениеКартинки <> Неопределено Тогда
ЭлементыФормы.ПолеКартинки.Картинка = ЗначениеКартинки;
Иначе
ЭлементыФормы.ПолеКартинки.Картинка = Новый Картинка(Неопределено);
КонецЕсли;
КонецПроцедуры

Процедура ОтобразитьКартинку()
ЗначениеКартинки = Картинка.Получить();
Если ЗначениеКартинки <> Неопределено Тогда
ЭлементыФормы.ПолеКартинки.Картинка = ЗначениеКартинки;
Иначе
ЭлементыФормы.ПолеКартинки.Картинка = Новый Картинка(Неопределено);
КонецЕсли;
КонецПроцедуры

Процедура ВыбратьИзФайлаНажатие(Элемент)
// Выбор файла с просмотром
ДиалогВыбораФайла = Новый
ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогВыбораФайла.Каталог = "";
ДиалогВыбораФайла.ПредварительныйПросмотр = Истина;
ДиалогВыбораФайла.ИндексФильтра = 0;
Если ДиалогВыбораФайла.Выбрать() Тогда
Файл = Новый Файл(ДиалогВыбораФайла.ПолноеИмяФайла);
Картинка = Новый ХранилищеЗначения(Новый Картинка(ДиалогВыбораФайла.ПолноеИмяФайла));
ОтобразитьКартинку();
КонецЕсли;
КонецПроцедуры
E_Migachev
28.05.2012 00:09Ответ № 9
(8) Lavr, тогда вот тах хватит:
Код 1C v 8.х
 Процедура ПриОткрытии() 
ОтобразитьКартинку();
КонецПроцедуры
Lavr
30.05.2012 22:19Ответ № 10
(9) E_Migachev, так я тоже делал, тогда, всеравно не отображает. Ревизит у справочника Картинки - Картинка (ХранилищеЗначения), простая форма элемента с ПолеКартинки. Я еще посмотрю УПП, но честно говоря в УП когда смотрел, не получилось сделать такое же хранилище - слишком много там всего и очень сложно разобраться.
E_Migachev
31.05.2012 10:55Ответ № 11
(10) Lavr, Так ты в какой форме еэто делаешь? в Обычной или Управляемой?
Lavr
31.05.2012 20:46Ответ № 12
В обычной.
Lavr
31.05.2012 20:46Ответ № 13
Версия 8.1
E_Migachev
01.06.2012 14:05Ответ № 14
(13) Lavr, покажи код при открытии и код загрузки
Lavr
01.06.2012 21:24Ответ № 15
Вот код модуля приложения конфигурации, на всякий случай:
Код 1C v 8.х
 Процедура ПриНачалеРаботыСистемы()

Форма=ПолучитьОбщуюФорму("Форма");
Форма.Открыть();
Форма.Активизировать();

КонецПроцедуры

Вот код справочника Картинки:

Процедура ПриОткрытии()
ОтобразитьКартинку();
КонецПроцедуры

Процедура ОтобразитьКартинку()
ЗначениеКартинки = Картинка.Получить();
Если ЗначениеКартинки <> Неопределено Тогда
ЭлементыФормы.ПолеКартинки.Картинка = ЗначениеКартинки;
Иначе
ЭлементыФормы.ПолеКартинки.Картинка = Новый Картинка(Неопределено);
КонецЕсли;
КонецПроцедуры

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

В справочнике реквизит Картинка (Тип данных - ХранилищеЗначения).
Форма элемента с полями Код, Наименование и ПолеКартинки (у поля гипер ссылка).
Изменено 12.06.12 22:08:55 по причине: раскрасил код
Lavr
01.06.2012 21:25Ответ № 16
Код спрвочника - код в модуле формы элемента, т. е. не в модуле объекта справочника Картинки.
Lavr
04.06.2012 21:48Ответ № 17
(14) E_Migachev, правильно ли все?
E_Migachev
12.06.2012 22:13Ответ № 18
(17) Lavr, при выборе картинки она отображается?
У поля Картинки убери гипер ссылку.
Lavr
13.06.2012 21:43Ответ № 19
(18) E_Migachev, при открытии диалога с выбором картинки я ее выбираю и она первоначально отображается, после нажатия OK открываю элемент справочника картинка уже не отображается.
E_Migachev
14.06.2012 19:34Ответ № 20
(19) Lavr, попробуй отладчиком при открытии, что в Картинка ?
Lavr
14.06.2012 21:49Ответ № 21
(20) E_Migachev, может мне вам выслать саму конфигурацию? Так проще будет. Еще такой вопрос: я попробовал сохранить картинку размером 100 мб, файл 1Cv8.1CD сразу на 100 мб стал больше, как теперь можно удалить ее из бд? Простым удалением элемента содержащего это изображение не получилось.
E_Migachev
14.06.2012 22:34Ответ № 22
(21) Lavr, пришли
чтобы удалить, нужно пометит на удаление этот элемент справочника, потом его удалить через Операции- Удаление помеченных объектов
Далее в конфигуратор и лучше всего Администрирование -Тестирование и Исправление со всеми галочками
Lavr
15.06.2012 21:44Ответ № 23
(22) E_Migachev, вот ссылка на конфигурацию, справочник Картинки, версия 8.1
http://www.fayloobmennik.net/1977671
По поводу удаления - через конфигуратор помогло! Приятно когда когда узнаешь что-то новое. Очень благодарен за помощь!!
E_Migachev
18.06.2012 18:01Ответ № 24
(23) Lavr, У тебя не срабатывает процедура ПриОткрытии, ее нужно указать в свойствах формы:
title
Изменено 18.06.12 18:01:50
Lavr
27.06.2012 21:46Ответ № 25
(24) E_Migachev, все работает! Позор мне про такую вещь забыть! Очень благодарен!!
Подсказка: Щелкнув по значку (справа от названия вопроса), вы получите список ответов на похожие вопросы!
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.