v7: Проблема 1sconst.dbf #591632


#0 by Fuzzz13
Всем, доброго времени суток! Ситуация... Есть 1С ТиС ред. 8.7 (не типовая). Учет в ней ведется с 2004 года. Пытаюсь удалить помеченные на удаления элементы (их всего несколько штук), в строке состояния перебираются данные, считается количество элементов, причем после трех - четырех часов ожидания, этот счетчик может уйти в минус (!!!) - такого еще я не видел нигде. В итоге оставлял даже на трое суток эту операцию, но результата - НОЛЬ - процесс удаления не закончился. Хотя компьютер на самый тормозной: 4 ядра, 4 Гб. И в эти трое суток на компьютере больше ничего не делалось. Пытался даже создать новый элемент справочника "Номенклатура" и его пометить на удаление. И при попытки удалить только этот один элемент через стандартную процедуру "Удаление помеченных объектов" - происходит тоже самое. Начал разбираться. В итоге выяснил, что проблема с файлом 1sconst.dbf. Размер 935 Мб. Если его удалить физически из каталога ИБ, то все удаляется за несколько минут - но это не выход. Что делал: 1. Тестирование и исправление ИБ; 2. Удалял все индексные файлы (*.cdx); 3. Проверял сам файл 1sconst.dbf при помощи программ для проверки DBF файлов - в итоге все нормально: открываются, просматриваются с начала и до конца, и после тестирования и исправления в 1С ничего не поменялось. 4. Также пытался удалить историю цен вначале за каждый год по очереди (2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011), а потом и вообще всю историю цен - результатов тоже НОЛЬ! К тому же размер файла 1sconst.dbf не изменился. Какие еще есть варианты и куда копать? Заранее спасибо.
#1 by 1Сергей
Баян. В поиск. Патч от hogik
#2 by filh
с следствии чего, стало подозрение на 1sconst.dbf? почитать про структуру файла можно тут .
#3 by filh
+1
#4 by andrewks
надо было периодически подчищать базу. или использовать скуль
#5 by Ёпрст
периодику не пробовал прибивать ? оставь только последнее значение, остальное прибей - табличка твоя похудеет в разы.
#6 by vde69
>>>>Также пытался удалить историю цен вначале за каждый год по очереди (2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011), а потом и вообще всю историю цен - результатов тоже НОЛЬ! К тому же размер файла 1sconst.dbf не изменился. при удалении записи физически из файла они не удаляются, строка остается с признаком "свободна", место возвратится после ТИИ или например операции "сжание" по сабжу: у тебя где-то зацикливание причем не явное, например в номенклатуре переодический реквизит "Ед" значением выступает справочник у которого есть переодический реквизит "ОсновнаяНоменклатура". 1с такие конфликты не умеет решать сама :)
#7 by Fuzzz13
to filh: Структуру файла я знаю. Есть у кого скаченная (? to andrewks: Ко мне просто клиент уже пришел с проблемой в 2011м году, а до этого момента он и не знал, что надо подчищать периодические реквизиты регулярно. to Ёпрст4: Каким именно образом? Я только пробовал прибить цены и по годам по отдельности и вообще все - все равно не похудела. Я так понимаю, после удаления значения цен (так это самая большая часть файла 1sconst.dbf) надо еще сжать сам файл. to vde69: Ну так фишка в том, что 1С даже не даёт удалить только что созданный элемент номенклатуры, который не участвует вообще ни в каких документах!!!! Каким образом "лечить" это "не явное зацикливание"?
#8 by Jump
Загрузить- выгрузить данные пробовал?
#9 by Fuzzz13
to Jump: Это было одно из первых, что пробовал, но не помогло (((
#10 by Mikeware
Что, отдельно поработать над этой табличкой - не судьба? Пометить на удаление в 1сконст ненужное старье. Взять фоксу или клиппер (точнее, утилиту из его комплекта), да сжать файл. Или втупую перекопировать в аналогичный пустой файл данные без пометки на удаление (или вообще копировать только нужные). Потом переиндексироваться, и вуаля... вместо этого сутки сношашь мозг...
#11 by vde69
ну в ветке как минимум 2 человека которые на 100% могут полечить твои проблеммы :) я делаю за деньги :)
#12 by vde69
кстати обрезать историю периодики впрямым запросом куда проще :)
#13 by Fuzzz13
to Mikeware: > Пометить на удаление в 1сконст ненужное старье. Пробовал > Взять фоксу или клиппер (точнее, утилиту из его комплекта), да сжать файл. Сейчас как раз пробую. > Или втупую перекопировать в аналогичный пустой файл данные без пометки на удаление (или вообще копировать только нужные). Эта мысль была, но решил ее на потом оставить. > вместо этого сутки сношашь мозг... Извиняй ))) Больше не буду!
#14 by vde69
используй bdbfs.exe
#15 by Ёпрст
че там пробовать - любой дбф редактор это умеет.
#16 by Fuzzz13
Сейчас еще раз взял оригинал, и в данный момент удаляю историю цен до 01.01.2010. (Это на несколько часов) А потом тогда дальше буду пробовать сжимать файл при помощи сторонних утилит.
#17 by Ёпрст
>>>историю цен до 01.01.2010. (Это на несколько часов) Твоя история удаляется за пару минут. Какчемзачем ты её удаляешь часами ?
#18 by Fuzzz13
Там просто дохрена типов цен и товаров тысяч 30. А весь прайс раньше довольно часто обновлялся. И получается что у товара может быть значений одного типа цен около сотни. Ну и в транзакицях по частям (по 2000 шт в одной части) это получается несколько часов на 4-ядрах и 4-х Гигах оперативной памяти.
#19 by Mikeware
Это делается "снаружи", и за несколько минут...
#20 by Fuzzz13
Подскажи как.
#21 by Ёпрст
тупо прямым запросом сделать delete ненужных записей по условию. Оставить только последнее периодическое значение реквизита. Хотя..и через объект периодический усё быстро удаляется. А по поводу удаления помеченных объектов - если отключить ЖР на это время - удаляется всё в разы быстрее. Хотя, прямым, всё же пошустрее будет
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С