Имя: Пароль:
1C
1С v8
вопрос по выводу картинки
,
0 LivingStar
 
04.05.13
08:30
В документ вношу картинку в тч, отображается при инструкции
|
&НаКлиенте
Процедура ФОТОПриАктивизацииСтроки(Элемент)
  Если Объект.ФОТО.Количество() > 0 Тогда
      АдресКартинки = Элемент.ТекущиеДанные.АдресКартинки;
|
после записи документа и при его открытии, по этой инструкции ничего не отображается, а начинает отображаться вот по этой
|
&НаКлиенте
Процедура ФОТОПриАктивизацииСтроки(Элемент)
  Если Объект.ФОТО.Количество() > 0 Тогда
     УстановкаКартинки(Элемент.ТекущиеДанные.НомерСтроки-1);
  КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура УстановкаКартинки(НомерСтроки)
   АдресКартинки = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "ФОТО.ХранилищеКартинки",НомерСтроки);
КонецПроцедуры
|
как все же сделать что бы и при вводе строк, и при повторном открытии документа все отображалось?
1 LivingStar
 
04.05.13
08:44
с этой инструкцией, фотографии загружаю, хоть сколько перехожу по ним все отображается в поле картинка как нужно
|
&НаКлиенте
Процедура ФОТОПриАктивизацииСтроки(Элемент)
  Если Объект.ФОТО.Количество() > 0 Тогда
      АдресКартинки = Элемент.ТекущиеДанные.АдресКартинки;
|
стоит записать документ, закрыть, открыть, все уже ничего не отображается по переходе
по строкам, что нужно поправить?
2 Wobland
 
04.05.13
08:46
>стоит записать документ, закрыть, открыть, все уже ничего не отображается
как ты этого добился?
3 LivingStar
 
04.05.13
08:54
разница в инструкциях

АдресКартинки = Элемент.ТекущиеДанные.АдресКартинки;

АдресКартинки = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "ФОТО.ХранилищеКартинки",НомерСтроки);

как добиться что бы все ровно работало не пойму (((((
4 LivingStar
 
04.05.13
08:59
(2) я не храню в справочнике картинки, храню их в табличной части документа
5 чувак
 
04.05.13
09:15
" я не храню в справочнике картинки, храню их в табличной части документа"

не советую
6 kosts
 
04.05.13
09:20
(5) +1 Особенно удобно, если картинки еще где нибудь понадобятся...
7 kosts
 
04.05.13
09:21
(3) Сперва выясни где у тебя проблема - при записи или при открытии.
8 Wobland
 
04.05.13
09:32
(4) двести документов с одной картинкой размером в 1 Кбайт потребуют 200 Кбайт?
9 Wobland
 
04.05.13
09:32
(8) *с одной и той же картинкой
10 LivingStar
 
04.05.13
10:23
(5) это понятно, лень было заводить справочник... пока не ясно в чем проблеиа !!!
11 Wobland
 
04.05.13
10:34
всего 4 килорубля, и готовая cf у тебя
12 mistеr
 
04.05.13
10:55
(10) Отладчик пробовал?
13 LivingStar
 
04.05.13
10:56
(12) а что там в нем смотреть? вообще сейчас не пойму что как работает (((( надо мозги включать!!!
14 ДенисЧ
 
04.05.13
10:58
(13)  миссия невыполнима из за отсутствия предмета включения ...
15 ДенисЧ
 
04.05.13
10:59
(7)  где проблема - понятно...
16 LivingStar
 
04.05.13
11:01
(15)сейчас буду включаться
17 mistеr
 
04.05.13
11:06
(13) Есть ли картинки в ТЧ при открытии.
18 LivingStar
 
04.05.13
11:12
(17) в Тч поля:
Картинка          - строка неограничено
АдресКартинки     - строка неограничено
ХранилищеКартинки - ХранилищеЗначения
ИмяФайла          - строка неограничено

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

&НаСервере
Процедура УстановкаКартинки(НомерСтроки)
   АдресКартинки = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "ФОТО.ХранилищеКартинки",НомерСтроки);
КонецПроцедуры
|
запись картинки
|
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
  Для каждого Строка Из ТекущийОбъект.ФОТО Цикл
     Если ЭтоАдресВременногоХранилища(Строка.АдресКартинки) Тогда
        ДвоичныеДанные  = ПолучитьИзВременногоХранилища(Строка.АдресКартинки);
        //Строка.ХранилищеКартинки = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9));
        ТекущийОбъект.Фото[Строка.НомерСтроки-1].ХранилищеКартинки = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9));
     КонецЕсли;
  КонецЦикла;
КонецПроцедуры
19 LivingStar
 
04.05.13
11:13
(17) все есть при открытии, проблема в корректном отображении и выводе
20 LivingStar
 
04.05.13
11:15
(18+) На форме изображение - поле картинки, путь к данным адрес картинки
21 LivingStar
 
04.05.13
11:20
проблема тут
|
&НаКлиенте
Процедура ФОТОПриАктивизацииСтроки(Элемент)
   Если Объект.ФОТО.Количество() > 0 Тогда
       //УстановкаКартинки(Элемент.ТекущиеДанные.НомерСтроки-1);

       АдресКартинки = Элемент.ТекущиеДанные.Картинка;
   КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура УстановкаКартинки(НомерСтроки)
   АдресКартинки = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "ФОТО.ХранилищеКартинки",НомерСтроки);
КонецПроцедуры
|
в выводе изображения в поле, но я реально не догоняю как нужно, то так работает, то так....
22 LivingStar
 
04.05.13
11:21
Хотелось бы уже разобраться и делать как требуется, а не на угад шарить...
23 Wobland
 
04.05.13
11:27
(22) расскажи, зачем ты этим занимаешься?
24 LivingStar
 
04.05.13
11:28
(23) тестовое задание делаю, и не могу разобраться, подстегивает это, хочу закончить и выслать
25 Wobland
 
04.05.13
11:34
(24) на работу, значит, устраиваешься. у меня сложилось впечатление, что они руками кандидатов хотят поиметь программный продукт для себя. денег хоть за это обещали?
26 Wobland
 
04.05.13
11:35
и не АН Центральное ли это?
27 LivingStar
 
04.05.13
11:37
и?
28 LivingStar
 
04.05.13
11:40
(25) про деньги не знаю, они мне не нужны за это, на работу хочу, как то месяцев 5 назад такое приходило ко мне, я не стал делать.... и так их переделал дофига, смысла от них нет от этих тз.

позванила от туда секретутка, пригласила, прищел, выясняется какого то  эникейщика ждут, ну раз я, то программист 1с тоже нужен, тз говорят надо сделать, я говорю, нах тз, не делаю тз, ... ну вот взялся...
29 LivingStar
 
04.05.13
11:41
(25) вы лучше про Сибирь посмотрите, тз выслали, бился 4 дня, потом прихожу, там 2 бобика, начали грузить какой то хренью, так и до сих пор их вакансия висит, былы это, тоже около 5 месяцев назад
30 Wobland
 
04.05.13
12:17
(29) а что Сибирь? я не слежу за рынком труда, особенно в Нске
31 LivingStar
 
04.05.13
12:20
бред вообще, картинку загружаю появляется, закрываю открываю есть, закрываю открываю ещё раз, нету... че править не понятно вообще (((((
32 LivingStar
 
04.05.13
12:20
(30) уроды они, чмо
33 Wobland
 
04.05.13
12:21
(32) надеюсь, чмо - это не обращение? ;)
(31) я б глянул цф, да не вижу смысла приводить в чувство криво спроектированное решение
34 Wobland
 
04.05.13
12:23
плюс к прочему. получение объекта такого документа (например, для изменения реквизита шапки) приведёт в извлечению его всего из БД. а там картинков туева гора
35 LivingStar
 
04.05.13
14:28
вот процедура, все добавляется в табличную часть, курсор только не перемещается... при перемещении курсора по строкам картинка меняется в поле на форме, при том что процедура ПриАктивизацииСтроки не задана:
|
&НаКлиенте
Процедура Команда1(Команда)
   Перем ВыбранноеИмя,АдресВременногоХранилища;
   НоваяСтрока                        = Объект.Фото.Добавить();
   СтандартнаяОбработка               = Ложь;
   ДиалогОткрытияФайла                = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
   ДиалогОткрытияФайла.ПолноеИмяФайла = "";
   ДиалогОткрытияФайла.Заголовок      = "Выберите файл изображения";
   Если ДиалогОткрытияФайла.Выбрать() Тогда
       ИмяФайла             = ДиалогОткрытияФайла.ПолноеИмяФайла;
       //
       НоваяСтрока.ИмяФайла = ИмяФайла;
       НоваяСтрока.Картинка = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "ФОТО.ХранилищеКартинки",НоваяСтрока.НомерСтроки-1);
       //
       Если ПоместитьФайл(АдресВременногоХранилища, ИмяФайла, ВыбранноеИмя, Ложь, УникальныйИдентификатор) Тогда
           НоваяСтрока.АдресКартинки = АдресВременногоХранилища;
           АдресКартинки             = АдресВременногоХранилища;
       КонецЕсли;
       Модифицированность = Истина;
   КонецЕсли;
КонецПроцедуры
|
при записи, вот эти процедуры все рушат, с какой стати это может быть:
|
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
  Для каждого Строка Из ТекущийОбъект.ФОТО Цикл
     Если ЭтоАдресВременногоХранилища(Строка.АдресКартинки) Тогда
        ДвоичныеДанные  = ПолучитьИзВременногоХранилища(Строка.АдресКартинки);
        Строка.ХранилищеКартинки = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9));
        //ТекущийОбъект.Фото[Строка.НомерСтроки-1].ХранилищеКартинки = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9));
     КонецЕсли;
  КонецЦикла;
КонецПроцедуры
|
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
   Для каждого Строка Из ТекущийОбъект.ФОТО Цикл
       Если ЭтоАдресВременногоХранилища(Строка.АдресКартинки) Тогда
           УдалитьИзВременногоХранилища(Строка.АдресКартинки);
       КонецЕсли;    
   КонецЦикла;    
   АдресКартинки = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "ФОТО.ХранилищеКартинки",0);
КонецПроцедуры
|
36 delavar
 
06.05.13
09:06
Если актуально, могу прислать реализованное решение
37 Wobland
 
06.05.13
09:08
+(34) а у тебя веб-клиент с тонким каналом связи ;)
38 Лодырь
 
04.06.13
14:32
(35) Чем закончилось то? )
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший