1с как свернуть базу 1с
- Уменьшить размер информационной базы
- Увеличить скорость работы информационной базы
- Почистить базу от накопившегося "мусора"
Важно помнить, что свертка информационной базы БГУ 1.0, равно как и свертка любой другой информационной базы - процесс необратимый, и свернув базу на определенную дату, снова "развернуть" ее невозможно. Итак, как свернуть базу 1С:БГУ 1.0?
Для начала нам надо сделать копию информационной базы - не сохранить базу. Обратите внимание - не сохранить информационную базу в формат .dt, а именно сделать копию. То есть иными словами, надо сделать копию папки информационной базы. Это надо для того, чтоб после свертки у нас осталась база не свернутая, в которую мы можем зайти в любой момент и посмотреть данные за период до свертки. Это касается только файловых информационных баз. Если формат вашей базы серверный. то процедура создания копии несколько сложнее, и в этом случае вам лучше воспользоваться услугами специалиста по 1С. О том, как узнать формат (или по другому режим) информационной базы читаем в статье Как узнать конфигурацию, релиз платформы и релиз конфигурации?
Итак. мы скопировали папку с информационной базой. Прописываем новую (скопированную) базу в окне запуска 1С:Предприятие. заходим в режим конфигуратора и выполняем полное тестирование и исправление базы. В случае обнаружение ошибок необходимо их устранить, иначе свертка может выполниться некорректно.
Если ошибок не обнаружено - переходим непосредственно к этапу свертки. В режиме 1С:Предприятие идем в меню "Файл -Открыть" и открываем внешнюю обработку свертки информационной базы. Она находится по адресу "Каталог шаблонов конфигураций и обновлений\1c\StateAccounting\Номер релиза конфигурации". Расположение каталога шаблонов конфигураций и обновлений можно узнать, прочитав статью Как обновить конфигурацию 1С:Предприятие 8. Важно: для выполнения свертки информационной базы текущий пользователь должен иметь права на выполнение свертки.
В окне открытой обработки нужно установить дату, на которую мы сворачиваем нашу информационную базу. Например, если вы хотите сформировать входящие остатки на дату 01.01.2016. то дату свертки мы устанавливаем 31.12.2015.23:59:59. Затем нажимаем "Выполнить все". Ждем некоторое время, необходимое для свертки. Время свертки зависит от конфигурации вашего ПК, а также от размера самой базы.
В результате свертки у нас будут сформированы остатки на указанную дату, а все документы до этой даты будут помечены на удаление. Остатки по всем регистрам будут сформированы документами "Корректировка записей регистров" (меню "Операции - Документы - Корректировка записей регистров). При необходимости остатки можно скорректировать вручную.
После выполнения свертки информационной базы рекомендую сравнить оборотно-сальдовую ведомость до и после свертки. они должны совпадать.
Для уменьшения размера файла информационной базы после выполнения свертки и удаления помеченных объектов нужно зайти в конфигуратор, меню "Администрирование - Тестирование и исправление" и выполнить тестирование и исправление информационной базы с установленным флажком "Сжатие таблиц информационной базы"
Как свертывать большую базу 1C 8 в максимально короткие сроки (1С 8.1, 8.2).
Любая база данных со временем разрастается до огромных размеров, что делает его более медлительным и работать в нем порой бывает очень тяжело.
По этому периодически базу свертывают, т.е. до определенной даты все документы и движения удаляются и вводятся начальные остатки. Соответственно всегда есть архивная база за прошлые периоды.
Пример свертки базы 1С на SQL приведен здесь.
Предыстория
В компании, где я работаю, возникла ситуация, когда настала необходимость урезать базу, т.е. удалить все документы и движения до определенной даты. К этому моменту база данных весила почти 350Гб, и очень тяжело было с ним работать. Также страдало быстродействие 1С и регламентные операции с БД выполнялись очень долго.
Решение было принято - базу обрезаем! После долгих тестов типовых обработок по свертыванию, я в них разочаровался. Больше двух недель провел наедине с компьютером обрезая тестовую базу. Такие сроки просто недопустимы в рабочей базе, тем более в базе работают пользователи 6 дней в неделю. Как то нужно было выбираться из тупиковой ситуации. Решили передать задачу на аутсорс. Но и здесь нас не обрадовали, стоимость работ высокая и время для выполнения требовалось немаленькое.
В общем вопрос оставался нерешенным и вернулись к тому, чтобы решить задачу своими силами.
Пришлось прибегнуть к крайним мерам, я отключился от всех других задач и взялся за свертывание базы.
И в скором времени вопрос был решен - обрезали базу за 2 дня, уменьшили его на 70%.
Обрезание базы УТ с объемом 350 Гб за 2 дня.
Решил выполнить задачу по такому алгоритму:
Создать копию рабочей базы. В копии сформировать остатки на нужную дату, удалить все документы и движения до этой даты. Далее из рабочей базы все новые документы (созданные с момента создания копии) перенести в новую базу. Пустить пользователей в новую базу.
Задача была разделена на 5 подзадач:
1.Создать план обмена, для того чтобы после обрезания базы все новые документы можно было перенести в новую базу.
2.Сформировать остатки на дату свертки.
3.Удалить все документы и движения до даты свертки.
4.Загрузить документы из текущей базы в новую базу.
5.Заменить рабочую базу новой (обрезанной) базой.
На подготовительный этап ушло около двух недель: создание плана обмена, поиск инструментов по созданию остатков и очистки регистров, тестирование механизмов.
Процесс свертки базы данных.
1. Формирование остатков на дату свертки.
Остатки формировал типовой обработкой «СверткаБазы.epf».
Чтобы сэкономить время формирование остатков выполнил в рабочей базе в рабочее время. Т.к. остатки формируются документами «Корректировка записей регистров» и обработка устанавливает неактивными движения в регистрах, то эта процедура для базы безвредна.
В обработке поставил ограничение на количество строк в одном документе 50 000.
Делал не спеша, и в течении 1-2 дня все сформировалось (получилось около 400 документов).
- если на дату свертки есть документы «Корректировка записей регистров» не связанные со сверткой базы, то их лучше перенести на дату позже, чтобы случайно их не перепутать потом.
- при формировании остатков, лучше просмотреть все регистры, т.к. бывает, что не по всем регистрам начальные остатки вам нужны. Иногда бывают ситуации, когда регистр уже нигде не используется. В итоге это сэкономит ваше время.
2. Создать полный план обмена для выгрузки в идентичную конфигурацию (можно делать параллельно формирования остатков).
4.Удаление документов и очистка регистров.
Эта операция самая медленная и для ускорения этой операции нужно использовать прямые запросы SQL . Подобные инструменты можно найти на Инфостарте. Есть еще один момент, если мы удалим данные таким способом, то объекты удалятся быстро, но без контроля на ссылочную целостность. Соответственно, в наших документах вода остатков и других документах появятся строки типа «Объект не найден….».
У меня стояла задача оставить эти документы в непроведенном виде для информационных целей.
Для этого была написана обработка, которая сняла с проведения и перенесла на дату свертки все документы участвующие в движениях в документах корректировки регистров.
После чего, используя обработку по удалению документов и движений через SQL запросы, удалить все до даты свертки (журналы документов, документы, регистры накопления, регистры сведений и т.д.).
- по регистрам сведений нужно чистить только периодические. Если регистр не периодический, то он скорее всего очистится полностью.
6.Активизаровать движения документов корректировки записей регистров обработкой «СверткаБазы.epf». При этом обработка эти документы переносит на предыдущую дату (это удобно для сверки остатков в двух базах).
9.Перенести документы из рабочей базы в новую базу. Эту процедуру можно делать уже сразу после создания копии. Т.е. если ежедневно в базе создается много документов, то перенос документов лучше делать параллельно, чтобы дополнительное время на это не тратить.
10.Пустить пользователей в новую базу. Для этого лучше переименовать базы на сервере 1с, чтобы для пользователей переход был безболезненным. Т.е. старую базу называем как угодно а новую (свернутую) базу переименовываем в старую.
Как известно, при непосредственном удалении объектов не происходит контроль ссылочной целостности.
Соответственно, после удаления объектов в текущей базе остаются объекты ссылающиеся на несуществующие объекты ("Объект не найден").
У меня задача не стояла, чтобы эти объекты были в свернутой базе. Но битые ссылки могут отрицательно сказаться и на разного рода обмены между базами, и на другие процессы.
По этому я их перенес в свернутую базу, но после того как базу свернул.
1.Сделал правила обмена, которые переносят документы (только номер, дата в непроведенном виде).
2.Перенес все документы которые встречались в документах ввода начальных остатков.
Эту процедуру можно делать после свертки, но желательно инструменты подготовить заранее.
Первый вариант такой что сверткой базы вводить остатки на дату и всё что до указанной даты удалять.
Но удаление всех документов всех магазинов в центральной базе хотя бы за месяц занимает все выходные (хотя еще не пробовал на рабочем сервере).
Т.е. скорость свертки месяц в неделю. За год удастся свернуть 4 года если работать по выходным. Что нереально.
Второй вариант выгрузкой\загрузкой XML. Ну допустим справочники и документы за год перенесу в чистую центральную базу. Это еще из центральной базы надо 10 магазинов выделить.
А где им работать пока выделять буду? Т.е. одновременно вести две базы в центре и по каждому магазину?
Есть где методика? Есть третий способ? Или большие РБД не обрезаются в принципе а умирают вместе с сетями?
ну во-первых если остатки перенесены а проводки у старых документов выключены то их можно неспешно удалять хоть в фоновом режиме по неделе в сутки.
а во-вторых как то слишком долго.
(0) А какова цель свертки?
Если повышение производительности, то может проще сервер проапгрейдить?
в выходные:
создать кзр с остатками - это быстро.
далее в несколько потоков чистишь остаточные рн до нужной даты.
потом в течение недели чистишь остальные рн и дочищаешь и помечаешь на удаление ненужные документы.
это на порядок быстрее, чем чистить сразу все рн и помечать на удаление документы стандартной обработкой свертка базы.
формирование начальных остатков можно делать стандартной обработкой свертка базы, все остальное сам пиши. так будет проще и надежнее.
сжимал таким образом базу упп, размером в несколько сот гигабайт по 3 квартала за неделю.
методику сам придумал, почитай интернет, может кто-то что-то эффективнее придумал чего-нибудь.
эффективнее только что вспомнил как можно:
делаем кзр с остатками
пишем скрипт для скл, который из нужных рн по нужным датам удаляет все записи (это на 2-3 порядка быстрее, чем через 1с поштучно чистить)
документы либо так же через скл помечаем на удаление, либо в 1с по старинке в течение недели.
таким образом можно 1-2 года за выходные свернуть даже в большой базе.
что это в 1С - понятно. Что есть РИБ или что-то еще. Это не мешает уточнить, а насколько там РИБ? и какой он там
PS: автор, имхо, путает мягкое с тёплым. Пометить на удаление можно во время свёртки, а удалять - после свёртывания, убедившись в корректности результатов свёртки. "Но удаление всех документов всех магазинов в центральной базе. " - если это "настоящий" РИБ, то нет проблем создать ещё один узел, полную "копию" центрального узла и именно там исполнять все длительные операции по свертке (в частности - удаление документов). По узлам распределенной базы удаление объектов распространяется со скоростью молнии (Впрочем, как и все остальные изменения) - без контроля ссылочной целостности.
(11) все верно, но я бы так не делал. Точнее сказать, был реальный опыт, в котором все сделано было намного проще и пока как бы урезались данные у одних, другие спокойно работали и даже не подозревали о происходящем. Узлов обмена было более 30
Т.е. вообще резки, свертки и т.п. не выполнялось. Но на выходе глубина в прошлое сократилась до установленной Даты остатков.
(0) под удалением в данном случае понимаем пометку или непосредственное удаление с контролем ссылок? Я писал многопоточную пометку для себя, сократил время с почти 3 суток до 2-3 часов
Свертка базы 1С — действия, направленные на уменьшение объема базы данных путём компоновки и архивирования данных за прошлый период. Со временем размер базы данных, особенно в крупных организациях, существенно увеличивается.
Предпосылки к уменьшению базы 1С
Причин для свертки информационной базы 1С 8.3 может быть множество:
- большой объем данных на дисках (для файловой БД размер более 12 Гб — критический, в один прекрасный день программа просто не откроется);
- вследствие большого объема может упасть быстродействие базы данных;
- документы за прошлые периоды «мазолят глаза».
Порой за 3-4 года работы база 1С «вырастает» минимум до 4-5 гигибайт объема.
Для того чтобы избавиться от старых данных и в тоже время не потерять текущие, необходимо произвести свертку базы данных 1С.
Что такое свертка базы в 1С
Свертка базы 1С — это регламентная операция, в которую входит удаление старых ненужных документов. Вместо документов, как правило, формируется 1 документ ввода остатков на определенный период. Тем самым мы обрезаем ведение учета в базе до определенного периода.
Как свернуть базу 1С
Процедура свертки производится обычно с помощью специализированных обработок от фирмы 1С, которые есть на диске ИТС как для 1С 7.7, так и для 1С версии 8. Однако, надо понимать, что свертка базы обработкой с диска ИТС может производиться только с типовой конфигурацией. В противном случае могут появиться ошибки, которые будут видны не сразу. Если у Вас не типовая конфигурация, для свертки базы Вам лучше обратиться к опытному программисту 1С.
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Получите понятные самоучители по 1С бесплатно:
Сами обработки свертки делают, по сути, следующие процедуры:
- вводится документ «Ввода остатков» по всем счетам/регистрам на требуемую дату;
- удаляют документы до требуемый даты.
Для примера: свертка базы 1С бухгалтерия 2.0 за 3 года занимает порядка 2-3 часов. 1С Бухгалтерия 3.0 за 2 года сворачивалась около часа.
Другие статьи по 1С:
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
В январе у многих появляется желание начать всё с чистого листа, и я очень часто слышу от клиентов и читателей вопрос: «А можем мы создать новую базу 1С, оставить в прошлом все ошибки и начать вести учет правильно? Есть какая-то автоматическая возможность «обрезать» базу 1С на начало года?». Такое желание вполне понятно и объяснимо, ведь кому-то досталась база в не очень хорошем состоянии от прошлого бухгалтера, а кто-то просто учился и допускал много недочетов, теперь же есть необходимые знания, навыки и стремление работать правильно, но не хочется тянуть за собой постоянно груз прошлых ошибок. В программе 1С: Бухгалтерия предприятия 8 редакции 3.0 есть такая функция, как свертка информационной базы, которая позволяет автоматически сформировать остатки на начала выбранного периода и удалить старые документы.
Чем удобна свертка базы 1С? В том случае, если вы просто создадите новую пустую базу и начнёте вручную вносить остатки по всем счетам, то потратите достаточно много времени на эту работу, ведь нужно будет перенести не только суммы остатков, но и данные всех справочников, необходимых для работы (контрагенты, физические лица, сотрудники, номенклатура и пр.). При свертке программа сама автоматически сформирует остатки по счетам, которые при необходимости вы сможете скорректировать, все элементы справочников останутся в базе, а старые документы будут удалены. В том случае, если вы хотите также «почистить» справочники, можно будет вручную удалить лишние элементы. Это займет намного меньше времени, чем ввод всех нужных элементов в новую базу.
Прежде чем начинать свертку, нужно сформировать ОСВ и убедиться, что все необходимые счета закрыты, проведена реформация баланса. Также лучше заранее создать копию информационной базы. О том, как это сделать, я подробно рассказывала в статье Создание копии базы - для чего это нужно и как это сделать
Важный нюанс: после проведения свертки документы до выбранной даты в вашей текущей базе будут удалены, но вам обязательно нужно сохранить эту информацию в другой базе, ведь она еще может понадобиться при дальнейшей работе. Обычно, я создаю вторую идентичную базу (в списке баз в названии можно указать, что одна из баз относится к периоду, например, до 2017 года, а другая – с 2017 года), а затем уже можно производить свертку одной из них, в которой будет осуществляться ведение учета в текущем году. Вторая база просто служит архивом данных прошлых лет, к которому в любое время можно обратиться.
После того, как мы разобрались с копиями базы и проверили данные по ОСВ, переходим в раздел «Администрирование» и выбираем пункт «Свертка информационной базы».
Первым делом, программа снова предложит вам сделать копию базы. Если копия у вас уже есть, то этот пункт можно пропустить (снять галочку). Если копии пока нет, то не пропускаем ни в коем случае!
Затем необходимо указать год, на начало которого мы будем формировать остатки. Как правильно, это текущий год, но один раз в своей практике я встречалась с просьбой при свертке оставить в программе данные за три последних года (на тот момент учет в базе велся больше 5 лет). Если в базе ведется несколько организаций, то отмечаем, будет ли осуществляться свертка по всем или только по выбранным.
На следующем этапе необходимо указать, данные по каким регистрам мы будем сворачивать. Если у вас нет каких-либо особых пожеланий, то все настройки можно оставить без изменения.
Затем мы видим на экране перечень операций, которые были автоматически сформированы для отражения остатков на начало выбранного периода. Есть возможность открыть каждую операцию для просмотра и при необходимости отредактировать данные. Но можно будет внимательно изучить сформированные проводки и после окончания свертки.
На следующем этапе осуществляется проверка данных: сверяются остатки по счетам до свертки и после неё. В идеальном случае суммы должны совпадать. Если возникают какие-то расхождения, то нужно обязательно распечатать сформированный программой отчет и детально разобраться с каждым счетом, по которому возникли отличия.
На последнем этапе свертки осуществляется удаление старых документов, этот процесс может занять достаточно долгое время, особенно, если учет в программе велся много лет.
Затем программа сообщит об успешном окончании свертки.
Конечно, свертка не является «волшебной таблеткой» и не решит быстро все проблемы, если учет в базе долгое время велся не очень аккуратно. Возможно, после проведения свертки потребуется корректировать остатки или разбираться, почему автоматически были удалены не все документы. В этом случае придется потратить определенное количество времени на доведение базы до оптимального состояния: поработать с документами ввода остатков и проанализировать, почему программа не смогла удалить некоторые старые документы. Единственное, о чем я хочу вас попросить – обязательно делайте копии информационной базы! А если состояние базы очень запущенное или велик объем введенных документов, то для выполнения свертки лучше обратиться за помощью к опытным специалистам.
Читайте также: