|   |   | 
| 
 | Выгрузить табличный документ из хранилища значений | ☑ | ||
|---|---|---|---|---|
| 0
    
        marshalbratsk 22.12.16✎ 11:42 | 
        Есть отчёт с выводом в поле табличного документа.
 Создал справочник с реквизитами Код, Наим, Период, Отчёт(тип:ХранилищеЗначения) Создал процедуру, которая сохраняет инфу с поля табличного документа ТабДок = ЭлементыФормы.ПолеТабличногоДокумента; Хранилище = Новый ХранилищеЗначения(ТабДок); СправочникСсылка = Справочники.bzfСохраненныеОтчётыПоДебиторскойКредиторскойЗадолженности.НайтиПоРеквизиту("Период", НачалоМесяца(ДатаОстатков)); Если СправочникСсылка=Справочники.bzfСохраненныеОтчётыПоДебиторскойКредиторскойЗадолженности.ПустаяСсылка() Тогда //Если элемент пустой, тогда создаём новый элемент справочника, иначе изменяем существующий СправочникСоздатьЭлемент = Справочники.bzfСохраненныеОтчётыПоДебиторскойКредиторскойЗадолженности.СоздатьЭлемент(); СправочникСоздатьЭлемент.Период = НачалоМесяца(ДатаОстатков); СправочникСоздатьЭлемент.Отчёт = Хранилище; СправочникСоздатьЭлемент.Записать(); Иначе СправочникСсылка = СправочникСсылка.ПолучитьОбъект(); СправочникСсылка.Отчёт = Хранилище; СправочникСсылка.Записать(); КонецЕсли; Затем пытался создать процедуру, которая должна выводить данные из хранилища в ПолеТабличногоДокумента2 и тут у меня ерунда получается ТабДок = Новый ТабличныйДокумент; СправочникСсылка = Справочники.bzfСохраненныеОтчётыПоДебиторскойКредиторскойЗадолженности.НайтиПоРеквизиту("Период", НачалоМесяца(ДатаОстатков)); Если СправочникСсылка = Справочники.bzfСохраненныеОтчётыПоДебиторскойКредиторскойЗадолженности.ПустаяСсылка() Тогда Сообщить("Отчёт за данный период не существует!"); Иначе Хранилище = Новый ХранилищеЗначения(СправочникСсылка.Отчёт); ТабДок = Хранилище.Получить(); ЭлементыФормы.ПолеТабличногоДокумента1.Вывести(ТабДок); КонецЕсли; Ошибка: {Отчет.bzfОтчетПоДебиторскойКредиторскойЗадолженности.Форма.Отчет.Форма(694)}: Ошибка при вызове метода контекста (Вывести) ЭлементыФормы.ПолеТабличногоДокумента1.Вывести(ТабДок); по причине: Несоответствие типов (параметр номер '1') | |||
| 1
    
        Cool_Profi 22.12.16✎ 11:43 | 
        табдок = СправочникСсылка.Отчёт.Получиьт()     | |||
| 2
    
        marshalbratsk 22.12.16✎ 11:43 | 
        Выврдить данные из хранилища в ПолеТабличногоДокумента1
 *фикс | |||
| 3
    
        marshalbratsk 22.12.16✎ 11:45 | 
        (1) Пробовал, ругается
 {Отчет.bzfОтчетПоДебиторскойКредиторскойЗадолженности.Форма.Отчет.Форма(692)}: Ошибка при вызове метода контекста (Получить) ТабДок = СправочникСсылка.Отчёт.Получить(); по причине: Ошибка формата потока | |||
| 4
    
        FIXXXL 22.12.16✎ 11:46 | 
        Хранилище = Новый ХранилищеЗначения(СправочникСсылка.Отчёт);
 ТабДок = Хранилище.Получить(); а тут чего ты получишь из только что созданного пустого ХЗ вероятно - хз | |||
| 5
    
        Cool_Profi 22.12.16✎ 11:47 | 
        (3) Значит, у тебя там не хранилище значения.
 Отладчик возьми | |||
| 6
    
        Save_Vol 22.12.16✎ 11:51 | 
        СправочникСсылка.Отчёт.Получить()     | |||
| 7
    
        marshalbratsk 22.12.16✎ 11:52 | 
        (5) http://s8.hostingkartinok.com/uploads/images/2016/12/0361086b1ba3aaa0f43ff04905dea20c.png
 Говорит, что ХЗ (6) Пробовал, ругается - (3) | |||
| 8
    
        Save_Vol 22.12.16✎ 11:54 | 
        Проверь тогда,что вернул (6).Посмотри тип.     | |||
| 9
    
        marshalbratsk 22.12.16✎ 11:56 | ||||
| 10
    
        marshalbratsk 22.12.16✎ 11:58 | 
        Может при записи в справочник где косякнул?     | |||
| 11
    
        Save_Vol 22.12.16✎ 12:09 | 
        (10) Сериализуй объект сохранения для помещения в хранилище.     | |||
| 12
    
        marshalbratsk 22.12.16✎ 12:25 | 
        (11) Не сталкивался с таким, ща изучу матчасть и попробую.     | |||
| 13
    
        Мимохожий Однако 22.12.16✎ 13:25 | 
        Вот примерчик записи в хранилище значений табличного документа:
 ГотовыйТабличныйДокумент = Новый ХранилищеЗначения(Результат); где Результат - табличный документ | |||
| 14
    
        Мимохожий Однако 22.12.16✎ 13:25 | 
        А вот так читаю:
 ТабДок=ГотовыйТабличныйДокумент.Получить(); Если ТабДок<>Неопределено Тогда ТабДок.Показать(); Иначе Сообщить("Готовый Отчет отсутствует в хранилище"); КонецЕсли; | |||
| 15
    
        Мимохожий Однако 22.12.16✎ 13:26 | 
        (3) Скорее всего в хранилище помещаешь не табличный документ, а нечто другое     | |||
| 16
    
        h-sp 22.12.16✎ 15:01 | 
        (15)    ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;     | |||
| 17
    
        marshalbratsk 22.12.16✎ 18:56 | 
        (15) Помещаю 
 ТабДок = ЭлементыФормы.ПолеТабличногоДокумента; Хранилище = Новый ХранилищеЗначения(ТабДок); Как тут можно что другое поместить? | |||
| 18
    
        marshalbratsk 22.12.16✎ 19:24 | 
        получилось успешно получить xml файл из хранилища данных, ток есть какие варианты как xml перевести в таб.док?     | |||
| 19
    
        Мимохожий Однако 22.12.16✎ 20:55 | ||||
| 20
    
        marshalbratsk 23.12.16✎ 04:03 | 
        Неправильно записывал файл в хранилище значений и неправильно его выгружал
 Вот правильный пример, откопанный на мисте Процедура СохранитьВХранилищеНажатие(Элемент) ТабДок=Новый ТабличныйДокумент; ТабДок.Вывести(ЭлементыФормы.ПолеТабличногоДокумента1); Хранилище=Новый ХранилищеЗначения(ТабДок); Записать(); КонецПроцедуры Процедура ВосстановитьИзХранилищаНажатие(Элемент) ТабДок=Хранилище.Получить(); Если ТабДок<>Неопределено Тогда ЭлементыФормы.ПолеТабличногоДокумента1.Вывести(ТабДок); КонецЕсли; КонецПроцедуры | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |