Имя: Пароль:
1C
1С v8
Сохранить полученную с камеры картинку в ХранилищеЗначения
, ,
0 Darhon
 
20.09.14
21:00
Доброй ночи :) Столкнулся со следующей проблемой:

В Мобильном приложении получаю с камеры фото. Помещаю его в форму

Процедура ПолучитьФото(Команда)
        
#Если МобильноеПриложениеКлиент Тогда
    Если СредстваМультимедиа.ПоддерживаетсяФотоснимок()     Тогда
        ДанныеКартинки = СредстваМультимедиа.СделатьФотоснимок();
        Фото = ПоместитьВоВременноеХранилище(ДанныеКартинки.ПолучитьДвоичныеДанные());
    Иначе    
         Сообщить(НСтр("ru = 'Съемка фото не поддерживается.'", "ru"));
    КонецЕсли;
#КонецЕсли
КонецПроцедуры

На форме в реквизите фото (строковый с видом "Поле картинки") оно появляется. затем по кнопке записать:

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

При открытии формы считываю:

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

Никаких ошибок не пишет, но вместо картинки в поле ФОТО крест (( Где я не так что сделал?
1 acanta
 
20.09.14
21:58
фотографировать 1с ка уже научилась, скоро будет ГладитьШнурки() и ВключитьМультиварку()
2 Darhon
 
20.09.14
22:06
(2) Юмор оценил )) жаль что не по теме....
3 Torquader
 
20.09.14
22:07
(1) Это тоже не такие уж сложные занятия.
Вот когда она научится сама писать код, нужный клиенту, вот тогда кто-то окажется без работы.
4 Darhon
 
20.09.14
22:08
(3) Да это не моя основная работа ))))
5 acanta
 
20.09.14
22:10
фотоснимок не читается или не сохраняется?
6 Darhon
 
20.09.14
22:10
И все же что по поводу ХранилищаЗначений? Судя по кресту понятно. что он считает картинку битой. В это месте он получает строку Фото=ПолучитьНавигационнуюСсылку(ТекущийОбъект.Ссылка, "ДанныеКартинки"); Так и должно быть?
7 Darhon
 
20.09.14
22:11
(5) Неизвестно...если подскажешь как проверить буду признателен. В конечном итоге он не читается правильно...а что он пишет в ХранилищеПри сохранении не известно :(
8 acanta
 
20.09.14
22:15
так надо посмотреть что в хранилище и
можно ли подсунуть точно читаемую картинку
сорри, плаваю, флудю.
9 Torquader
 
20.09.14
22:19
Мы пишем в хранилище данные (байты) картинки, а потом получаем из них строку - и что мы хотим увидеть, кроме фиги ?
10 EvgeniuXP
 
20.09.14
22:21
(2) смотри флеш-моб, там было.
11 EvgeniuXP
 
20.09.14
22:22
хорошо крест и гроба там нет :)
12 EvgeniuXP
 
20.09.14
22:24
13 acanta
 
20.09.14
22:25
а может это каталог ритуальных услуг и крест в навигационной ссылке - это нормально?
14 EvgeniuXP
 
20.09.14
22:25
курсы-по-1с.рф/articles/%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B8-%D0%BF%D0%BE-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D0%B5-01-%D1%84%D0%B0%D0%B9%D0%BB%D1%8B-%D0%B2-%D1%82%D0%B0%D0%BA%D1%81%D0%B8/
15 EvgeniuXP
 
20.09.14
22:26
третья попытка:
хуттп://курсы-по-1с.рф/articles/статьи-по-платформе-01-файлы-в-такси/
16 Darhon
 
20.09.14
22:29
(12) по этой статье и делал....не работает (
17 Darhon
 
20.09.14
22:33
(9) Вот....а почему мы получаем (я получаю ))) из него Строку?? Строка это
e1cib/tempstorage/46c290e5-d812-4e63-9793-f4a0c7f87ce8
18 Darhon
 
20.09.14
22:35
Сорри не оттуда скопировал: вот строка
e1cib/data/Справочник.Товары.ДанныеКартинки?ref=aa5ebca44d95b6b305938487d2914cc6
19 acanta
 
20.09.14
22:39
а какой модели телефон нужен чтоб сфотать и в 1с записалось?
20 EvgeniuXP
 
20.09.14
22:40
(19) вообще то там главное сфотать - записать уже запишется никуда не денется.
21 EvgeniuXP
 
20.09.14
22:42
(19) ставь, проверяй, во всяком случае пипки держат, LG G2 тоже, больше проблем будет с GPS-ом - где половина китайского может отвалиться.
22 Darhon
 
20.09.14
22:45
В общем ТекущийОбъект.ДанныеКартинки.Получить() возвращает туже строку (то есть путь к данным а не сами данные) а как записать в ТекущийОбъект.ДанныеКартинки то есть в ХЗ сами данные?
23 Torquader
 
20.09.14
22:49
Ну ты же два раза его помещал во временное хранилище - тогда два раза и доставай ?
P.S. любите вы матрёшку сделать.
24 acanta
 
20.09.14
22:49
ХЗ это хранилище значения? кнопочку загрузить файл было где-то, можно наверное предопределенный элемент сделать и залить через конфигуратор?
25 Torquader
 
20.09.14
22:54
Фото = ПоместитьВоВременноеХранилище(ДанныеКартинки.ПолучитьДвоичныеДанные());

ФотоФайл=ПоместитьВоВременноеХранилище(Фото);

ДвДанные=ПолучитьИзВременногоХранилища(ФотоФайл);

ТекущийОбъект.ДанныеКартинки = Новый ХранилищеЗначения(ДвДанные, Новый СжатиеДанных(9));

Мне кажется, что ДвДанные - это ПоместитьВоВременноеХранилище(ДанныеКартинки.ПолучитьДвоичныеДанные())
26 Darhon
 
20.09.14
23:23
Ухххх....я уже запутался )))
27 acanta
 
20.09.14
23:25
http://1c-uroki.ru/articles/pokaz_kartinok_v_spravochnike_1C_8.2
вариант для 8.2 (пробую)
28 Darhon
 
20.09.14
23:48
(27) на пк заработало....проверю на смарте сейчас )) все равно не понятно почему не работал сабж)
29 acanta
 
20.09.14
23:55
А у меня нет

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

если пишу просто ДанныеКартинки = ...
не ругается, но и изображения тоже нет
30 acanta
 
21.09.14
00:08
заработало, ТС спасибо за компанию
31 acanta
 
21.09.14
00:09
почему-то не хочет хранить данныеКартинки в справочнике, в атрибутах не отражается, для записи не доступно.
32 Torquader
 
21.09.14
00:11
(31) Нужно хранилище значения (то бишь BLOB-поле) делать.
33 acanta
 
21.09.14
00:12
я делаю два поля имя (строка) и данныекартинки(хранилище значения)
по точке Объект. открывается список реквизитов и там только имя
34 acanta
 
21.09.14
00:13
пришлось делать буквально как в мануале, с отдельным справочником файлы - тогда работает
35 hhhh
 
21.09.14
00:22
в ссылку нельзя ничего записать. А вы пишете в Объект.Ссылка.
36 acanta
 
21.09.14
00:26
а как надо?
37 acanta
 
21.09.14
00:27
ТекущийОбъект.ДанныеКартинки..
38 hhhh
 
21.09.14
00:32
39 acanta
 
21.09.14
00:46
у меня обычная, не мобильная. крестов нет, картинка записанная в справочник нормально видна
рисую тут же кнопку добавить картинку и пытаюсь всунуть файл в реквизит типа хранилищезначения этого, открытого элемента.
пишет
{Справочник.Файлы.Форма.ФормаЭлемента.Форма(4)}: Поле объекта не обнаружено (Файл)
    Объект.Файл = Новый ХранилищеЗначения(ПолучитьИ
40 hhhh
 
21.09.14
07:39
(39) Ну. Ошибка ведь другая. Нет такого поля "Файл". При чем здесь хранилища и картинки? Что вы нас путаете?
41 Нооф-Нооф
 
21.09.14
08:23
42 Нооф-Нооф
 
21.09.14
08:24
в конце ссылка