|
Не хватает памяти при выводе в табличный документ | ☑ | ||
---|---|---|---|---|
0
ssserg
19.04.13
✎
16:14
|
Добрый день всем.
При попытке формирования одного самописного отчета за большой период выходит ошибка "Недостаточно памяти". Стал разбирать в скд наборы данных в консоли запросов. Запрос набора данных отрабатывал как надо, но когда я попытался вывести результат запроса в табличный документ, ну то есть клацаешь правой кнопкой по окну вывода консоли и "вывести список", то оно мне опять выдало ту же ошибку про нехватку памяти. Тут нужно каким то образом вручную выводить результаты запроса небольшими кусками, посоветуйте способы как этой сделать? |
|||
1
ДенисЧ
19.04.13
✎
16:16
|
Разбивай на отдельные периоды и выводи в разные табличные документы
|
|||
2
butterbean
19.04.13
✎
16:16
|
записывай сразу в экселевский файл, например
|
|||
3
Fragster
гуру
19.04.13
✎
16:17
|
расшифровку по максимуму убрать, группировок поменьше, особенно за колонки
|
|||
4
ssserg
19.04.13
✎
16:21
|
(1) (2)
Не вариант. |
|||
5
ssserg
19.04.13
✎
16:23
|
(3) Всё что есть резать нельзя, тем более что причина не в отчете, а в способе вывода в табличный документ.
|
|||
6
Fragster
гуру
19.04.13
✎
16:23
|
что в "расшифровку по максимуму убрать" не подходит?
|
|||
7
ssserg
19.04.13
✎
16:25
|
(6) не подходит.
|
|||
8
Мохнатое рыло
19.04.13
✎
17:26
|
(7) Ну добавь памяти и купи Сервер 64 бит ;)
|
|||
9
ssserg
19.04.13
✎
17:40
|
(8) Интересует как это можно сделать программно ;)
|
|||
10
Maxus43
19.04.13
✎
17:42
|
(4) сформируй отчет на нормальной машине, на серваке какомнить, а не на ноуте для просмотра фильмов
|
|||
11
ssserg
19.04.13
✎
17:48
|
(10) Память не причем, в процессах она не засирается даже до половины. Пробовал формировать отчет на сервере о 16гб - та же фигня.
|
|||
12
H A D G E H O G s
19.04.13
✎
17:49
|
(10) Ахереть.
|
|||
13
Fragster
гуру
19.04.13
✎
17:49
|
(11) ты хоть понял, что значи "убрать расшифровку"?
|
|||
14
H A D G E H O G s
19.04.13
✎
17:50
|
(11) ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент.Вывести (DataCompositionResultSpreadsheetDocumentOutputProcessor.Output)
ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент (DataCompositionResultSpreadsheetDocumentOutputProcessor) Вывести (Output) Синтаксис: Вывести(<ПроцессорКомпоновки>, <ВозможностьПрерыванияПользователем>) Параметры: <ПроцессорКомпоновки> (обязательный) Тип: ПроцессорКомпоновкиДанных. Процессор компоновки данных, из которого будут получаться элементы результата. <ВозможностьПрерыванияПользователем> (необязательный) Тип: Булево. Указывает, может ли пользователь прервать вывод при помощи комбинации клавиш Ctrl+Break. Значение по умолчанию: Истина Возвращаемое значение: Тип: ТабличныйДокумент. Описание: Выводит весь результат в объект. При этом автоматически исполняется метод НачатьВывод, перебираются все элементы процессора компоновки и выводятся в результат. После чего исполняется метод ЗакончитьВывод, результат которого возвращается данным методом. Доступность: Сервер, толстый клиент, внешнее соединение. |
|||
15
H A D G E H O G s
19.04.13
✎
17:51
|
Доступность:
Сервер Запилить это на сервере, и сервер 64-х битный, либо перезагружать перед выводом и пробовать. |
|||
16
ssserg
19.04.13
✎
17:55
|
(13) Каким же образом можно убрать из _результата запроса_
в _консоли запросов_ расшифровку которой там и так нет? Данных так много, что убирание расшифровки в СКД тут погоды не сделает. |
|||
17
Fragster
гуру
19.04.13
✎
17:59
|
а сколько данных?
|
|||
18
Maxus43
19.04.13
✎
18:01
|
(12) чегойто ругаешся, а?
|
|||
19
ssserg
19.04.13
✎
18:02
|
(14) Так вот, каким образом получить доступ к этим самым элементам при выводе. То есть нужно часть данных из элементов процессора компоновки вывести в табличный документ - пауза(как то вызывать принудительное прерывание) - затем другую часть и.т.д.
|
|||
20
H A D G E H O G s
19.04.13
✎
18:04
|
(18) Мы обсудим это через час, за кружечкой пива.
|
|||
21
Fragster
гуру
19.04.13
✎
18:07
|
дарю, я сегодня добрый....
ПроцессорВывода.НачатьВывод(); Пока Истина Цикл ОбработкаПрерыванияПользователя(); ЭлементРезультата = ПроцессорКомпоновки.Следующий(); Если ЭлементРезультата = Неопределено Тогда Прервать; КонецЕсли; ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); КонецЦикла; ПроцессорВывода.ЗакончитьВывод(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |