|
v7: Какой командой очищается память от таблицы значений | ☑ | ||
---|---|---|---|---|
0
tmpnikl
18.01.13
✎
09:36
|
прочитал, что "Таблица значений создается в памяти ... , т.е. это временный набор данных."(http://www.mista.ru/tutor_1c/tz.htm)
Но не нашёл какой командой можно закрыть эту таблицу(по аналогии в других интерпретаторах, есть команда use, которая закрывает курсор) или очистить память(есть команда release memory, array и т.д.), чоб освободить память... |
|||
1
МихаилМ
18.01.13
✎
09:46
|
никак . м.б. индексированная таблица умеет.
|
|||
2
Patrio_
O_Muerte 18.01.13
✎
09:47
|
ТЗ = "";
|
|||
3
varelchik
18.01.13
✎
10:15
|
Все там нормально освобождаеться.
|
|||
4
Ёпрст
18.01.13
✎
10:17
|
(1) да ну прямо никак ?
:))))0 как (2) память освобождается на раз. |
|||
5
ДенисЧ
18.01.13
✎
10:18
|
(4) Ага. Размечтался...
|
|||
6
Ёпрст
18.01.13
✎
10:19
|
(5) ye ghjdthm
|
|||
7
МихаилМ
18.01.13
✎
10:19
|
извиняюсь.
уточняю: память не возвращается системе. |
|||
8
ЧеловекДуши
18.01.13
✎
10:21
|
(0)Примерно вот так:
Но работает только с ТЗ, со списком значения не канает. //******************* Чистка ТЗ - НАЧАЛО Процедура ОчистатьТЗПоКолонке(ТЗ_Структура,ИмяКолонки,НомНашКол,НомНашСтр) Перем шш1,шш2; Перем НекоеЗнач,Колонка,Тип; Состояние("...очистать колонку """+ИмяКолонки+"""...0.00%"); шш1 = НомНашСтр; Пока шш1 <= ТЗ_Структура.КоличествоСтрок() Цикл Если шш1 % 30 = 0 Тогда Состояние("...очистать колонку """+ИмяКолонки+"""..."+Окр(100*шш1/ТЗ_Структура.КоличествоСтрок(),2)+"%"); КонецЕсли; //НекоеЗнач = СоздатьОбъект("ТаблицаЗначений"); НекоеЗнач = ТЗ_Структура.ПолучитьЗначение(шш1,НомНашКол); Если ТипЗначенияСтр(НекоеЗнач) = "ТаблицаЗначений" Тогда шш2 = 1; Пока шш2 <= НекоеЗнач.КоличествоКолонок() Цикл Тип = ""; Колонка = НекоеЗнач.ПолучитьПараметрыКолонки(шш2,Тип); Если ПустоеЗначение(Тип) = 1 Тогда //т.е. любой тип, то очищаем!!! ОчистатьТЗПоКолонке(НекоеЗнач,Колонка,шш2,1); КонецЕсли; шш2 = шш2 + 1; КонецЦикла; НекоеЗнач.УдалитьСтроки(); НекоеЗнач.Очистить(); ТЗ_Структура.УстановитьЗначение(шш1,ИмяКолонки,0); КонецЕсли; шш1 = шш1 + 1; КонецЦикла; КонецПроцедуры // ОчистатьТЗПоКолонке(ТЗ_Структура,"ТЗ_СтрСтруктДок") Процедура ОчиститьВсюТЗ(ТЗ_Структура) Перем шш1,шш2; Перем НекоеЗначение; Перем Колонка,Тип; Перем ЕстьТЗ; ЕстьТЗ = 0; шш1 = 1; Пока шш1 <= ТЗ_Структура.КоличествоКолонок() Цикл Тип = ""; Колонка = ТЗ_Структура.ПолучитьПараметрыКолонки(шш1,Тип); Если ПустоеЗначение(Тип) = 1 Тогда ЕстьТЗ = 1; Прервать; КонецЕсли; шш1 = шш1 + 1; КонецЦикла; Если ЕстьТЗ = 1 Тогда Если ТЗ_Структура.КоличествоКолонок() <> 0 Тогда шш1 = 1; Пока шш1 <= ТЗ_Структура.КоличествоСтрок() Цикл шш2 = 1; Пока шш2 <= ТЗ_Структура.КоличествоКолонок() Цикл Тип = ""; Колонка = ТЗ_Структура.ПолучитьПараметрыКолонки(шш2,Тип); НекоеЗначение = ТЗ_Структура.ПолучитьЗначение(шш1,шш2); Если ТипЗначенияСтр(НекоеЗначение) = "ТаблицаЗначений" Тогда ОчистатьТЗПоКолонке(ТЗ_Структура,Колонка,шш2,шш1); Прервать; КонецЕсли; шш2 = шш2 + 1; КонецЦикла; шш1 = шш1 + 1; КонецЦикла; КонецЕсли; КонецЕсли; ТЗ_Структура.УдалитьСтроки(); ТЗ_Структура.Очистить(); //усе... чисто! Состояние("..."); КонецПроцедуры // ОчиститьВсюТЗ(ТЗ_Структура) //******************* Чистка ТЗ - КОНЕЦ (5) Возвращает, но со временем. :) (7)Брехня! Просто вы не умеете очищать и пользоваться нормальным объявлением типов в ТЗ и переменных. |
|||
9
ЧеловекДуши
18.01.13
✎
10:21
|
+(0)Список сам добавь :)
|
|||
10
МихаилМ
18.01.13
✎
10:28
|
(8)
в своё время проверял. не освобождает и через 2 суток. с типизацией тоже знаком . коли брехня? прошу привести кусок кода и условия эксперимента (OC) думаю врете Вы. |
|||
11
ЧеловекДуши
18.01.13
✎
10:33
|
(10)У меня месяцами работает одна и тот же автомат по загрузки и выгрузки документов.
Как было 59 метров, так и стоит стабильно. То что у я привел в (0) это чистка ТЗ в ТЗ. По существу очищать простые ТЗ можно и обычным "Очистить()". Так же в конце лучше делать вот так (2) (это 100% помогает) Так же стараться в цикле поменьше вызывать метод "СоздатьОбъект" а при завершении работы функции частенько делать как в (2). Так же в каждой обработке, которую вы вызываете нужно добавить таблицу значений. И побоку, что вы не будете её использовать. Просто в 1С 7.7 есть утечка памяти, если на форме не будет табличной части. На любой форме диалога. |
|||
12
ЧеловекДуши
18.01.13
✎
10:33
|
+(11)>>> То что у я привел в (0) это чистка ТЗ в ТЗ.
То что у я привел в (8) это чистка ТЗ в ТЗ. |
|||
13
ЧеловекДуши
18.01.13
✎
10:35
|
+(11)>>> нужно добавить таблицу значений
Имею ввиду добавить визуальную Таблице значений в диалог. И установить её скрытой, что бы не мозолила глазки. |
|||
14
tmpnikl
18.01.13
✎
10:43
|
спасибо...
|
|||
15
Cthulhu
18.01.13
✎
12:20
|
Юзайте работу с временными ТЗ в процедурах в качестве лок.переменных. при возврате из такой процы все локальные переменные "отвязываются" от мозгов.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |