Свернуть базу 1с упп
В данной статье описывается зачем делать свертку базы и на конкретном примере показано, как выполнить свертку информационной базы 1С:Бухгалтерия 3.0 штатными средствами.
Зачем делать свертку
Вначале немного теории.
Программа 1С:Предприятие 8 может эксплуатироваться в двух режимах:
- файловый (база расположена на компьютере пользователя или в локальной сети),
- клиент-серверный (база расположена на отдельном сервере).
Данная статья актуальна только для первого варианта. В случае файлового размещения у программы есть существенное ограничение - размер одной таблицы базы данных не может превышать 4 Гб. Как только размер любой таблицы базы данных (а в случае с конфигурацией 1С:Бухгалтерия 3.0 самой "тяжелой" таблицей является регистр бухгалтерии) превысит 4 Гб, база перестанет запускаться, а при приближении к данному порогу вы ощутите заметное снижение производительности программы (другими словами, появятся "тормоза").
Так вот свертка позволяет уменьшить размер таблиц базы данных (в первую очередь регистра бухгалтерии). Операция свертки базы заключается в следующем:
- определяется дата, на которую нужно свернуть базу (как правило, это начало года),
- программа определяет остатки по каждому бухгалтерскому счету на эту дату и вносит эти остатки путем создания документов Операция,
- все движения по всем регистрам системы до указанной даты аннулируются (за исключением тех, которые выбраны при настройке свертке),
- документы, заведенные ранее этой даты, удаляются (в случае если движения этих документов полностью очищены) или помечаются на удаление,
- документы, заведенные после указанной даты, в системе остаются в первоначальном виде.
Данная операция позволяет существенно уменьшить размер регистра бухгалтерии в программе.
Как делать свертку
В разделе Администрирование открываем обработку свертки:
Появляется такое окно:
Устанавливаем признак Создать резервную копию, указываем данные пользователя, под которым нужно сделать копию, и каталог, куда копию сохранить. Нажимаем Далее. В появившемся окне выбираем Да:
Натыкаемся на ошибку платформы.
При перезапуске ситуация повторяется. Сделаем копию вручную. Идем в конфигуратор:
Выбираем путь сохранения копии и даем название:
Возвращаемся в обработку свертки. Признак создания копии снимаем. Нажимаем Далее:
На следующем экране необходимо выбрать год, на начало которого делается свертка. Также желательно установить признак Установить дату запрета, чтобы ранее 2016 г в базе уже ничего не вводили. Из списка организаций можно выбрать только некоторые, по которым делать свертку, а можно свернуть базу по всем организациям:
На следующем экране видим как программа планирует обработать таблицы базы данных (некоторые таблицы система предлагает свернуть, некоторые - оставить без изменения). Например, без изменению останутся многие регистры сведений и регистры накопления, связанные с НДС. Нам это не критично, в приоритете свертка регистра бухгалтерии.
В следующем окне программа выводит список документ Операция, которые будут созданы для ввода начальных остатков на 31.12.2015 по всем счетах бухгалтерского учета, на которых есть остатки. Идем далее.
На следующем экране выводится сводная таблица с анализом корректности начальных остатков на начало 2016 года. Корректность проверяется путем сравнения с начальными остатками на момент, предшествующий свертке. На приведенном скриншоте видим, что отклонений нет.
Проверим на всякий случай также таблицу сверки по регистрам сведений и накопления:
На следующем экране программа предупреждает о начале процедуры удаления документов до 2016 года. Соглашаемся
Обращаю ваше внимание: ввиду того, что движения по регистрам накопления в части НДС и по многим регистрам сведений остались без изменения, то и документы, сделавшие движения по таким регистрам, также в системе остались.
Пусть вас это не смущает - наша задача была "облегчить" регистр бухгалтерии, и мы ее добились.
При необходимости вы можете на сайте пройти полноценное (и бесплатное) обучение Бухгалтерии 3.0
Вас может заинтересовать
Расширение позволяет настраивать по произвольным правилам автоматическую отправку писем на электронную почту с возможностью прикрепления печатных форм документов.
В данной статье показаны принципы, по которым формируются номера документов, а также влияющие настройки системы 1С:Предприятие 8.3
Из этой статьи вы научитесь удалять дубли в любых справочниках информационной базы, используя типовые возможности конфигурации.
Как свертывать большую базу 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.Перенес все документы которые встречались в документах ввода начальных остатков.
Эту процедуру можно делать после свертки, но желательно инструменты подготовить заранее.
В процессе свертки информационной базы данных в ней выполняются следующие действия:
- формируются документы ввода остатков на дату, когда осуществляется свертка;
- удаляются документы и движения по регистрам, которые были в программе до даты свертки включительно.
Свертка информационной базы данных позволяет:
- ускорить работу системы;
- уменьшить размер 1С ИБД.
ВНИМАНИЕ! Перед тем, как приступить к свертке информационной базы необходимо:
- выполнить предварительную тестовую свертку на копии рабочей 1С ИБД;
- если тестовая свертка завершилась успешно, только тогда можно приступать к свертке рабочей информационной базы данных, предварительно выполнив ее резервное копирование.
Для свертки информационной базы данных используется обработка для конфигурации 1С: Бухгалтерия 8 (редакция 1.6), которая есть на диске 1С ИТС. Для редакции 2.0 данная обработка не подходит, поскольку в ней нет документа «Корректировка записей регистров». Заказать обработку 1С можно у нас на сайте.
Пошаговая инструкция по свертки базы
- Сначала необходимо создать резервную копию информационной базы данных. Затем зайти в базу, используя режим 1С: Предприятие, и проверить все ли документы выполнены по закрытию месяца на дату свертки.
- Далее необходимо сделать отчет Оборотно-сальдовая ведомость за тот период, за который планируется произвести свертку базы.
- Используя команду «Открыть» (меню «Файл»), загружаем внешнюю обработку Свертка базы 2.0.
- На закладке «Общие настройки» необходимо ввести нижеперечисленные данные.
- Дата свертки. День необходимо указать до последней секунды, входящей в сворачиваемый период. Например, 30.06.2010 23: 59:59.
- Количество строк в документах ввода остатков. Этот показатель определяет максимальное количество строк в каждом документе ввода остатков, который будет сформирован обработкой. По умолчанию он будет равен нулю, что означает, что на каждый регистр будет создан документ с неограниченным количеством строк.
- «Не обрабатывать» - свертка не выполняется;
- «На дату» - сворачиваются только те объекты, дата которых предшествует дате свертки. Если задать параметр «Дата окончания», то обработка свернет те объекты, дата которых предшествует дате окончания. Если же параметр «Дата окончания» не указан, то осуществляется на дату свертки, которая указана на закладке «Общие настройки».
- «За период» - сворачиваются все объекты, дата которых лежит в заданном интервале времени.
- «Очистить» - все объекты, дата которых предшествует дате свертки, удаляются. Документы ввода остатков не формируются. Этот режим доступен исключительно для регистров сведений.
- Для всех документов, регистров и бухгалтерии выставляется режим свертки «На дату».
- Для периодических регистров сведений, для которых не является регистратором документ «Корректировка записей регистров», определяется режим свертки «Не обрабатывать», а для остальных регистров – режим «На дату».
- Для непериодических регистров сведений по умолчанию ставится режим свертки «Не обрабатывать».
- Помимо этого, все настройки можно сохранить, выгрузить в файл и загрузить в обработку. Для этого используются кнопки «Выгрузить в XML» и «Загрузить из XML».
- В меню «Операции» нужно выбрать команду «Удаление помеченных объектов».
- В верхней части окна содержится диалог с перечнем обнаруженных в 1С ИБД объектов, помеченных на удаление. Любой из них пользователь может открыть и просмотреть. С использованием пометок пользователь также может определить, какие объекты необходимо проверить на возможность удаления. Определить, есть ли ссылки на удаляемые объекты, поможет кнопка «Контроль». Тщательно проверив объекты для удаления, и не выявив ошибок, нужно запустить процесс удаления объектов, нажав кнопку «Удалить».
По окончанию свертки базы необходимо убедиться, что все прошло правильно. Для этого открываем Оборотно-сальдовую ведомость и сравниваем ее с той, которую сохранили до выполнения свертки. Если они идентичные, то свертка базы выполнена корректно.
Рекомендуем еще статьи про 1С: Бухгалтерию 8:
Мы расскажем о нашем опыте: как оптимизируем базы 1С размером сотни гигабайт и при этом укладываемся в несколько часов — инструменты, подготовка, правильный порядок действий.
«1С-ИжТиСи» за 3 года свернула 34 базы общим размером > 10 терабайт. Свёртку для УПП, УТ 10, КА 1, БП 2 и 3 мы делаем с минимальным простоем системы — достаточно технологического окна в 1 час. На вебинаре мы расскажем о нашем опыте: инструменты, подготовка, правильный порядок действий.
Да кому она нужна,
эта свертка?!Наверное, никому, кроме компаний, у которых начались проблемы с базой 1С:
- замедление работы 1С;
- сложности бэкапа базы из-за её размера;
- накопилась масса неактуальной информации, мешающей работе пользователей;
- требуется обновление «старой» конфигурации.
Если база свыше 50 Гб или учёт в ней ведется более 5 лет, вопрос о нужности свёртки обычно меняется на: «Как сделать свёртку и не получить проблем?»
1С:Управление производственным предприятием.
Свертка с 320 Гб до 130 Гб.
Технологическое окно — 1 час.Кстати, о проблемах
Остановка информационной системы предприятия зачастую неприемлема для бизнеса. «ТОП3» проблем, которые не позволяют выполнить оптимизацию базы:
Отсутствие длительных технологических окон
Работа пользователей 24 часа 7 дней в неделю.
Размер базы 1С
Объём столь велик, что при свертке недоступность базы может растянуться на дни и даже недели. Не говоря уже о том, что это нелегкая задача даже для мощного сервера.
Сложность задачи свёртки
Большая вероятность потерять данные при работе неквалифицированного специалиста.
Теперь о хорошем: все эти проблемы решаемы.
1С:Мясокомбинат
Свертка с 226 Гб до 79 Гб.
Технологическое окно — 6 часов.Сравним медленный и неэффективный для больших баз инструмент с быстрым и обладающим возможностями свертки по частям.
Делаем всё правильно
Мы свернули
горыбазы общим объемом почти 10 терабайт. И нам есть, что рассказать об этом.- Как подготовиться к свёртке: 12 обязательных пунктов, которые нужно учесть перед началом работы.
- Как оценить итоговый размер базы и время на обработку, а также выявить проблемы до начала проекта.
- Как настроить процесс под конкретные критерии заказчика.
- Как уложиться в мааааленькое технологическое окошко. Или разделить процесс работы с рабочей базой на несколько этапов без проблем для заказчика.
1С:Комплексная автоматизация
Свертка со 190 Гб до 100 Гб.
Технологическое окно — 6 часов.«1С-ИжТиСи» — дочерняя компания фирмы «1С».
За 3 года мы свернули более 30 баз общим объемом 10 373 гигабайт
Полина Иванова,
руководитель проекта, ведущий разработчикНашими технологиями пользуются свыше 500 компаний-клиентов, включая 1С:Франчайзи, по всей России и СНГ — «Газпром бурение», «Черкизово», «1С-Рарус-СПб», «ЭР-Телеком Холдинг», «Башбетон» и многие другие.
Бонус для тех,
кто дочитал до концаЛучше 1 раз попробовать, чем 100 раз прочитать.
Абсолютно безвозмездно сделаем демо-свертку, чтобы вы могли узнать, насколько наши услуги будут выгодны именно для вас.
Заполните форму — а всё остальное организуют наши специалисты.
Возникла очередная необходимость свернуть/обрезать сильно распухшие базы 1С УПП и УТ. Первый раз это делалось в консоли самой SQL обрабатывая каждую таблицу вручную. Забыл упомянуть, предприятие работает в режиме 24/7, и потому необходимо было все делать на ходу и не сильно блокируя пользователей. Сначала написал простенькую обработку по формированию строки t-sql из 1С и её выполнению, а потом это разрослось до выложенной обработки. По-любому в ней полно косяков, но размеры баз удалось сократить на порядок с 200 до 20 гиг каждую.
В первый же строчках хочу предупредить, об опасности использования данной обработки, её действия деструктивны, испытывайте на кроликах или просто таскайте куски кода.
По первым четырем полям обработки наверняка все понятно, это соединение с базой на сервере.
Если эти поля заполнены верно, то после нажатия кнопки "Обновить" в табличную часть выведется информация по таблицам базы данных отсортированная в порядке уменьшения занимаемого размера в килобайтах. Сортировка позволяет оптимизировать ваше время и не заниматься легкили таблицами сразу взявшись за монстров и уменьнив базу за первый день в 2-3 раза.
При активации строки таблицы жирным шлифтом выводится информация и минимальной дате записей в в базе по текущей строке и если это регистр остатков, то дата расчитанных итогов.
Поле "Мин.дата для р.сведений" не сосвем соответвует названию. Именно на эту дату до времени 00:00 будут удалены записи в sql таблице.
Флаг переносить остатки активирует кусок кода, отвечающий за ввод сальдо по регистру остатков. А именно, в нашей конфигурации есть документ фактически без каких либо реквизитов, но являющийся регистратором для любого вида движений. На дату обрезки снимаются остатки, создается документ регистратора остатков, записываются сами остатки, как приходное движение и этот документ скидывается в корень диска "С:" вашего компа в виде xml файла. Сразу после записи файла движения документа удаляются, дабы нормализовать остатки и минимизировать время базы с неактуальными остатками. После удаления строк таблицы базы документ вновь водружается на свое законное место из файла вместе со своими остатками. А вот дальше есть неприятный момент, текущие остатки увеличились на количество документа введенного сальдо. Необходиме пересчитать итоги. И вновь в следствии минимальной блокировки пользователей, пришлось пересчитывать итоги постепенно, помесячно, с паузами. При не установленной галочке "Не пересчитывать итоги" обработка начнет помесячно устанавливать дату расчитанных итогов на минус 2 года назад и затем обратно на текущую дату. Если итоги вам не критичны, можете установить галочку "не пересчитывать итоги" и заняться этим позже, нажимая кнопки на нижней панели.
Также, если вас вообще не интересуют остатки по текущему регистру накопления можете вообще не переносить остатки (не ставить галочку), бывают и такие регистры.
Кстати, регистры сведений также удачно режутся. Обработка находит первое попавшееся поле с типом даты и использует его для отфильтровки удаляемых записей.
Само действие удаления строк таблиц базы данных sql запускается двойным кликом по строке.
PS. Особо не ругайтесь, писал на коленке на скорую руку по мере обрезки базы. Ляпы есть, но они не привели к порче баз и предприятие спокойно продолжает работать со значительно меньшими затратами времени.
PPS. Для уменьшения времени блокировки базы записи удаляются по 1000 строк. И еще, в случае проблемы при обрезке (вылет, отключение света) если вы используете перенос остатков, то сохраненный xml можно без труда втягивать в базу при любой необходимости буквально двумя строчками кода (смотрите в обработке). Такое же водружение остатков на место можно сделать и из резервной базы, наверняка уже лежащей у вас рядом для страховки.
Читайте также:
- На закладке «Общие настройки» необходимо ввести нижеперечисленные данные.