Доброго времени суток, господа. Проблема такая: ТиС, документы тянутся с 2006г., размер базы - 5ГБ!!! При работе в программе возникает ошибка и программа закрывается... Считаю, что связано это с размеров dbf-файлов... Регистр "покупатели" файл rg3445 - размер файла 2,14 ГБ. Как можно научить 1С 77 работать с файлами размера больше, чем 2 ГБ? Или необходимо делать свертку базы? Но тогда вопрос в следующем: как сделать свертку, если при обработке файла rg3445 программа завершает свою работу???
Как можно научить 1С 77 работать с файлами размера больше, чем 2 ГБ?
никак ограничение в самом формате dbf ( на индекс 32 разряда )
Если перейдешь на sql там нет этого ограничения.
Можно также свернуть базу.
или можно свернуть только один этот регистр. а прошлое регистра либо в архивной базе
либо выгрузи прошлое регистра в какой либо sql ( express бесплатен )
(1)
Помоему обработки вам не помогут, ибо у вас уж очень база тяжелая.
Вот Тут описывается метод свертки ОГРОМНЫХ баз с помощью компоненты УРБД. Весь фокус способа заключается в структуре УРБД файлов.
В файле сначала идет шапка сеанса (код базы источника, код базы приемника, внутренний id ист, внутренний id прием, номер сессии), а затем в файле идет описание данных которые нужно перенести. Путем подмены в шапке файла номера сессии или других данных можно переносить из базы в базу огромное количество данных за минимально короткие сроки, т.к. быстрее УРБД я еще пока не видел переноса данных.
Такой способ хорош если нужно сделать срочно свертку базы в середине года, т.е. оставить накопившиеся документы с начала года, а остальное обрезать. Обработками и другими переносами сделать это в 7ке достаточно долго.
(11) с каких это пор 5 гб тяжелая база ?
причем полбазы занимает одна таблица.
(1) в ветке полно правильных советов - выбирай любой. ИХМО начинать надо с 4
(15) для dbf 5Гб мне кажется многовато, надо было давно резать... я обычно выше 3Гб пытаюсь не превышать. Переиндексация очень долго идет при таких объемах, а 7ка виснет достаточно-таки часто
(5) сначала на тестовой потом в основной базе делаешь следущее
выбирается дата скажем 01.01.2012 ( можно и больше период скажем 01.01.2011)
все ra до этой даты скидываешь в точно такую же таблицу в sql базе
также все rg до этой даты скидываешь в точно такую же таблицу в sql базе
В dbf удаляешь все ra до даты 01.01.2012
В dbf удаляешь все rg до даты 01.01.2012
Для таблицы 1sjourn для всех документов до даты 01.01.2012
ставишь в 0 rf тот самый который соответсвует ra
Все.после этого для этого отчета миним дата должна быть >= 01.01.2012
и все отчеты будут правильно работать.
также после этого нельзя перепроводить документы с датой < 01.01.2012 которые двигают твой регистр
Древние движения если они нужны вытаскивай из sql базы.
Так как ошибка явно мешает работать, сделать надо что - то срочно и прямо сейчас, как говорится.
Я полностью согласен с (5), но только как временное решение.
Если регистр итогов двухгиговый - это значит как пить дать он не закрывается.
Если он не закрывается по какому - либо измерению - программируй и закрывай.
Потому что он может тормозить всю базу, ведь в него наверняка документы при проведении пишутся!, а в это время блокировка идет.
Если он не закрывается вообще, переводи регистр в оборотный. Я сам исправлял эту проблему за умником который сделал регистр остатков там где не надо.
Только сам переход от остаточного к оборотному делай на пустой базе с таким же мдшником, потом в рабочую тупо поверх копируешь мд и дд (ддс) файлы. иначе пересчет регистров начнется и это будет очень долго.
Лучше сделать обрезание базы. Начиная с некоторого размера перестает работать выгрузка базы - и тогда с ней вообще ничего нельзя будет сделать средствами 1С.
Свертку делать нужно однозначно, побробуйте обработку TORG_SvertkaOstatkovIzNovojBazy.ert, если не потянет, то что можно попробровать что-то почистиь вручную, в крайнем случае перенести справочники в чистую базу и вручную набить документы ввода остатков
(12) так как база очень много весит, тестирование и исправление базы данных, а так же ее сжатие начинается, но не заканчивается... По крайней мере ждал около суток, затем плюнул и выключил это тестирование...
Работаем с базой 7.7 размерами больше 4 гб только в SQL. Конечно могут возникнуть вопросы у клиентов, но всякая обрезка базы и т.п. на мой взгляд более трудоемко, чем апгрейд до SQL версии.
(16) ограничение не на размер базы
а на размер файла dbf
я могу например создать базу 1c dbf
где будет 100 справочников каждый размером по 1 гб
и она будет прекрасно работать хотя суммарный объем будет равен 100 гб.
если нет желания возиться-только переход на sql
или удаление ненужных регистров
находи самый большой дбф
смотри что в нем хранится
смотри насколько критичны движения регистров
у меня было с регистром накопления по акцизам так
просто убил регистр и заново создал и из 2 гиговоого файла осталось совсем чуть чуть
затем почистил обработку проведения чтоб по акцизам не проводилось
теперь порядок
в основном так пухнут файлы в которые идет движение приход выполнить
а движение расход выполнить нет
(19) это и есть один из случаев не закрытого регистра
о чем и сказано в 4.
Другой случай незакрытого регистра когда приход идет по одним измерениям регистра
а расход по этой же "операции" идет по другим измерения регистра.
(25) Фирма открыла новый склад.
предроложим есть регистр рстатки
товар, склад, ответсвенный
приход 01.04.2012
рельсы, 10 тн, Иванов
расход 06.04.2012
рельсы, 10 тн, Петров
больше закупок рельсов фирма не делала
по продажам все ок
по этому регистру на всех слещущих периодах будет по две записи итогов
если делать свертку итогов без ответсвенного все будет сходиться развернуто нет.
Если таких ситуаций одна то терпимо
когда таких ситуаций много то это и называется незакрытый регистр
+ к (28) и если есть такие ошибки то свертка не решает эту проблему
все незакрытые регистры перенесутся на новую базу и все сначала
вы просто убираете старые периоды( количество итоговых периодов меньше)
но проблема остается
Если в 7.7 есть желание просто начать базу "с начала" без документов и регистров, но оставить все справочники, есть нижеописанный вариант, не претендующий на суперметод, однако у себя им пользовались и значительно сокращали время создания срезов.
Найти подходящую обработку выгрузку-загрузку всех остатков, лучше во внешние файлы, и вывалить все остатки (для себя в конце концов написали свои, хотя сторонних выгрузок полно).
Потом клонируется база, в новой удаляются, как минимум, *.cdx, dh*.*, dt*.*, ra*.*, rg*.*, 1scrdoc.dbf, 1sdnlock.dbf, 1sjourn.dbf, 1sstream.dbf. Затем желательно сделать тестирование-исправление, всё пустышка готова.
Закачиваем ее различными вводами остатков и, например для ТиС, новыми ценами. Подглядываем в движения документов, отчетами и прочими методами проверяем достоверность данных и итогов.
Лишь как вариант, написал.
(0) разбираться надо с незакрытым регистром, а не сворачивать базу - тем более, что ты её не свернешь.
А 5 гигов, это вообще ни о чем, с учетом наличия незакрытых регистров еще.
У меня ТИС в 7.7 (база около 5 Гб), свёртка не делается - после 4-х часов ошибка OUT of Memory. Лучше либо с Нового года на чистую базу, либо в SQL. в SQL шустро работает - одновременно до 20 человек - и никаких подвисаний (в SQL база более 7 Гб).
Например, мы пишем на какой-то счёт все операции клиента - просто для того, чтобы знать оборот по этому клиенту за любой период. В итоги, число клиентов растёт и растёт и файл итогов, так как "умная" 1С хранит все итоги за все периоды в одном файле (и не только 1С так делает).
Если итоги по клиенту не нужны каждый раз "мгновенно", а именно мгновенно 1С может показать итоги по счёту на какую-то дату, то можно вместо субконто использовать параметр проводки и делать выборку вручную (обороты по итогам).
А если более строго говорить, то итоги - они и в Африке итоги - мы же со счетами работаем - если же хочется какой-то аналитики, то для этого придуманы регистры - там каждый регистр в своих файлах и как бы мы не старались - так быстро 2 Гб не пройти.
Пробьлема острая быстрого лекарства нет, либо сворачивать базу либо еще что-то делать, такие тяжелые ДБФки больше подвержены разрушения и системным сбоям, я ж не говорю про время на переиндексацию
Кстати можно отрастить их до такого размера что свертка не может сделать на мощно сервере даже за 2-е суток