Имя: Пароль:
1C
1С v8
Большой ТабДок
0 ejikbeznojek
 
16.03.15
16:06
Всем ещё раз привет)
Имеется формирование табличного документа. Который может быть здоровенным.
Попытки убедить что здоровенный табличный документ ни кому не нужен не принесли успеха.

Имеется условие

если ТабДок.ВысотаТаблицы>1000000 тогда
     ТабДок.Показать("Наклейки "+ Объект.Номер);
     ТабДок=новый табличный документ;
КонецЕсли;
    


И имеется цикл вывода в таб док
Пока количествокоробов > 0 Цикл                             ТабДок.Вывести(ОблЭтикетка);                            ТабДок.ВывестиГоризонтальныйРазделительСтраниц();                            количествокоробов = количествокоробов-1;
КонецЦикла;    

Который рано или поздно вышибает с недостатком памяти из 1С.
Выходит что вывод и переопределение табдока не освобождает памяти?
1 ДенисЧ
 
16.03.15
16:07
так и есть.
ещё с 77 тянется.
2 rphosts
 
16.03.15
16:09
(0)сделай оригинальную форму для документа и считывай на неё данные порциями...
3 D_E_S_131
 
16.03.15
16:10
(0) Я что-то "переопределение табдока" не заметил. Вроде как все данные в одном отделяются горизонтальным разедлителем.
4 D_E_S_131
 
16.03.15
16:11
Да и несколько разных выведенных ТабДок-ов вряд ли решат проблему. Возможно их лучше в файлы сохранять, которые потом и печатать.
5 ДенисЧ
 
16.03.15
16:11
(3) А это " ТабДок=новый табличный документ;" - королева Британии, что-ли?
6 Bober
 
16.03.15
16:12
(0) делай по 100к строк.
7 H A D G E H O G s
 
16.03.15
16:16
(5) Привет.
А что это у него в предыдущей строчке вылезло на экран, ДенисЧ?
8 H A D G E H O G s
 
16.03.15
16:18
(0) Сделай на Управляемой форме ТабДок и выводи в него все 100500 млн строк, на сервере 64-х разрядном.

На Клиенте эти строки будут подгружаться по мере прокрутки, а так как эту херню все равно никто читать не будет - падать по памяти тоже не будет.
9 ДенисЧ
 
16.03.15
16:18
(7) Моя твоя нихт ферштее.
10 H A D G E H O G s
 
16.03.15
16:20
(9)
У него методом
ТабДок.Показать("Наклейки "+ Объект.Номер);

табличный документ вывелся на экран и занимает память.

ТабДок=новый табличный документ;
ему уже не поможет.
11 ДенисЧ
 
16.03.15
16:20
Каждая этикетка выдаётся на новой странице, каждые 1000000 строк - создаётся новый табдок
12 ДенисЧ
 
16.03.15
16:21
(10) о чём я и сказал в (1).
13 D_E_S_131
 
16.03.15
16:27
А если никто читать не будет, то может сразу на печать выводить?
14 Torquader
 
16.03.15
16:29
(13) Ну, самое правильное решение - сделать ТабДок на форме и рисовать в нём одну этикетку, так как, скорей всего, печатают кучу одинаковых - и зачем их копировать ?
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс