|
Хранение таблицы в ХранилищеЗначений | ☑ | ||
---|---|---|---|---|
0
t_vladimir
20.06.05
✎
13:47
|
Задача такова:
Определенный отчет периодически надо сохранять в виде таблицы им сформированной. При этом архивная копия должна иметь автонумерацию и содержать в себе нек-рые реквизиты отчета. Ну и есс-но должен вестись журнал таких архивов. Сделано следующее: 1. Создан Отчет, имеющий в форме реквизит ПолеТабличногоДокумента, в которое попадает результат отчета. 2. Создан ДокументАрхивОтчета, имеющий реквизит ХранилищеОтчета, в котором предпологается хранить полученный отчет. В отчете прописаны алгоритм сохранения архива: Документ = Документы.АрхивОтчета.СоздатьДокумент(); .... ХранилищеТаблицы = Новый ХранилищеЗначения (ЭлементыФормы.ПолеТабличногоДокумента); Документ.ХранилищеОтчета = ХранилищеТаблицы; Документ.Записать(); вроде проходит без ругани. Там же создан алгоритм просмотра содержимого архива: ДокСсылка = Документы.АрхивОтчета.НайтиПоНомеру(НомерАрхива); Документ = ДокСсылка.ПолучитьОбъект(); ТабДок = ЭлементыФормы.ПолеТабличногоДокумента; ТабДок = Документ.ХранилищеОтчета.Получить(); на это выдается сообщение "Ошибка формата потока" Помогите пожалуйста разобраться. |
|||
1
vvv29
20.06.05
✎
13:51
|
Сервак 2х головый?
А зачем так изгаляться? |
|||
2
t_vladimir
20.06.05
✎
13:55
|
(1)
пока все на локалке делаю а как еще сделать архив отчетов с автонумерацией и возможностью поиска по реквизитам? |
|||
3
vvv29
20.06.05
✎
13:58
|
(2)А зачем делать такой архив?
|
|||
4
t_vladimir
20.06.05
✎
14:03
|
(3) ТЗ такое :)
ну ведут они бумажный журнал таких отчетов причем на каждом подпись руководителя в 7.7 я реализовывал это как папку файлов с хитрыми именами, которые открывались из архивных документов в 8.0 вроде появилась возможность хранить эти таблицы прямо в БД тока чего то не фурычит :( |
|||
5
Евгений
20.06.05
✎
14:45
|
//ТабДок = Документ.ХранилищеОтчета.Получить();
табДок.Вывести(Документ.ХранилищеОтчета.Получить()); Кстати, не проверял, но, по идее, все это должно работать и со ссылкой. Получать объект не надо. И я бы сделал на базе спавочника, хотя сие - на любителя. |
|||
6
t_vladimir
20.06.05
✎
15:00
|
(5)
не работает :( с тем же сообщением о потоке такое впечатление, что проблемма с преобразованием данных из Хранилища к табличному типу вот только как это обойти пока не найду не в форуме не в ИТС справочник не подойдет, т.к. используется единый нумератор с другими типами документов похоже, что опять придется таблицы внешними файлами хранить :( |
|||
7
vvv29
20.06.05
✎
15:07
|
Имхо проблема в мозгах тех кто составлял ТЗ, отчет можно и потом получить, в любой момент за любой период, если нет, то нужно руки править, и правами разобраться тоже можно.
|
|||
8
Asmody
20.06.05
✎
15:15
|
вот такой код работает:
Процедура СохранитьВХранилищеНажатие(Элемент) ТабДок=Новый ТабличныйДокумент; ТабДок.Вывести(ЭлементыФормы.ПолеТабличногоДокумента1); Хранилище=Новый ХранилищеЗначения(ТабДок); Записать(); КонецПроцедуры Процедура ВосстановитьИзХранилищаНажатие(Элемент) ТабДок=Хранилище.Получить(); Если ТабДок<>Неопределено Тогда ЭлементыФормы.ПолеТабличногоДокумента1.Вывести(ТабДок); КонецЕсли; КонецПроцедуры Хранилище - реквизит (справочника в моем случае) |
|||
9
Евгений
20.06.05
✎
15:18
|
Извини. Не внимательно посмотрел. Код записи тоже надо поменять
Документ = Документы.АрхивОтчета.СоздатьДокумент(); .... таб=Новый ТабличныйДокумент(); таб.Вывести(ЭлементыФормы.ПолеТабличногоДокумента); ХранилищеТаблицы = Новый ХранилищеЗначения(таб); Документ.ХранилищеОтчета = ХранилищеТаблицы; Документ.Записать(); |
|||
10
t_vladimir
20.06.05
✎
15:31
|
(9) заработала!
спасибо! теперь посижу подумаю почему сам не допер :) |
|||
11
t_vladimir
20.06.05
✎
15:31
|
(8) тож спасибо :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |