Как свертывать большую базу 1C 8 в максимально короткие сроки (1С 8.1, 8.2)

17.06.13

База данных - Свертка базы

Как свертывать большую базу 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. Создать полный план обмена для выгрузки в идентичную конфигурацию (можно делать параллельно формирования остатков).

 

3.В нерабочее время очистить зарегистрированные в плане обмена объекты и сделать копию базы с отключенными регламентами.

 

4.Удаление документов и очистка регистров.  

Эта операция самая медленная и для ускорения этой операции нужно использовать прямые запросы SQL . Подобные инструменты можно найти на Инфостарте.  Есть еще один момент, если мы удалим данные таким способом, то объекты удалятся быстро, но без контроля на ссылочную целостность.  Соответственно, в наших документах вода остатков и других документах появятся строки типа «Объект не найден….».

У меня стояла задача оставить эти документы в непроведенном виде для информационных целей.

Для этого была написана обработка, которая сняла с проведения и перенесла на дату свертки  все документы участвующие в движениях в документах корректировки регистров.

После чего, используя обработку по удалению документов и движений через SQL запросы, удалить все до даты свертки (журналы документов, документы, регистры накопления, регистры  сведений и т.д.).

Примечание:

 - по регистрам сведений нужно чистить только периодические. Если регистр не периодический, то он скорее всего очистится полностью.

 

6.Активизаровать движения документов корректировки записей регистров обработкой «СверткаБазы.epf».  При этом обработка эти документы переносит на предыдущую дату (это удобно для сверки остатков в двух базах).

7.Перерасчитать итоги

8.Проверить корректность ввода остатков и исправить (для этой цели можно привлечь сотрудников бухгалтерии)

9.Перенести документы из рабочей базы в новую базу. Эту процедуру можно делать уже сразу после создания копии. Т.е. если ежедневно в базе создается много документов, то перенос документов лучше делать параллельно, чтобы дополнительное время на это не тратить.

10.Пустить пользователей в новую базу. Для этого лучше переименовать  базы на сервере 1с, чтобы для пользователей переход был безболезненным.  Т.е. старую базу называем как угодно а новую (свернутую) базу переименовываем в старую. 

 

Оригинал статьи: http://torosian.ru/work/public_id/?article=522

 

Примечание!

Как известно, при непосредственном удалении объектов не происходит контроль ссылочной целостности.
Соответственно, после удаления объектов в текущей базе остаются объекты ссылающиеся на несуществующие объекты ("Объект не найден").
У меня задача не стояла, чтобы эти объекты были в свернутой базе. Но битые ссылки могут отрицательно сказаться и на разного рода обмены между базами, и на другие процессы.
По этому я их перенес в свернутую базу, но после того как базу свернул.
1.Сделал правила обмена, которые переносят документы (только номер, дата в непроведенном виде).
2.Перенес все документы которые встречались в документах ввода начальных остатков.   
Эту процедуру можно делать после свертки, но желательно инструменты подготовить заранее.

См. также

Оптимизированная свертка Бухгалтерии 3.0

Свертка базы Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Платные (руб)

Расширение позволяет за 1-2 дня свернуть базу с десятками миллионов документов. Использует оптимизированный алгоритм определения документов, на которые нет ссылок, для последующего удаления 16 фоновыми заданиями. Не помечает документы на удаление.

38400 руб.

08.02.2024    480    7    0    

2

Удаление данных с отбором и построением дерева ссылок в базах 1С 8.1-8.3 УТ 10.3./11, БП 2/3, ЗУП 2.5/3, КА 1.1/2, УНФ 1.6/3.0

Чистка данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:Управление торговлей 10 1С:Управление торговлей 11 Платные (руб)

Данные обработки помогут Вам легко и, главное быстро, выполнить удаление любых данных в Ваших базах 1С на платформах 8.1-8.3. Обработки помогут легко просмотреть связи ссылок в виде дерева, выбрать что удалять, а что нет, используя любые отборы. Это позволит уменьшить объем лишней и не нужной информации в справочниках и документах, планах видов характеристик и др. объектах и облегчит работу с данными пользователям и Вам. Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. (Обновление от 04.10.2023, версия 4.2)

9600 руб.

22.02.2013    135908    248    144    

418

Многофункциональная выгрузка из 1С:УТ 11/ УТ 10 в 1С:БП2, БП3 (соответствия товаров, контрагентов, складов, статей ДДС)+Свёртка по НДС

Обмен между базами 1C Оптовая торговля Свертка базы Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Хотите точно знать, что вы выгружаете? Хотите сворачивать товары по НДС или фильтровать товары по доп. реквизиту? Вы волшебник, которому необходимо превращать одних контрагентов в других? Хотите при выгрузке превратить группу товаров в один? Или просто нужен удобный OLE обмен между 1C:Управление торговлей (ред. 11 или 10) и 1С:Бухгалтерия предприятия (ред. 2 или 3). Тогда эта обработка для вас!

10900 руб.

19.04.2013    168416    350    395    

327

Универсальное выборочное удаление данных из базы 1С (любые конфигурации на упр.формах: БП 3.0, УТ 11, КА 2, ERP, УНФ, ЗУП 3, Розница и т.д.)

Чистка данных Платформа 1С v8.3 Управляемые формы 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Обработка позволяет удобно выборочно удалить данные из базы 1С. Это могут быть как неиспользуемые элементы справочников, так и неактуальные организации. При этом есть возможность провести анализ пересечений документов с другими организациями и таким образом уберечься от того, что при удалении обороты по другой организации изменятся.

3350 руб.

28.11.2019    24308    46    16    

58

SALE! 10%

Выборочное удаление организаций из баз (управляемые формы), с удалением всех ссылающихся на эти организации данных

Чистка данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Позволяет удалить организации из любых программ на управляемых формах (БП 3.0, УТ 11, КА 2, ERP 2, ЗУП 3.0, УНФ, Розница 2.0 и пр.). Главное требование - программа должна содержать справочник "Организации". Реализован самый быстрый алгоритм непосредственного удаления объектов. Работает даже на базах большого размера. Для ускорения работы алгоритма не запускается проверка контроля ссылочной целостности. Проверку учета можно запустить отдельно с помощью дополнительной обработки. Необходимо перед удалением самостоятельно проверить базу на наличие перекрестных ссылок разных организаций в одном документе. Эту дополнительную обработку проверки перекрестных ссылок по запросу предоставляем бесплатно нашим покупателям.

3980 3582 руб.

16.03.2015    113696    181    75    

217

Обрезание базы 1С

Свертка базы 8.3.8 Конфигурации 1cv8 Россия Управленческий учет Платные (руб)

Механизм обрезания базы 1С. Описан процесс переноса среза остатков в копию базы. Представлено прикладное решение - обработка по переносу данных. Реализован способ обмена между базами без длительного отключения рабочей базы.

7200 руб.

27.03.2023    4166    11    2    

13

Замена Номенклатуры+Характеристики

Чистка данных Логистика, склад и ТМЦ Платформа 1С v8.3 План видов характеристик 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Настраиваемая обработка, позволяющая заменить пару: Номенклатура+Характеристика в документах, их движениях и независимых регистрах сведений. Без перепроведения. Поможет, если вы по каким-то причинам решили отказаться от характеристик

3600 руб.

04.08.2015    41107    88    70    

49

Удаление битых ссылок 1С в базе без монопольного режима

Чистка данных Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Если в вашей информационной базе крутится очень много данных, или база должна быть доступна 24/7 (как в моем случае), или же вы боитесь запускать тестирование и исправление, НО существует потребность удалить битые ссылки, тогда эта обработка сможет Вам помочь. Обработка выявляет битые ссылки как в самих объектах метаданных, так и в их табличных частях(!), а так же может их удалить.

2400 руб.

23.08.2021    9256    15    3    

20
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. mizerok1978 17.06.13 23:21 Сейчас в теме
в целом не понятно чем ты там так долго занимался если создаются доки для хранения стартовой инфы туда закидываются последние срезы по регистрам сведений и накопления м досвидос!!! пытался подобное делать в процессе работы внемономпольном режиме (главное чтобы шев не кричал где мои деньги:)))
5. setrak 150 18.06.13 10:21 Сейчас в теме
(1) создание документов ввода начальных остатков делается относительно быстро, медленнее происходит удаление объектов. и потом 2.5 рабочих для этого процесса совсем немного. Можно разными путями прийти к цели, но наиболее безболезненным я посчитал именно этот. перенос движений в чистую базу не подходит, т.к. корректировка документов в 1С допустима задним числом и такие корректировки, к сожалению, пользователи периодически делают. И отбирать такое право нельзя!
2. Bujum 227 18.06.13 05:12 Сейчас в теме
В базе такого размера нет смысла удалять документы. Проще (и быстрее) сделать третью (пустую) базу УТ и уже в нее затащить доки остатков (справочники, регистры сведений) из первой базы и оперативные доки из второй базы.

2. Создать полный план обмена для выгрузки в идентичную конфигурацию (можно делать параллельно формирования остатков)

Зачем тратить время? Базы идентичные - можно просто затащить всё (и остатки из одной базы и обороты из другой) с помощью ВыгрузкаЗагрузкаДанныхXML.epf с ИТС или любой из вариаций этой обработки с этого сайта.
purgin; kazann; ixijixi; sergelemon; serg_gres; buch-a; kuza_87; +7 Ответить
6. setrak 150 18.06.13 10:23 Сейчас в теме
(2) Bujum,
1.Изначально рассматривались разные варианты.
Вариант создания пустой базы и переноса туда остатков и документов сразу отпал по следующей причине:
Нужно было оставить 1.5 года. т.е. нужно было перенести документы за 2 года и их провести. Учитывая то, что часто случайное перепроведение прошлого периода меняет текущие остатки (себестоимость, взаиоморасчеты, валовая прибыль и т.д.), то при таком способе свертки получить корректные остатки на текущий день просто нереально. Т.е. нужно было еще и остатки сводить.
А кто говорит что быстро можно затащить в чистую базу документы за 1.5 года и радоваться результату, тот значит либо этого вообще не делал, либо делал но не с большими базами.

2.Методов для свертки можно придумать много, я сделал таким образом. После недели работы с свернутой базы, результат все еще радует.
frkbvfnjh; 1Cynep4eJIoBek; +2 Ответить
3. Bujum 227 18.06.13 05:36 Сейчас в теме
На самом деле 1С могла бы прямо в платформе организовать двухступенчатую форму хранения данных - архив и оперативный период. Это дало бы скорость проведения в оперативном периоде (где период можно было бы установить тот который нужен: месяц, 2 и т.д.) и возможность формировать отчеты за любой период - ведь не все могут смириться с невозможностью построить аналитические отчеты сразу за весь период, а не лепить отчет из нескольких.
Можно сделать это самостоятельно в двух базах и обращаться ко второй через COM, но основной косяк будет в том, что все нужные отчеты надо переписывать - это уже затраты как по времени, так и в ден.выражении. Да и скорость формирования будет не та...
Stim213; 1Cynep4eJIoBek; setrak; +3 Ответить
4. comol 5051 18.06.13 09:35 Сейчас в теме
Почему "-"
1) 350 ГБ ещё не тот размер на котором SQL перестаёт нормально работать, и который трудно обслуживать. Посмотреть структуру таблиц, поделить на секции и всё, поэтому сия рекоммендация - зло.
2) Нужно почитать Infostart - решения для сверки есть приличнее.
3) Новая база и затащить остатки со справочниками - более правильное решение.
7. setrak 150 18.06.13 10:49 Сейчас в теме
(4) comol,
1.Здесь речь не идет об оптимизации на уровне SQL. Задача стояла именно в свертке базы, причины были не только в медленной работе 1С.
2.решений для свертки я почитал много на инфостарте, некоторые варианты пытался применить на тестовой базе. Подходящего решения не нашел, ибо если бы нашел подходящий вариант, то воспользовался бы с удовольствием.
3.Я уже писал, что задача стояла оставить данные за последние 1.5 года. Вариант переноса документов и/или движений в новую базу не подходил.
8. Gilev.Vyacheslav 1910 18.06.13 11:03 Сейчас в теме
имхо подобные вещи лучше подавать с учетом 24х7, без остановки производства и т.п. нюансами
просто "сверток" тут много )
foka_1s; setrak; +2 Ответить
9. setrak 150 18.06.13 11:31 Сейчас в теме
(8) Gilev.Vyacheslav, согласен. Я здесь описал скорее частный случай со своими нюансами. Но возможно сама идея кому нибудь еще поможет.
Мне этот метод устраивает еще тем, что сделав один раз инструмент, могу периодически безболезненно свертывать базу.
17. anchovy 24 20.06.13 18:08 Сейчас в теме
(8) Gilev.Vyacheslav, согласен что почитать вариант 24х7 было бы интересней, тем более если в виде нюансов выступают постоянные обмены с другими информационными системами (Вячеслав, может вы нам напишите что-то подобное?). Автору нужно было назвать статью не "Как свертывать большую базу ..." а "Как я свернул свою большую базу". Тогда глядишь и вопросов было бы меньше. А так велосипед как велосипед.
Lyolik; адуырщдв; setrak; +3 Ответить
10. ZVN 122 18.06.13 15:04 Сейчас в теме
Весь сыр бор о правильности или не правильности выбранного метода, я считаю от того что 1С глубоко плевать на проблемы пользователей! Это видно уже в том что они не сохранили свою обработку из 8.1 для бухгалтерии 8.2.
Да и их правила перехода с одной конфигурации на другую, сплошной геморрой. Я так и не смог обновить бухгалтерию 2.0.48.9 на бухгалтерию 3.0.21.14(Видите ли появились лишние документы которые не удаляются). Нужно искать причины и способы почему это не работает.
ПОЭТОМУ КАЖДЫЙ ВЫНУЖДЕН СТРОИТЬ СВОЙ ВЕЛОСИПЕД.
Я считаю что автор этой статьи построил то который был ему нужен.
Камни в чужой огород кидать всегда легче, чем самому пахать. И советы давать НУ ТУТ НАМ "РОССИЯНАМ" РАВНЫХ НЕТ.
frkbvfnjh; LIL_PIVO; anchovy; setrak; +4 Ответить
11. setrak 150 18.06.13 15:27 Сейчас в теме
(10) ZVN, как говорится, в споре рождается истина))) только не всегда комментарии пишутся по существу.
12. ZVN 122 18.06.13 21:11 Сейчас в теме
(11) setrak,

<quote>
Остатки формировал типовой обработкой «СверткаБазы.epf».
</quote>

Подскажите где можно найти типовую обработку «СверткаБазы.epf» для Бухгалтерии 8.2
13. setrak 150 19.06.13 11:07 Сейчас в теме
(12) ZVN, Обработку СверткаБазы.epf можно найти на диске ИТС.
14. Емельянов Алексей 158 19.06.13 11:28 Сейчас в теме
Рассматривали такой вариант:
Удалять не весь старый период, а например по одному году в день? Днем запуск обработки для ввода остатков на конец года, ночью удаления документов за год.
15. setrak 150 19.06.13 11:35 Сейчас в теме
(14) Емельянов Алексей, Я пробовал брать небольшой период. т.е. постепенно обрезать до нужного периода. но типовая обработка все равно долго делала. т.е. если сравнить весь объем трудозатрат, то потратил бы намного больше времени.
16. Емельянов Алексей 158 19.06.13 13:42 Сейчас в теме
18. lsp71 24.09.13 16:57 Сейчас в теме
Чтобы успеть что-то сделать за ночь (или за выходные) можно сворачивать не все регистры накопления сразу, а часть. Сразу же после свертки переносить/активизировать остатки по свернутым регистрам. База останется работоспособной. То же самое по поводу удаления документов.
19. demo-05 144 22.09.15 08:15 Сейчас в теме
Всем привет!
А зачем сидеть ночь или сутками над сверткой трепыхать? Не проще ли сначала сделать распределенку, всех туда и пусть спокойно работают, в то время как можно недели 2 посворачивать в спокойном рабочем режиме? Потом загнать простым обменом то, что они наработали в свернутую. Велосипед не нужен, нам бы самокат :-)
20. shnirek 16.06.16 17:53 Сейчас в теме
1) Кто говорит, что можно перенести документы в новую базу, ни когда этого не делали на больших объемах.
2) За битые ссылки минус, косяк в sql запросах.
Tigriss; timurhv; Valgord; +3 Ответить
21. aster-x 07.12.23 09:53 Сейчас в теме
всем привет. Тема старая, не сильно надеюсь получить ответ, но все же...

А как вы решали вопрос с корректировками реализация? Ведь для их корректной работы требуется сам документ реализации.
22. setrak 150 07.12.23 15:05 Сейчас в теме
(21) на тот момент корректировок реализаций не существовало еще. т.е. такого понятия не было, соответственно, этот вопрос никак и не решали)
Оставьте свое сообщение