Имя: Пароль:
1C
1С v8
пример по загрузке изображений в тч документа
0 LivingStar
 
02.05.13
14:13
Подскажите по коду: есть тч документа нужно сохранять в строках изображения и по наведению курсора на определенную строку показывать изображение. ожет у кого то есть что либо подобное?
1 Wobland
 
02.05.13
15:26
мда..

&НаКлиенте
Процедура ФотоПриАктивизацииСтроки(Элемент)
   Если Элемент.ТекущиеДанные<>Неопределено Тогда
       АдресКартинки=ПолучитьНавигационнуюСсылку(Элемент.ТекущиеДанные.Фотография, "Фото");
   КонецЕсли;
КонецПроцедуры
2 LivingStar
 
02.05.13
16:02
(1) ну так у вас ещё там что то наворочено
3 Wobland
 
02.05.13
16:13
тот же код при изменении. другого кода касательно (0) в модуле формы нет
4 LivingStar
 
02.05.13
17:32
(3) мне просто не понятна работа с картинкой, сейчас разбираю другой код
5 LivingStar
 
02.05.13
17:33
код работает но ничего не выводит (((
|

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   Автор = ПользователиИнформационнойБазы.ТекущийПользователь();
   i = 0;
   Для Каждого Строка Из Объект.ФОТО Цикл
       Строка.АдресКартинки = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "ФОТО.Картинка", i);
       i = i+1;
   КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура ОтветственныйПриИзменении(Элемент)
   Если Не Работающий() Тогда
       Сообщить("Вы выбради не работающего сотрудника!");
       Отказ = Истина;
   КонецЕсли;
КонецПроцедуры

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

&НаКлиенте
Процедура ФОТОПриАктивизацииСтроки(Элемент)
  Если Объект.ФОТО.Количество()>0 Тогда
      Объект.АдресКартинки = Элемент.ТекущиеДанные.АдресКартинки;
  КонецЕсли;
КонецПроцедуры

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

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
  Для каждого Строка Из ТекущийОбъект.ФОТО Цикл
     Если ЭтоАдресВременногоХранилища(Строка.АдресКартинки) Тогда
        ДвоичныеДанные  = ПолучитьИзВременногоХранилища(Строка.АдресКартинки);
        Строка.Картинка = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9));
     КонецЕсли;
  КонецЦикла;
КонецПроцедуры
6 Wobland
 
02.05.13
17:39
беда..
7 LivingStar
 
03.05.13
09:30
подскажите по загрузке изображений?

вызываю диалог выбора изображения, куда потом нужно сохранять его? В УНФ используются и справочники и регистры для этого...

можете подсказать по коду?
8 IamAlexy
 
03.05.13
09:31
у меня такое есть.
в таблице заказа в каждой строке есть ссылка на объект к которому присоеденен файл картинки - сответственно клик на иконку открывает эту картинку объекта.

собственно вот.
работает без проблем
9 LivingStar
 
03.05.13
09:50
(8) поделитесь как это у вас реализованно?
10 LivingStar
 
03.05.13
09:53
(8) видел на одной из веток вы показывали реализацию календаря, связанную с этой темой, если не ошибаюсь.

Я не давно бился с выводом картинки из номенклатуры в отчет СКД, в УТ, да и то выявил только что делать это можно с диска куда картинки сохраняются, из хранилища так и не получилось

У вас есть какие нибудь доступные объяснения как картинку можно загрузить в тч, и вывести в определенное место на форме, ну или просто открыть? Сделать поняв как это работает можно как угодно, на данный момент мне просто не понятно как это реализовать, где хранить картинку(((
11 LivingStar
 
03.05.13
09:54
(10+) Хочется понять саму суть работы с картинками, что бы уже сделать как нужно
12 Wobland
 
03.05.13
09:56
вот так я исследовал вопрос, когда писал это
v8: Картинка в УФ
13 LivingStar
 
03.05.13
09:58
(12) Большое спасибо! Будет с чем поразбираться, не видел эту ветку !!!
14 IamAlexy
 
03.05.13
10:06
(9) в колонку выводится "истина" если есть картикна в объекте и "ложь" если картинки нет. По этому значению отображается иконка наличия картинки.

при клике на ТЧ определяется какая колонка активная и если в строке есть "Истина" в ячейке  где обозначается наличие картинки - открывается форма отображения картинки.
В форму передается ссылка на объект к которому привязана картинка и имя реквизита где лежит картинка (у меня это ия реквизита где лежит ссылка на справочник "Файлы")

ну и далее берется актуальная версия картинки и отображается на форме.

для пользователя это выглядит так:
в форме заказа в некоторых строках отображается иконка о наличии картинки при клике на которую открывается картинка
15 LivingStar
 
03.05.13
11:41
(14) мне нужно просто при активизации строки выводить картинку которая загружена в строке в поле на форме
16 LivingStar
 
03.05.13
11:42
(14) в процедуре начало выбора открывается диалог выбора картинки, я её выбираю, но не пойму куда сохранять, нужен справочник, да?
17 LivingStar
 
03.05.13
11:55
картинка в тч документа какого типа должна быть?
18 LivingStar
 
03.05.13
12:18
исследую пример http://infostart.ru/public/73821/
19 Wobland
 
03.05.13
12:23
я испорчен. в первых двух картинках мне мерещится невесть что
20 LivingStar
 
03.05.13
19:21
Почему когда я загружаю картинки, они появляются в поле, перемещаюсь по строкам они меняются!!! Но при повторном открытии они уже не отображаются (((( Картинки храню в строках документа!
21 LivingStar
 
03.05.13
19:22
// ОБРАБОТКА ИЗОБРАЖЕНИЙ
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   Автор = ПользователиИнформационнойБазы.ТекущийПользователь();
   //АдресКартинки = Объект.ФОТО[0].АдресКартинки;
   АдресКартинки = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "ФОТО.АдресКартинки",1);;
   //i = 0;
   //Для Каждого Строка Из Объект.ФОТО Цикл
       //Строка.АдресКартинки = ПолучитьНавигационнуюСсылку(Строка, "ФОТО.АдресКартинки", i);
   //    Строка.АдресКартинки = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "ФОТО.АдресКартинки", i);
   //    i = i+1;
   //КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура ФОТОПриАктивизацииСтроки(Элемент)
  Если Объект.ФОТО.Количество()>0 Тогда
      АдресКартинки = Элемент.ТекущиеДанные.АдресКартинки;
  КонецЕсли;
КонецПроцедуры

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

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