Имя: Пароль:
1C
1С v8
проблемы с изображением и регистром доп.информации
,
0 asder117
 
11.04.13
08:52
Доброго времени суток.
имею такой код:
ДанныеСтрокой=глСоединениеСЦБ.Base64Строка(форма.Ссылка.ОсновноеИзображение.хранилище.get().ПолучитьДвоичныеДанные());
   
   Двоичное=Base64Значение(ДанныеСтрокой);                        
   КартинкаТут=Новый Картинка(Двоичное);    
   КартинкаФ = Новый ХранилищеЗначения(КартинкаТут);
   //ЭтаФорма.ЭлементыФормы.ОсновноеИзображение=КартинкаФ;
   ЭтаФорма.ЭлементыФормы.ОсновноеИзображение.Картинка=КартинкаТут;
   ЭтотОбъект.ОсновноеИзображение= Новый ХранилищеЗначения(Двоичное, Новый СжатиеДанных(9));
   

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

Возникает проблема. Изображение на форме появляется, при попытке записи в справочник не записывается и после закрытия формы элемента исчезает. Как решить, что не правильно делаю
1 H A D G E H O G s
 
11.04.13
08:54
У тебя новые элементы создаются.
2 cw014
 
11.04.13
08:54
Попробуй вместо:
НовыйОбъект.Хранилище = Новый ХранилищеЗначения(Двоичное, Новый СжатиеДанных);

НовыйОбъект.Хранилище = Новый ХранилищеЗначения(КартинкаТут);
3 H A D G E H O G s
 
11.04.13
08:54
В них и ищи
4 asder117
 
11.04.13
09:08
(3) Рд Вас видеть на форуме. В смысле элементы? В регистр всеравно не пишет и изображение улетучивается. Как сделать чтобы оно осталось в форме
5 cw014
 
11.04.13
09:13
Стоп
6 cw014
 
11.04.13
09:13
ОсновноеИзображение у объекта какой тип имеет?
7 cw014
 
11.04.13
09:14
И при чем тут регистр доп информации? У тебя вообще в коде регистра нет
8 asder117
 
11.04.13
09:16
(2) не выходит все также. не регистр а справочник доп инфы.
основноеизображение - картинка. Я его получаю по ком через двоичные данные и отбражаю на форме. после этого я его хочу записать чтобы оно осталось на форме. и никак
9 asder117
 
11.04.13
09:16
(6) а из той базы как я понял вытягиваю ком-объектом
10 cw014
 
11.04.13
09:17
(8) "основноеизображение - картинка"
Тип реквизита справочника какой в пофигураторе?
11 asder117
 
11.04.13
09:20
(10) СправочникСсылка.ХранилищеДополнительнойИнформации
12 cw014
 
11.04.13
09:29
(11) Тогда наструя ты делаешь это?
ЭтотОбъект.ОсновноеИзображение= Новый ХранилищеЗначения(Двоичное, Новый СжатиеДанных(9));
13 asder117
 
11.04.13
09:38
(12) в смысле. попонятней можно. Просто 10 лет не занимался программированием толком (работал в системе МВД). И как лучше сочинить
14 cw014
 
11.04.13
09:40
(13) Ну млин, тут и трехлетнему понятно.
В реквизит с типом справочник ты пихаешь хранилище. Как ты думаешь, что там будет?
15 asder117
 
11.04.13
09:44
(14) Млин начал вхезжать получается енту строку ввобще убрать надо? Как создать долбаный элемент справочника?
16 cw014
 
11.04.13
09:55
(15)
1) Похоже на элемент справочника "Номенклатура". Если так - в хранилище дополнительной информации в хранилище помещается не двоичные данные а сам объект картинка
2) ЭтаФорма и ЭтотОбъект не используют даже дети (как в твоем контексте)... Хотя некоторые типовые релизы славятся таким кодом, возьмем хотя бы КА
3) ЭтотОбъект.ОсновноеИзображение= Новый ХранилищеЗначения(Двоичное, Новый СжатиеДанных(9)); помещаешь не до создания элемента справочника "Хранилище дополнительной информации", а после него...
4) ЭтотОбъект.ОсновноеИзображение= Новый ХранилищеЗначения(Двоичное, Новый СжатиеДанных(9));
меняешь на
ОсновноеИзображение = НовыйОбъет.Ссылка;
5) За все про все с тебя 500 рублев )))
17 asder117
 
11.04.13
09:58
(16) решаемый вопрос.
18 asder117
 
11.04.13
10:01
ЭтотОбъект.ОсновноеИзображение= Новый ХранилищеЗначения(Двоичное, Новый СжатиеДанных(9)); я не понял это оставить чтоли?
19 cw014
 
11.04.13
10:16
(18) Повторюсь:

3) ЭтотОбъект.ОсновноеИзображение= Новый ХранилищеЗначения(Двоичное, Новый СжатиеДанных(9)); помещаешь не до создания элемента справочника "Хранилище дополнительной информации", а после него...
4) ЭтотОбъект.ОсновноеИзображение= Новый ХранилищеЗначения(Двоичное, Новый СжатиеДанных(9));
меняешь на
ОсновноеИзображение = НовыйОбъет.Ссылка;
20 cw014
 
11.04.13
10:16
Мл*ть, вот так делай:

ДанныеСтрокой=глСоединениеСЦБ.Base64Строка(форма.Ссылка.ОсновноеИзображение.хранилище.get().ПолучитьДвоичныеДанные());
   
   Двоичное=Base64Значение(ДанныеСтрокой);                        
   КартинкаТут=Новый Картинка(Двоичное);    
   КартинкаФ = Новый ХранилищеЗначения(КартинкаТут);
   //ЭтаФорма.ЭлементыФормы.ОсновноеИзображение=КартинкаФ;

   ЭлементыФормы.ОсновноеИзображение.Картинка=КартинкаТут;
   

 

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


ОсновноеИзображение= НовыйОбъект.Ссылка;
21 cw014
 
11.04.13
10:26
Если не поможет, заменяй строку в выше приведенном тексте:
НовыйОбъект.Хранилище = Новый ХранилищеЗначения(Двоичное, Новый СжатиеДанных);

на

НовыйОбъект.Хранилище = КартинкаФ;
22 asder117
 
11.04.13
10:27
(20) всеравно не пишет да и шут с ним. пущай новые фото лепят
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший