Добрый день. Столкнулся с проблемой. Имеем 1С 7.7 Бухгалтерский учет, редакция 4.5 7.70.469
До поры все работало, пока при попытке провести очередной документ не столкнулись с ошибкой, указывающей на проблемы в 1SENTRY.dbf. Файл весит 1,99, забит под завязку. База большая, с 2005 года. Попытка свернуть базу не увенчалась успехом, в определенный момент ловим ошибку (снова связано с 1SENTRY.dbf). Знающие люди, подскажите, как можно решить данную проблему. Как можно урезать данный файл, при этом не потеряв проводки и итоги? Уже всю голову себе сломал.
Как можно урезать данный файл, при этом не потеряв проводки и итоги?
ну..
можно урезать размерность полей.
зачем тебе сумма размерностью 15.2? ты оперируешь триллионами? может, размерность 11.2 будет за глаза?
а текстовые поля там в dbf-ке есть? Типа "комментарии". Файла под рукой нет, глянуть не могу, какие там поля. Может, их (текстовые) размерность тоже урезать?
делать, естественно, на копии и dbf-редактором, не средствами 1С.
Параллельно конечно же надо подправить dd md под новую размерность полей.
Также можно попробовать любым dbf-редактором сжать dbf-файл.
Ну и конечно после этого урезания базу все одно сворачивать.
Слышал, что можно закинуть в SQL, и проблема эта вроде как решается. Создал пустую базу в SQL Server Management Studio, в консоли администрирования также все прописал. Выгрузил данные из семерки, на выходе получил файл расширения .dat, а для загрузки в SQL нужен .dt. Вот и думаю, возможно ли это как-то осуществить. Не спец, буду рад совету, как это можно провернуть, если вообще возможно.
(37) Это случай работы с большим объемом данных, и даже если начать срез это займет не определенное время! Первый шаг попробовать сжатие (во временное спасение), второй шаг, в случае провала первого срез базы (здесь два длительных этапа удаление доков и перепроведение с 2019 года (но это можно делать по ходу работы этапно)!!! как будут результаты любые сообщим!
(54) База не ломаная ни разу, и сжатие никакое не утопическое. У меня всего лишь сокращена длина ненужных текстовых полей. Если так нужно (хотя зачем, искренне не понимаю) то эти текстовые поля (ненужные такой длины текстовые поля) можно увеличить потом в скуле хоть до 250 символов. Хотя нахрен нужно текстовое поле "Содержание проводки" такой длины, искренне не понимаю, разве что сочинение туда писать. :)))
А так то да, обрезанную по 2019 год залить в скуль - это да. Это легко.
Это ты правильно придумал, похерить всю историю до 2019 года. С 2005 то года. :)
А вот в, как ты выражаешься, в "утопической ломаной" :) базе вся история осталась целенькой и невредимой. И ее не просто можно, а нужно оставить "для истории." В смысле эту файловую утопическую ломаную. :) базу оставить.
Сокращение длины текстовых полей никак не ломает базу, если эти поля не заполнены под завязку сочинениями на вольную тему, а всего лишь обрезает ненужные пробелы справа. И это никакая не утопия. Это реально. И в скуль выгрузить никак не мешает.
Ты только представь - в этом файле хранилось полгига пробелов :)))
(42) Итак, как сделать временное спасение.
Поскольку файл ты выложил уже не боевой базы (после этого в базе работали, я так понял), а получается типа тренировочный, то на боевой (естественно на копии) будешь делать сам.
рис. 1
дано - исходная база 2147481398 байт, 5 315 545 записей
получилась база 1 598 980 264 байт, 5 315 545 записей (то есть количество записей я не трогал и оно не изменилось, будем надеяться ,что все записи остались на месте)
продолжаю (43)
что я сделал?
у тебя в базе два текстовых поля ненужной, на мой взгляд длины
одно поле - содержание проводки (длиной 50, хотя я текста больше 20 в этом поле не видел) но да ладно, сократим до 30
второе поле - первичный документ но это не ссылка, а всего лишь текст, и под этот текст заложена длина аж 133 символа, хотя я больше 30 в этом поле не видел, но да ладно, сократим до 50.
файл dd прилагаю, надеюсь, в dd сам сможешь исправить длину поля SP547 с 50 на 30, а длину поля SP27565 со 133 на 50. В блокнотом работать умеешь, надеюсь? :)) шутка.
(44) +
Но исправить dd этого разумеется мало.
Берешь редактор dbf (прилагаю файл setupdbf.exe), запускаешь, устанавливаешь, дальше файл->открыть (все на копии, не забываем), дальше жмешь кнопочку "структура", находишь нужное поле SP547, жмешь изменить, меняешь с 50 на 30, жмешь изменить, потом внизу жмешь изменить.
Потом делаешь все то же самое с полем SP27565 , длину со 133 меняешь на 50.
Потом закрываешь программу крестиком! Акцентирую - тупо крестиком, при попытке куда-то сохранить у меня виснет, слишком большой объем для этого редактора.
Таким образом структура файла приводится в соответствие с описанной в dd.
ну и размер в 1 599 980 264 как-то хоть и немножко, но радует. А всего лишь сократили длину двух текстовых полей.
Сжимать, то есть упаковывать файл даже не пробовал, пересохранять тоже даже не пробовал, говорят, иногда в разных редакторах на таких объемах возможны глюки. DBF-навигатор, кстати, на этом файле подавился.
И немножко обсуждение разных dbf редакторов здесь же на ИС:
https://forum.infostart.ru/forum9/topic123514/
Поэтому я всего лишь тупо изменил структуру (длину текстовых полей).
(45) Действительно, файл 1Sentry.dbf стал меньше. Однако при попытке провести документ появилась Error -70 и ссылка на 1saccel.cdx. Решил это удалением всех .cdx и последующей переиндексацией. После этого все заработало как часы. Документы проводятся, остатки и проводки, всё на месте. Базу сжал. Спасибо за помощь!
(45) +
у-ф-ф, дольше картинки скринил и подсовывал, чем делал. На самом деле все недолго.
Да, делается изменение структуры файла не очень быстро, даже на моем не самом плохом компе занимает определенное время, несколько минут, точно не засекал. Но ждешь не часы точно, всего лишь минуты.
И тебе рекомендую делать изменение структуры файла локально на компе с хорошим процессором (точнее, с хорошей тактовой частотой) а не на сервере.
Сервер, он как КАМАЗ, не напрягаясь тянет кучу бухгалтеров, но любая вишневая девятка быстрее КАМАЗа, хотя и везет одного водителя, а куча бухгалтеров эту девятку своими тушами просто раздавит. Поэтому локально на быстром компе в данном случае лучше, чем на сервере :)
О, и самое главное чуть не забыл..
Подсовываем измененный dd и измененный 1SENTRY.dbf обратно в папку с базой, удаляем (я настаиваю - именно удаляем все *.cdx файлы) запускаем 1С, ждем, когда построятся индексы и радуемся. Радуемся не очень долго, может месяц, может два, но полгига у тебя про запас есть, так что дальше сам думай - то ли обрезать (точнее сворачивать) базу, то ли на SQL.
https://infostart.ru/1c/tools/82018/ Windows 10 + MSSQL 2014 - вроде взлетело, но загрузка идет (долго)
и непонятный пересчет, дата увеличивается, когда закончится неизвестно