![]() |
![]() |
![]() |
|
Выгрузка двоичных данных в табличный документ | ☑ | ||
---|---|---|---|---|
0
TanyaTumchenko
23.09.20
✎
10:32
|
Добрый день, помогите пожалуйста с вопросом. файл макета табличного документа, загружаю его в справочник методом :
&НаКлиенте Процедура ЗагрузитьМакет(Команда) длгВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); длгВыборФайла.Заголовок = "Выберите табличный документ..."; длгВыборФайла.Фильтр = "Табличный документ (*.mxl)|*.mxl"; длгВыборФайла.Расширение = "mxl"; длгВыборФайла.ПроверятьСуществованиеФайла = Истина; Если Не длгВыборФайла.Выбрать() Тогда Возврат; КонецЕсли; ДвоичныеДанные = Новый ДвоичныеДанные(длгВыборФайла.ПолноеИмяФайла); Объект.ДвоичныеДанные=ДвоичныеДанные; Адрес = ПоместитьВоВременноеХранилище(ДвоичныеДанные); ПрочитатьНаСервере(Адрес); КонецПроцедуры Процедура ПрочитатьНаСервере(Адрес) ФайлПриемник = ПолучитьИмяВременногоФайла("mxl"); ДанныеХранилища = ПолучитьИзВременногоХранилища(Адрес); ДанныеХранилища.Записать(ФайлПриемник); АдресКартинки = Новый ТабличныйДокумент; АдресКартинки.Прочитать(ФайлПриемник); ЭлементСправочника = РеквизитФормыВЗначение("Объект"); ЭлементСправочника.Макет = Новый ХранилищеЗначения(АдресКартинки); ЭлементСправочника.Записать(); КонецПроцедуры Макет загружается и тут же отображается красиво на форме в реквизите АдресКартинки (тип табличный документ). Далее я записываю элемент справочника и при открытии не могу добитсья отображения табличного документа, уже все перепробовала, подскажите пожалуйста как из двоичных данных получить обратно табличный документ и отобразить его на форме. Следующий способ у меня не работает, в Адресе строка с двоичными данными. ЭлементСправочника = РеквизитФормыВЗначение("Объект"); ТабДок = ЭлементСправочника.Макет.Получить(); АдресКартинки = ТабДок; |
|||
1
Ёпрст
гуру
23.09.20
✎
10:54
|
(0) в ПриСозданииНаСервере клади в свой реквизит на форме свой макет из хранилища
|
|||
2
TanyaTumchenko
23.09.20
✎
11:08
|
(1) &НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ДвоичныеДанные = Объект.ДвоичныеДанные; Если ЗначениеЗаполнено(ДвоичныеДанные) Тогда ТабДок = Новый ТабличныйДокумент; ЭлементСправочника = РеквизитФормыВЗначение("Объект"); ТабДок = ЭлементСправочника.Макет.Получить(); АдресКартинки = ТабДок КонецЕсли; КонецПроцедуры Сделала выводится пустой, может я не правильно помещаю? Что-то я не то делаю, а что не могу понять.. уже второй день сижу |
|||
3
RomanYS
23.09.20
✎
11:13
|
(2) В хранилище вы положили файл(mxl), значит и получите вы оттуда файл.
У ТабличныйДокумент есть метод Прочитать для загрузки из файла. |
|||
4
TanyaTumchenko
23.09.20
✎
11:40
|
(3) Так я так и делаю :
АдресКартинки.Прочитать(ФайлПриемник); ЭлементСправочника = РеквизитФормыВЗначение("Объект"); ЭлементСправочника.Макет = Новый ХранилищеЗначения(АдресКартинки); |
|||
5
RomanYS
23.09.20
✎
11:45
|
(4)
но (2) у тебя ТабДок = ЭлементСправочника.Макет.Получить();//ТабличныйДокумент = ДвоичныеДанные; |
|||
6
TanyaTumchenko
23.09.20
✎
11:51
|
(5) ЭлементСправочника.Макет.Прочитать(); - Ошибка при методе прочитать
|
|||
7
TanyaTumchenko
23.09.20
✎
15:24
|
Заработало вот так, может кому-то пригодится
ТабДок = ЭлементСправочника.Макет.Получить(); АдресКартинки = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "Макет"); АдресКартинки = ТабДок; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |