Имя: Пароль:
1C
1С v8
Конвертация. Номенклатура, ХранилищеДополнительнойИнформации
0 Хранитель Совести
 
21.06.12
11:00
Здравствуйте!
Это мое первое сообщение на форуме, поэтому не судите строго, если случайно попал не в ту ветку или еще чего нибудь не так..
Суть вопроса: при переносе данных из самописной конфигурации в УПП (1.3.26.1) с помощью Конвертации Данных (2.1.5.1) некорректно переносится справочник Номенклатура.
Элемент справочника создается, НО при попытке его открыть выскакивает сообщение "Ошибка при установке значения атрибута контекста (Картинка)". Указана также причина - Несоответствие типов.
В Процедуре ПередОткрытием() формы элемента справочника, в первой строке, переменной должно присваиваться значение типа Картинка, а там - ДвоичныеДанные.
Вот эта строка:
мТекущееОсновноеИзображение = ОсновноеИзображение.Хранилище.Получить();
В обеих конфигурациях справочники ХранилищеДополнительнойИнформации идентичны. В ПКС при конвертации всем свойствам и реквизитам автоматически проставляются корректные соответствия.

Помогите пожалуйста разобраться, что не так?
Если информации не достаточно, спрашивайте.
Заранее спасибо)
1 andrewks
 
21.06.12
11:25
сохрани содержимое хранилища в файл, вместе посмотрим, чё там внутри
2 Хранитель Совести
 
21.06.12
11:54
Нашел в чем несоответствие.
В конфигурации-источнике, перед присвоением реквизиту ОсновноеИзображение значения типа Картинка, из Хранилища вытаскиваются двоичные данные и конвертируются в картинку. Вот фрагмент этого кода:

Картинка = Новый Картинка(Объект.ОсновноеИзображение.Хранилище.Получить());        
ОсновноеИзображение = ПоместитьВоВременноеХранилище(Картинка, ЭтаФорма.УникальныйИдентификатор);
3 Хранитель Совести
 
21.06.12
11:58
А в конфигурации-приемнике в Хранилище хранятся данные типа картинка.
Поэтому предполагается, что метод Получить() должен возвращать картинку.

Вопрос следующий: как прописать ПКО Хранилища доп. информации так, чтобы в приемнике все было как надо?

ЗЫ: сообщения на форуме можно редактировать?
4 Хранитель Совести
 
21.06.12
12:50
Есть решение!!!
В ПКО справочника Хранилище Дополнительной Информации в обработчике события "После загрузки" написал следующее

ДвДанные = Объект.Хранилище.Получить();
Картинка = Новый Картинка(ДвДанные);
Объект.Хранилище = Новый ХранилищеЗначения(Картинка);

Проверил в УПП (это приемник), все корректно. ФормаЭлемента открывается, картинки отображаются))
Спасибо, andrewks, что откликнулся)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший