Имя: Пароль:
1C
1С v8
Сохранение данных из полеТабличногоДокумента
0 picom
 
12.09.11
07:14
Есть отчет, который генерирует новый документ
В отчете 40 колонок, а в документе, в т.ч. всего 5
Остальное нафиг не нужно, это расчеты и формулы, но
...
Решили проверить что там такое насчиталось в документе, а поезд ушел и отчет уже не сформировать с теми данными.
...
Вопрос, можно ли как-то то что получилось в отчете (40 колонок) засунуть в какой-нибудь один суперреквизит в документе и при желании его прокручивать (просматривать)?
...
8.2 УТ 10.3
1 Рэйв
 
12.09.11
07:45
ЗначениеВСтрокуВнутр(ТабДок)
?
2 picom
 
12.09.11
07:46
ВсеТабличноеПолеСразу
получится загнать в (1) ?
3 Рэйв
 
12.09.11
07:49
(2)Ну если там не десятьтыщмильенов строк, то имхо вполне. Только естественно реквизит делай строковый и неорганиченной длины.
Друогой вопрос что все это хозяйство будет храниться в базе...
4 picom
 
12.09.11
07:51
Хм, интересно
Еще вопросик
у ТП естественно есть макет, поэтому все цветастое
(1) даже настройки формата колонок сможет сохранить?
5 Рэйв
 
12.09.11
07:53
(4)Оно тупо берет объект и сохраняет как есть. Я так даже Таблицы значений со ссылками сохранял в файл одной строкой и потом поднимал в идентичной базе через ЗначениеИзСтрокиВнутр()

Так что должно все как есть сохраниться
6 picom
 
12.09.11
08:20
Чего-то не получается загнать туда данные из ТП
Есть примерчик?
Делаю так
НовыйДок.ХранилищеОтчета = ЗначениеВСтрокуВнутр(ЭлементыФормы.ТП1)
...
При чтении говорит что ошибка потока(
7 Рэйв
 
12.09.11
08:22
(6)Ты пытаешься элемент формы запихать.А тебе нужен ТабличныйДокумент.
Чуешь разницу?
8 picom
 
12.09.11
08:27
(7) Какой еще табличный документ?
9 Cube
 
12.09.11
08:30
ХранилищеОтчета - тип значения какой?
10 Рэйв
 
12.09.11
08:30
(9)Ты ж отчет хочешь сохранить или нет?
11 Cube
 
12.09.11
08:31
(10) Нет, не хочу :)
12 picom
 
12.09.11
08:32
(9) Строка неограниченная переменная длина
(10) Ну да, он выводится посторчно
13 Рэйв
 
12.09.11
08:34
(12)В табличную часть что ли выводится? или в Табличный документ?
14 picom
 
12.09.11
08:41
(13) в поле табличного документа
15 Рэйв
 
12.09.11
08:56
(14)ТП- это элемент формы. Само по себе оно бесполезно и ничего не показывает. Оно должно быть связано с реквизитом типа ТабличныйДокумент. Вот этот реквизит и сохраня
16 Рэйв
 
12.09.11
08:56
*сохраняй
17 picom
 
12.09.11
10:44
(15) Чего-то я не догоняю
Я получаю макет, вывожу построчно, заполняя параметры
Какой еще ТД ?
18 Рэйв
 
12.09.11
10:47
(17)Код покажи где ты заполняешь и выводишь
19 picom
 
12.09.11
10:52
ДокументРезультат = ЭлементыФормы.ПолеТабличногоДокумента1;
документрезультат.Очистить();
МакетОтчета = ПолучитьМакет("ПолеМакСлужебный");
ЗаголовокОтчета = МакетОтчета.ПолучитьОбласть("ШАПКА");
ЗаголовокОтчета.Параметры.ИнформацияПоРасчетамЗаголовок = "Доп. информация по прогнозам"+Символы.ПС+"с "+Формат(ДатаНачалаПрогноза,"ДЛФ=Д")  +" по        ДокументРезультат.Вывести(ЗаголовокОтчета);
20 Рэйв
 
12.09.11
10:56
ЗначениеВСтрокуВнутр(ДокументРезультат)

Тоже ругается?
21 picom
 
12.09.11
11:16
(20) ругается не при ВСтроку, а из строки (
22 Шапокляк
 
12.09.11
11:19
(21) ТабличныйДокумент=ЗначениеИзСтроки(...
ТД=ЭлементыФормы.ТвоеПолеТабличногоДокумента;
ТД.Вывести(ТабличныйДокумент)

тоже обругает?
23 picom
 
12.09.11
11:32
(22) Да
если просмотреть что в моем реквизите строки записалось, через отладчик - видно что там строка как UID со ссылкой (
коротенький на 1 строку
24 picom
 
12.09.11
12:41
fg
25 picom
 
12.09.11
13:16
up
а файл можно законсервировать в реквизит?
26 Шапокляк
 
12.09.11
14:26
(24) Просили же код показать как ты ЗначениеВСтроку и ЗначениеИзСтроки используешь...
Законсервировать :). Можно в двоичные данные преобразовать и сохранить в Хранилище значений, например, и создать дополнительный реквизит документа со ссылкой на хранилище.
27 picom
 
13.09.11
05:57
(26) вот так (23)
а обратно так
   
ТабДок = ЗначениеИзСтрокиВнутр(ХранилищеОтчета) ;
ТД = ЭлементыФормы.ПолеТабличногоДокумента1 ;
ТД.Вывести(ТабДок) ;
28 picom
 
13.09.11
10:52
up1
29 Шапокляк
 
13.09.11
13:24
(27) Иопперный театр! Ты можешь нормально выложить код того, как ты используешь ЗначениеВСтрокуВнутр? Что ты туда пишешь и каким образом?