|
Одним движением выгрузить ТЗ в ТабличныйДокумент | ☑ | ||
---|---|---|---|---|
0
igel1969
26.04.16
✎
12:24
|
1С 8.2, УТ 103.
Здравствуйте. Есть ТЗ, в которой около 5000 строк. Для каждой строки я делаю: ОбластьТабл.Параметр.Наименование = Стр.Наименование.... ну и так три параметра. ТабДок.Вывести(ОбластьТаб). Для 5000 строк это занимает около 40 секунд. Не очень красиво. А нет ли возможности выгрузить целиком всю ТЗ в ТабличыйДокумент? |
|||
1
Тролль главный
26.04.16
✎
12:25
|
чето долго
|
|||
2
ptiz
26.04.16
✎
12:26
|
(0) Заменить значения ссылочного типа на примитивные, и будет быстро.
|
|||
3
Бубка Гоп
26.04.16
✎
12:30
|
(0) 40 сек? Это что же ты там такого накодил то?
|
|||
4
Рэйв
26.04.16
✎
12:31
|
(0)гдето давно встречал такой вариант.
Не знаю правда насколько он сейчас работоспособен. //--- Построитель = Новый ПостроительОтчета; Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(РезультатТЗ); Построитель.МакетОформления = ПолучитьМакетОформления(СтандартноеОформление.Асфальт); Построитель.Выполнить(); Построитель.ВыводитьЗаголовокОтчета = Истина; Построитель.ТекстЗаголовка = "Данные таблицы значений"; Для каждого Колонка Из Построитель.ВыбранныеПоля Цикл Колонка.Представление = РезультатТЗ.Колонки[Колонка.Имя].Заголовок; КонецЦикла; МакетТД = Новый ТабличныйДокумент; Построитель.Вывести(МакетТД); ОбластьТД = МакетТД.Область(); ОбластьТД.ШиринаКолонки = 20; МакетТД.ТолькоПросмотр = Истина; МакетТД.ФиксацияСверху = 4; МакетТД.ОтображатьЗаголовки = Истина; МакетТД.Показать(); |
|||
5
igel1969
26.04.16
✎
12:31
|
(2) ну в параметры уже примитивные заносятся, а в ТЗ ссылочные хранятся. это имеет значение?
т.е.: Для каждого Стр из Контрагенты Цикл ОбластьТабл.Параметры.Код = Стр.Контрагент.Код; ОбластьТабл.Параметры.Наименование = Стр.Контрагент.Наименование; ОбластьТабл.Параметры.Адрес = Стр.Адрес; ТабДок.Вывести(ОбластьТабл); ЭлементыФормы.Индикатор1.Значение = ЭлементыФормы.Индикатор1.Значение + 1; КонецЦикла; |
|||
6
Тролль главный
26.04.16
✎
12:32
|
(5) потому что через точку
|
|||
7
Тролль главный
26.04.16
✎
12:32
|
используй запрос
|
|||
8
Бубка Гоп
26.04.16
✎
12:33
|
(5) а, теперь понятно почему 40 сек.
|
|||
9
Бубка Гоп
26.04.16
✎
12:34
|
(8) + в свое время за такое по ручкам били...
|
|||
10
Timon1405
26.04.16
✎
12:35
|
(5) добавить в ТЗ внутреннее соединение со справочником контрагентов, вытащить код и наименование, заполнять ими, а не через точку
|
|||
11
igel1969
26.04.16
✎
12:37
|
(2) (7) да, в запросе стал сразу выбирать код и наименование, в ТЗ тоже помещать только их (без ссылки) и стало все работать 5 секунд. тоже не моментально, но уже пойдет. спасибо
|
|||
12
Бубка Гоп
26.04.16
✎
12:39
|
(11) Замер производительности сделай, посмотри где время теряешь. Небось еще где то начудил
|
|||
13
hhhh
26.04.16
✎
12:42
|
(12) ну здесь похоже
ЭлементыФормы.Индикатор1.Значение = ЭлементыФормы.Индикатор1.Значение + 1; 5000 раз выврдит форму на экран. |
|||
14
Бубка Гоп
26.04.16
✎
12:47
|
(13) а, ну да. Похоже ты прав!
|
|||
15
igel1969
26.04.16
✎
12:47
|
(13) да, после того как перешел со ссылок на текст надобность в индикаторе отпала, а если убрать индикатор, то и 5 секунд задержки пропадает.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |