Имя: Пароль:
1C
1С v8
Надо ли записывать Неопределено в реквизит ХЗ?
,
0 mikecool
 
07.10.14
13:08
Есть РС ВерсииОбъектов
у него ресурс Версия с типом ХЗ
надо его чистить по определенную дату
вот сижу и ломаю голову - если просто перезапишу пустые наборы данные, которые хранились в хранилище значения(суть в блоб-полях) автоматически затрутся, или же сначала записать туда неопределено, а уже затем чистить набор.
Пока написал как-то так:
        Набор.Отбор.Объект.Установить(Выборка.Объект);
        Набор.Отбор.НомерВерсии.Установить(Выборка.НомерВерсии);
        Набор.Прочитать();
        Для Каждого ОднаЗапись Из Набор Цикл
            ОднаЗапись.ВерсияОбъекта = Неопределено;
        КонецЦикла;
        Набор.Записать();
        Набор.Очистить();
        Набор.Записать();
1 Maxus43
 
07.10.14
13:10
хрень какаято товарисч, просто записать пустой набор.
Из БД они конечно не затрутся сразу, надо сделать Сжатие таблиц
2 Maxus43
 
07.10.14
13:10
без прочитать и других лишних 5-ти строк
3 mikecool
 
07.10.14
13:11
(1) а моим способом сжатие потребуется все равно? вот что думаю
4 XLife
 
07.10.14
13:11
хз говоришь...
5 mikecool
 
07.10.14
13:11
база 110 Гиг, версии 45Гиг
хз сколько сжатие продлится )
6 mikecool
 
07.10.14
13:12
разве что скулем сжимать
7 Maxus43
 
07.10.14
13:19
(6) скулем конечно, недолго сжатие поидее
8 mikecool
 
07.10.14
13:26
(7) Максим, а ты (1) проверял или на каких других данных основываешься?
9 vde69
 
07.10.14
13:29
так будет достаточно:

        Набор.Отбор.Объект.Установить(Выборка.Объект);
        Набор.Отбор.НомерВерсии.Установить(Выборка.НомерВерсии);
        Набор.Записать();
10 mikecool
 
07.10.14
13:31
(9) автоматом затрутся и данные ХЗ? или они до сжатия "полежат"?
11 Maxus43
 
07.10.14
13:34
(8) конкретно в скуле не смотрел специально, но мы 2 раза в год чистим версионирование тоже, и после сжатия бд (у нас это регламент недельный вобще) - всё становится карашо
12 vde69
 
07.10.14
13:36
(10) в регистре будет пусто, база НЕ сожмется, освободившееся место будет помечено как "свободные блоки".

Данные в "свободных" блоках может быть в дальнейшем выделено системой под любую таблицу.
13 vde69
 
07.10.14
13:38
шринк базы - это и есть дефрагментация + усечение свободных блоков файла данных...

по этому НИКАКИМ ШТАТНЫМ методом 1с невозможно уменьшить размер базы (кроме тестирования и исправления с режимом сжатия).
если чего - скульный шринк делается быстро :)
14 Maxus43
 
07.10.14
13:46
(13) режим сжатия в ТИИ появляется тока на файловых, в клиент-серверных его нету
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший