Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Нужно-ли удалять вложенные таблицы?          
vadim007 Подменю пользователя
сообщение 23.03.12, 6:16
Сообщение #1

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

Есть таблица значений, в ней есть ссылки на другие таблицы, созданные в процессе работы отчета.
Хватит-ли только одной команды ТЗ_Приход.УдалитьСтроки() для удаления содержимого таблицы, или нужно в цикле поудалять вложенные таблицы, чтобы оперативную память освободить?

XBrut Подменю пользователя
сообщение 23.03.12, 8:06
Сообщение #2

Статус
**********
Группа: Пользователи
Сообщений: 1543
Спасибо сказали: 256 раз
Рейтинг: 0

Не хватит. Надо прицельно освобождать память. В общей таблице находятся лишь ссылки на остальные таблицы.

alex040269 Подменю пользователя
сообщение 23.03.12, 8:13
Сообщение #3

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Удаляем таблицу, соответственно - удаляются и ссылки на списки значений, и если больше ссылок нет, т.е. Списки добавлялись примерно так:
тз.Новый();
тз.сз = СоздатьОбъект("СписокЗначений");
, то

доп.действий производить не нужно.

а если

сз = СоздатьОбъект("СписокЗначений");
тз.Новый();
тз.сз = сз;
, то - соответственно - нужно удалять и список...


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

Спасибо сказали: XBrut,

XBrut Подменю пользователя
сообщение 23.03.12, 8:32
Сообщение #4

Статус
**********
Группа: Пользователи
Сообщений: 1543
Спасибо сказали: 256 раз
Рейтинг: 0

Цитата(alex040269 @ 23.03.12, 8:13) *
Удаляем таблицу, соответственно - удаляются и ссылки на списки значений, и если больше ссылок нет, т.е. Списки добавлялись примерно так:
тз.Новый();
тз.сз = СоздатьОбъект("СписокЗначений");
, то
доп.действий производить не нужно.


если некто начнет сомневаться, как это проверить ? smile.gif

alex040269 Подменю пользователя
сообщение 23.03.12, 8:54
Сообщение #5

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

ну как? Создаем БОЛЬШУЩИЕ ТЗ и СЗ , бегаем отладчиком по строкам и наблюдаем за таскменеджером!!!


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

vadim007 Подменю пользователя
сообщение 23.03.12, 9:11
Сообщение #6

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

Цитата(alex040269 @ 23.03.12, 8:13) *
Удаляем таблицу, соответственно - удаляются и ссылки на списки значений, и если больше ссылок нет, т.е. Списки добавлялись примерно так:
тз.Новый();
тз.сз = СоздатьОбъект("СписокЗначений");
, то
доп.действий производить не нужно.
а если
сз = СоздатьОбъект("СписокЗначений");
тз.Новый();
тз.сз = сз;
, то - соответственно - нужно удалять и список...

Как программист, я не вижу принципиальных отличий в создании СЗ первым и вторым методом. А то какой-то шаманизм получается: если СЗ присваивать элементу ТЗ через переменную, то это одно, а если напрямую, то это некое другое.

Цитата(XBrut @ 23.03.12, 8:06) *
Не хватит. Надо прицельно освобождать память. В общей таблице находятся лишь ссылки на остальные таблицы.

Был-бы это другой язык программирования, я бы с эти утверждением согласился. В случае 1С нужно четко знать. В документации этот момент оговорен?

Vofka Подменю пользователя
сообщение 23.03.12, 9:29
Сообщение #7

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14066
Из: Киев
Спасибо сказали: 4629 раз
Рейтинг: 3769

Цитата(vadim007 @ 23.03.12, 9:11) *
Как программист, я не вижу принципиальных отличий в создании СЗ первым и вторым методом.

Во втором случае ссылка на список значений будет существовать в переменной сз даже, если вы удалите таблицу значений. А в первом случае ссылок на список значений не будет нигде, после удаления таблицы значений.

Но я согласен с тем, что так ли это именно в 1С (ещё и 77) - знает, наверное, только Боря.

Ardi Подменю пользователя
сообщение 23.03.12, 10:31
Сообщение #8

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Если длительном цикле внутри цикла 1с не падает и память не растёт - значит всё впорядке.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

vadim007 Подменю пользователя
сообщение 23.03.12, 12:33
Сообщение #9

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

Написал обработку для теста на использование памяти. Поместил ее в хранилище http://pro1c.org.ua/index.php?act=SF&f=277
Когда задал число уровней дерева 1000000, 1С загнулась с таким вот сообщением:

Ardi Подменю пользователя
сообщение 23.03.12, 13:11
Сообщение #10

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

с хранилищем что-то не то.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

MATEVI Подменю пользователя
сообщение 23.03.12, 13:15
Сообщение #11

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2203
Из: Одесса
Спасибо сказали: 969 раз
Рейтинг: 0

Цитата(Ardi @ 23.03.12, 13:11) *
с хранилищем что-то не то.

Уже то

Vofka Подменю пользователя
сообщение 23.03.12, 13:18
Сообщение #12

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14066
Из: Киев
Спасибо сказали: 4629 раз
Рейтинг: 3769

Цитата(Ardi @ 23.03.12, 13:11) *
с хранилищем что-то не то.

Уже "то"

Цитата(MATEVI @ 23.03.12, 13:15) *
Уже то

Прям в один голос smile.gif

MATEVI Подменю пользователя
сообщение 23.03.12, 13:18
Сообщение #13

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2203
Из: Одесса
Спасибо сказали: 969 раз
Рейтинг: 0

Глюки с переключателем.
Удалить(<<?>>)
Недостаточно фактических параметров

mister-x Подменю пользователя
сообщение 23.03.12, 13:27
Сообщение #14

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1422 раз
Рейтинг: 0

Цитата(vadim007 @ 23.03.12, 12:33) *
Когда задал число уровней дерева 1000000, 1С загнулась с таким вот сообщением:

подымите мне веки - не вижу wink.gif

vadim007 Подменю пользователя
сообщение 23.03.12, 13:46
Сообщение #15

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

Исправил и перезалил там же. Прошу прощения - спешка.

alex040269 Подменю пользователя
сообщение 23.03.12, 15:02
Сообщение #16

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Цитата(vadim007 @ 23.03.12, 9:11) *
Как программист, я не вижу принципиальных отличий в создании СЗ первым и вторым методом. А то какой-то шаманизм получается: если СЗ присваивать элементу ТЗ через переменную, то это одно, а если напрямую, то это некое другое.
Был-бы это другой язык программирования, я бы с эти утверждением согласился. В случае 1С нужно четко знать. В документации этот момент оговорен?


в теории:

сз = СоздатьОбъект("СписокЗначений");
сз = СоздатьОбъект("СписокЗначений");


должна освобождаться память, которая выделена первым оператором и выделяться вторым.


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

Ardi Подменю пользователя
сообщение 23.03.12, 22:58
Сообщение #17

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Так а какой ответ на главный вопрос?


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

logist Подменю пользователя
сообщение 23.03.12, 23:00
Сообщение #18

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2540 раз
Рейтинг: 0

Цитата(Ardi @ 23.03.12, 22:58) *
Так а какой ответ на главный вопрос?

42


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Ardi Подменю пользователя
сообщение 23.03.12, 23:07
Сообщение #19

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Цитата(logist @ 24.03.12, 0:00) *
42

Что-ж вы так долго молчали. Вон человек даже программу для компьютера написал чтобы узнать ответ на главный вопрос.

А программа работала, работала и вылетела через 1 миллион циклов.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

vadim007 Подменю пользователя
сообщение 26.03.12, 7:23
Сообщение #20

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

Цитата(Ardi @ 23.03.12, 23:58) *
Так а какой ответ на главный вопрос?

Раз 1С - интерпретатор, а не компилятор, то то дерево можно удалить, "обнулив" корень дерева. При этом вся структура удалится автоматически.
Ведь удаляются-же СЗ, или ТЗ, присвоением пробела или нуля, переменной типа СЗ или ТЗ. И какая разница, что там дальше содержится в этой ТЗ.
Есть другие мнения?

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 09.10.25, 17:43
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!