Что такое свертка информационной базы данных и для чего она нужна? Как делать свертку базы Когда стоит проводить свертку

Вначале немного теории.

Программа 1С:Предприятие 8 может эксплуатироваться в двух режимах:

  • файловый (база расположена на компьютере пользователя или в локальной сети),
  • клиент-серверный (база расположена на отдельном сервере).

Данная статья актуальна только для первого варианта. В случае файлового размещения у программы есть существенное ограничение - размер одной таблицы базы данных не может превышать 4 Гб . Как только размер любой таблицы базы данных (а в случае с конфигурацией 1С:Бухгалтерия 3.0 самой "тяжелой" таблицей является регистр бухгалтерии) превысит 4 Гб, база перестанет запускаться, а при приближении к данному порогу вы ощутите заметное снижение производительности программы (другими словами, появятся "тормоза").

Так вот свертка позволяет уменьшить размер таблиц базы данных (в первую очередь регистра бухгалтерии). Операция свертки базы заключается в следующем:

  • определяется дата, на которую нужно свернуть базу (как правило, это начало года),
  • программа определяет остатки по каждому бухгалтерскому счету на эту дату и вносит эти остатки путем создания документов Операция ,
  • все движения по всем регистрам системы до указанной даты аннулируются (за исключением тех, которые выбраны при настройке свертке),
  • документы, заведенные ранее этой даты, удаляются (в случае если движения этих документов полностью очищены) или помечаются на удаление,
  • документы, заведенные после указанной даты, в системе остаются в первоначальном виде.

Данная операция позволяет существенно уменьшить размер регистра бухгалтерии в программе.

Как делать свертку

В разделе Администрирование открываем обработку свертки:

Появляется такое окно:


Устанавливаем признак Создать резервную копию , указываем данные пользователя, под которым нужно сделать копию, и каталог, куда копию сохранить. Нажимаем Далее .В появившемся окне выбираем Да :



Натыкаемся на ошибку платформы.


При перезапуске ситуация повторяется. Сделаем копию вручную. Идем в конфигуратор:



Выбираем путь сохранения копии и даем название:


Появится сообщение:


Возвращаемся в обработку свертки. Признак создания копии снимаем. Нажимаем Далее :


На следующем экране необходимо выбрать год, на начало которого делается свертка. Также желательно установить признак Установить дату запрета , чтобы ранее 2016 г в базе уже ничего не вводили. Из списка организаций можно выбрать только некоторые, по которым делать свертку, а можно свернуть базу по всем организациям:


На следующем экране видим как программа планирует обработать таблицы базы данных (некоторые таблицы система предлагает свернуть, некоторые - оставить без изменения). Например, без изменению останутся многие регистры сведений и регистры накопления, связанные с НДС. Нам это не критично, в приоритете свертка регистра бухгалтерии.


В следующем окне программа выводит список документ Операция , которые будут созданы для ввода начальных остатков на 31.12.2015 по всем счетах бухгалтерского учета, на которых есть остатки. Идем далее.


На следующем экране выводится сводная таблица с анализом корректности начальных остатков на начало 2016 года. Корректность проверяется путем сравнения с начальными остатками на момент, предшествующий свертке.На приведенном скриншоте видим, что отклонений нет.


Проверим на всякий случай также таблицу сверки по регистрам сведений и накопления:


На следующем экране программа предупреждает о начале процедуры удаления документов до 2016 года. Соглашаемся


После удаления документов появляется сообщение о том, что свертка прошла успешно.

Обращаю ваше внимание: ввиду того, что движения по регистрам накопления в части НДС и по многим регистрам сведений остались без изменения, то и документы, сделавшие движения по таким регистрам, также в системе остались.

Пусть вас это не смущает - наша задача была "облегчить" регистр бухгалтерии, и мы ее добились.

При необходимости вы можете на сайте пройти полноценное (и бесплатное)

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

Для чего нужна свертка?

Работа с информационными базами 1С во многих компаниях осуществляется на протяжении длительного количества времени, что в свою очередь приводит к увеличению размеров базы. Ее рост происходит еще быстрее в крупных организациях, осуществляющих большое количество операций. Кроме того, зачастую одна и та же база обслуживает несколько организаций. В данном случае ее размер может достигать больших значений. В некоторых случаях, база данных может достигать объема в 4-5 гигабайт, всего за несколько лет работы.

Такое положение дел приводит к некоторым сложностям, таким как:

  • Замедление скорости работы с программой;
  • Рост времени создания резервной копии базы данных;
  • Накопления большого количества старых документов, которые могут мешать пользователю при работе с программой.

Существует и критический объем базы данных, при котором и вовсе работа с ней становится невозможной, так как программа просто не откроется. Для файловой базы критический объем равен 12 гигабайтам.

Для того чтобы избежать всех перечисленных выше проблем необходимо свернуть базу 1с. Суть этой процедуры заключается в уменьшении рабочего объема, путем осуществления архивации и компоновки прошлых документов, а также удаления той информация, которая является ненужной.

Как осуществляется свертка?

Чтобы сделать свертку базы данных, необходимо выбрать подраздел учета под названием «Администрирование». Затем, на панели действий следует найти группу «Сервис». В ней вы увидите кнопку, которая называется «Другие команды…». Именно на нее нужно кликнуть, после чего на экране появится специальная форма, на которой появится список последовательных операций. Дело в том, что для того, чтобы 1с свертка базы была выполнена правильно, следует осуществлять данную процедуру в несколько этапов. После успешного прохождения каждого этапа, соответствующий пункт в списке отмечается зеленым цветом.

Свертка базы 1с осуществляется в шесть ступеней:

  1. Создание резервной копии;
  2. Настройка операции;
  3. Формирование остатков;
  4. Просмотр операции;
  5. Проверка;
  6. Контроль старых документов.

Более детально рассмотрим каждый пункт по отдельности.

Создание резервной копии

Перед осуществлением любых операций над базой данных следует осуществлять резервное копирование, чтобы сохранить информацию в случае непредвиденных обстоятельств. Свертка информационной базы не является исключением, именно поэтому ее первым этапом является создание резервной копии.

Для того чтобы начать процедуру следует поставить флажок в соответствующем поле. Под ним находится два поля:

  • Администратор - имя пользователя ИТС;
  • Пароль для пользования услугами ИТС.

Ниже вам будет предложено выбрать каталог, в который будет сохранена резервная копия.

После этого, программа даст вам предупреждения, что для успешного резервного копирование следует перезапустить программу. Как итог, спустя некоторое время, длительность которого зависит от объема БД, резервная копия будет создана, пункт меню подсветится зеленым, и вам можно будет переходить к следующей операции.

Настройка

Данный этап является самым главным и определяющим, к нему следует подходить наиболее внимательно. Вам понадобится осуществить настройку осуществляемой процедуры. Она включает в себя определение следующих параметров:

  • Период, к началу которого свернуться остатки;
  • Количество и наименования организаций, по отношению к которым будет осуществлена свертка базы;
  • Дата запрета на изменение данных.

Рекомендуется осуществлять процедуру сразу для всех организаций, которые обслуживает данная БД. Тем не менее, если это недопустимо по каким-то причинам, можно свернуть базу 1с и для определенных организаций. В таком случае, при появлении необходимости, свертку для остальных организаций можно сделать отдельно впоследствии. Также рекомендуется делать свертку к началу прошлого года, это наиболее эффективный вариант.

Формирование остатков

Формирование остатков представляет собой операцию по детальной настройке планируемой операции. В данном меню вам при необходимости нужно определить те регистры, которые следует обрезать. Они группируются по трем категориям:

  • Бухгалтерские регистры;
  • Накопительные регистры;
  • Регистры сведения.

Просмотр операции

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

Проверка

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

Удаление старых документов

Название данного пункта говорит сам за себя. Здесь осуществляется удаление всех старых документов, которые вам более не нужны. В отличие от всей остальной информации, эти документы удаляются окончательно.

Чтобы избежать удаления документов, которые могут вам понадобиться в дальнейшем, на два предыдущих пункта следует обратить особое внимание

Заключение

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

Начало года - идеальное время для свёртки базы

Со временем размер базы данных, особенно в крупных организациях, увеличивается. Когда база 1С ведется давно и занимает значительный объем, это приводит к замедлению работы.

Свёртка преследует следующие цели:

  • Ускорить работу программы
  • Сократить размер базы
  • Очистить справочники от неактуальных записей

В чем помогает свертка

Ускорить работу программы (Сократив размер базы)

Если вы не планируете увеличивать количество рабочих мест в 1С (и покупать под них новый сервер), но вас не устраивает скорость работы 1С, стоит сделать свертку базы. Это снизит нагрузку на компьютеры. Можно будет отсрочить покупку нового железа для сервера или переход от файловой версии к SQL.

Кроме того огромные базы чаще дают сбой, “падают” и в общем работают весьма ненадежно.

Скрыть данные прошлых периодов

Свертка - хороший способ скрыть информацию о работе за прошлые годы. Данные будут просто отсутствовать в базе. Это надежнее ограничения прав доступа и паролей.

Избавиться от неактуальной номенклатуры и других записей

В процессе работы в базе 1С накапливается неиспользуемая номенклатура. Она мешает при оформлении поступлений и реализаций, при выборе товара из списка. Это приводит к ошибкам и пересорту. Кроме того большое количество позиций замедляет выгрузку на автономную кассы, например, во Фронтол,когда вместе с 3 тыс. используемых товаров выгружается ещё 10 тыс. неиспользуемых. Свернув базу, вы избавитесь от старых товаров. Мы вместе со сверткой используем обработку Удаление неактуальной номенклатуры.

Неудобства работы в свернутой базе

Документы и отчеты за “свернутый период” станут недоступны. Придется иметь отдельную базу за старый период и смотреть историю там, собрать в одном отчете данные за все время уже не получиться.

Как работает свертка

Суть мероприятия следующая: выбирается дата (идеальный вариант — начало года или квартала) к примеру 1 янв 2016. На эту дату делается «снимок» остатков по всем разрезам учета (остатки ТМЦ, взаиморасчеты с покупателями, поставщиками и комиссионерами, остатки по кассам и расчетным счетам), а полученные данные выгружаются в файлы на жестком диске. Затем на основе прежней создается новая информационная база, которая содержит все необходимые справочники (номенклатура, типы цен, единицы измерения, цены, контрагенты и договоры, банки и расчетные счета, склады, кассы, материально-ответственные лица и т.д.) и путем создания соответствующих документов ввода остатков в новую базу вводятся остатки по всем разрезам учета (на основе данных из файлов, сохраненных на жестком диске) на 01.01.2016. Остатки в новой и прежней базах сверяются. Их полное совпадение служит показателем успешности проведенной работы. Если же будут небольшие погрешности, то они легко исправляются «руками».

В итоге существенно увеличивается скорость работы и, что важнее всего, - снижается риск сбоев самой программы 1С:Предприятие.

Как сделать свертку базы

В идеальном мире свертка делается с помощью специализированных обработок от фирмы 1С, которые есть на диске ИТС как для 1С 7.7, так и для версий 8.2, 8.3. При этом программа создаст документы ввода остатков, пометит на удаление ненужные документы. Справочники можно будет удалить в том случае, если они не будут задействованы в оставшихся документах. Перед тем как проводить свертку базы, нужно восстановить последовательность документов.

Важно помнить, что свертка базы обработкой с диска ИТС может производится только с типовой конфигурацией. Иначе появятся ошибки, которые будут видны не сразу. Если у вас не типовая конфигурация, для свертки базы вам лучше обратиться к опытному специалисту 1С.

Сделать свертку самостоятельно более-менее возможно в бухгалтерии и практически нереально в торговле. И тому есть масса причин, например, может удалиться нужная информация и остаться ненужная. Пользователь при этом даже знать об этом не будет, т.к. не знает как проверить.

Свертка базы 1С:Управление торговлей

Говоря о свертке 1с управление торговлей, нужно упомянуть о проблемах, которые нам часто приходиться решать.

1. Часто в программе используются те регистры, которые не нужны. Например НДС (их там штук 7 регистров). Во-первых из-за них свертка идет дольше, а во-вторых они мешают удалению документов.

2. Если используются партии товаров. В этом случае это тоже не даст удалить ряд документов. Мы можем установить по среднему, или в вводе остатков заменить документ партии на вспомогательный документ — тем самым после перепроведения очистим ссылки на удаленные документы.

3. Взаиморасчеты по документам. Мы можем перезакрыть долги или также на начало ввода остатков повесить все на вспомогательный документ.

4. Есть целая куча регистров сведений (цена, списанные товары, доступ к документам, соответствия при обмене и т.д.), которые «держат» документы и справочники.

5. Стандартное удаление работает долго. А если элементов очень много — то вообще не справляется. Мы разработали свои, более быстрые обработки для удаления ненужных документов.

Стоимость свёртки

Стоимость зависит от сложности вашей конфигурации (розница — дешевле, комплексная — дороже) и объёма данных (стоимость свёртки базы в 3 Гига и 30 Гигов будет различаться).
Чтобы узнать стоимость - оставьте заявку. Мы свяжемся с вами, проанализируем вашу базу и определим окончательную стоимость.
Средний диапазон цен - от 8 000 до 15 000 руб.

Минусы и альтернативы свёртки

Однако, свертка - довольно радикальная операция, которая удаляет данные за предыдущие годы, заменяя их на документы ввода остатков.

Главный недостаток это то, что у вас появляется несколько баз. Например «База 2011-2012» и «База 2013».

И построить один отчет, где будут выведены данные 2012 и 2013 годов не получится. Станут недоступны такие полезные вещи, как анализ продаж товаров перед заказом у поставщика или сравнение, насколько в январе 2013 года определенных товаров продалось больше, чем в январе 2012-го.

Сворачивать базы действительно имеет смысл только в двух случаях:

  1. если она действительно старая (хотя бы старше 4-5 лет)
  2. если данные нужно не просто защитить (паролями например), а надежно скрыть (удалив её физически с компьютера)

Во всех остальных случая стоит обратить внимание на альтернативы.

Альтернатива: Отключить неиспользуемые модули

Даже если вы не используте некоторые возможности программы, это не значит, что она не тратит на них ресурсы вашего компьютера.

Таких потенциально ненужных, но ресурсоемких разделов программы не много:

  • Контроль доступа на уровне записей
  • Учет остатков по организациям (в дополнение к учету остатков по складам)
  • Учет данных для книг покупок/продаж при том, что вы формируете их в бухгалтерии

Следующие возможности не используются у некоторых организаций, хотя назвать их ненужными конечно нельзя:

  • Расчет себестоимости (для расчета прибыли от продаж, маржи)
  • Расчет себестоимости в разрезе партий (при том, что в вашем достаточно расчета «по среднему»)
  • Расчеты с клиентами в разрезе расчетных документов

Для примера я провел небольшое исследование. Взял базу фирмы, которая не использует возможности по расчету прибыли. Исходный размер базы — 1.6 Гб. После удаление записей, связанных с расчетом себестоимости размер базы уменьшился до 1 Гб. После удаления всех остальных неиспользуемых таблиц, размер снизился до 0.8 Гб.

Альтернатива: Убрать с глаз долой неактуальную номенклатуру и контрагентов

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

Основное неудобство в том, что такие товары

  • 1. мешаются в списке у менеджеров, которые оформляют поступление или реализацию. Это увеличивает вероятность ошибок и пересорта.
  • 2. выгрузка на автономную кассы (во Фронтол например) происходит медленно. Т.к выгружается не 3000 позиций, которые стоят на полке, а еще 10 000 тех, которые уже несколько лет как не продаются.
  • 3. если на кассе не используются штрих-коды и кассир выбирает товар из списка, то большой список также увеличивает вероятность ошибки и пересорта.

Эти конкретные проблемы легко можно убрать и без помощи свертки.

Достаточно добавить реквизит «Архивный» в номенклатуру и автоматически проставить его у тех товаров, по которым нет движений последний год или два.

Дополнительно такой неактуальный товар можно пометить на удаление, переместить в папку «_Корзина» и добавить к наименованию «яяя_», чтобы товар не мешался в поиске по первым буквам.

На этот случай у нас припасена обработка

Альтернатива: увеличить безопасность системы

Если данные нужно скрыть, то можно использовать некоторые уловки (например, разместить рабочую базу не в своем офисе, а на удаленном сервере. Возможно даже в другой стране. А для проверяющих подготовить локальную белую и пушистую базу). Но свернуть базу конечно проще.

В случае, если защититься нужно от своих сотрудников, то на помощь придет SQL-сервер и чёткая система доступа.

Альтернатива: увеличить мощность сервера

1С 8 совместно с SQL-сервером способна нормально работать с базами огромного размера. База в 20-50 ГБ это вообще не проблема, при условии достаточно мощного компьютера.

В этой статье я расскажу об алгоритме, который используется в процессе, называемом 1с свертка базы.

Cвертка базы 1c (сворачивание базы 1с) - это процедура, применяемая для оптимизации данных, накопленных в базе 1С. Свертка базы 1с проводится для улучшения качества работы пользователей.

Причины свертки базы 1С

Давайте рассматривать теоретический вопрос о свёртке базы данных с точки зрения практического примера. Например, сегодня - 14 марта 2008 года. Я работаю с базой 1С, которая ведётся с 01 января 2003 года. База ведётся уже 5-ый год. Базу сложно обслуживать программисту (усложнение системы из-за увеличения количества элементов). С базой также сложно работать пользователям (скорость работы программы).

Как можно оптимизировать работу с базой 1С?

Программисту, по большому счёту, наплевать на объём базы, потому что программист работает не с данными, а с алгоритмами обработки данных. Проблемы при работе с большой базой данных могут возникнуть у программиста, выполняющего администрирование базы, разве что в тех случаях, когда нужно восстановить последовательность после перепроведения документа в прошлом периоде, или тогда, когда нужно перепровести все документы вследствие внесения изменений в алгоритм каких-либо расчётов. Поэтому оптимизация базы, как правило, проводится с целью повышения качества работы пользователей базы.

Функциональные особенности при работе с данными

Функции пользователей, работающих с базой 1С, можно разделить на три группы:

  1. Ввод первичных данных;
  2. Анализ введённых данных;
  3. Планирование будущих данных.

Пройдёмся по функциональным группам пользователей.

  1. Тем, кто вводит данные, не нужны остатки и обороты даже за "вчера". Не говоря уже о данных за прошлый месяц или за позапрошлый год.
  2. Тем, кто анализирует данные, нужны данные за прошлые периоды. Но здесь нужно уточнять, какие именно данные им нужны. Об этом поговорим ниже.
  3. Тем, кто планирует данные, нужны результаты анализа прошлых периодов. Другими словами, для нужд пользователей этой группы также нужны данные, накопленные в предыдущих периодах.

Детализация данных для свертки базы 1с

Чтобы определить, какие данные нужны для анализа и планирования, прежде всего нужно уточнить степень детализации данных. Заранее скажу, что детализация данных, необходимых для анализа и планирования, и является ключом к решению задачи о свёртке базы 1С.

Какие бывают уровни детализации данных в базе 1С? Я могу назвать такие:

  • Проводка по счетам в бухгалтерском учёте.
  • Движение регистра в оперативном учёте.
  • Документ.
  • Оборот за день (неделю, декаду, месяц, квартал, полугодие, год).
  • Остаток на начало и на конец периода (дня, недели, декады, месяца, квартала, года).

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

Работа с данными в "сжатом" периоде после 1с свертки базы

Если данные в определённом периоде "свёрнуты" или "сжаты", то понимается, что их количественно стало меньше на определённую величину. Если количество данных уменьшается, то определённые данные теряются безвозвратно.

Как можно получить доступ к свёрнутым данным, если в этом возникнет необходимость? Это очень важный вопрос, и на него нужно ответить, прежде чем проводить свёртку базы данных 1С.

Для примера, приведу два крайних случая.

Случай 1: Финансовый директор в любой день 2008 года хочет иметь возможность посмотреть детальную карточку взаиморасчётов с покупателем "Альфа" за март 2005 года.

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

Исключением можно считать такой способ работы, при котором свёртка базы всё-таки проводится, и в рабочей базе от данных свёрнутого периода остаются только остатки на начало рабочего периода. Тогда у предприятия появляется две рабочих базы:

  1. Рабочая база, в которую вводятся данные о текущих операциях.
  2. Архивная база, в которой хранятся данные об операциях прошлых периодов.

При этом у финансового директора, например, имеется доступ ко второй базе, работа с которой была фактически остановлена. И финансовый директор при желании может в любой момент войти в "старую" базу и получить все необходимые ему данные в предыдущих периодах.

Случай 2: Финансовый директор хочет в любой день 2008 года иметь возможность узнать величину расходов на аренду всех складских помещений предприятия за 3 квартал 2005 года. И более детальная информация (карточка взаиморасчётов с арендодателем склада, например) ему не нужна.

В таком случае 1с свёртка базы проводится таким образом:

  1. Специальным запросом выбираются обороты по статье "Складские расходы" с детализацией по кварталам.
  2. Для каждого квартала, получаемого в запросе, создаётся новый документ "Операция" (или другой специальный документ), в который вносится сумма оборота по статье "Складские расходы". Документ записывается и проводится.
  3. Специальная обработка удаляет все документы, которые вводили данные за сворачиваемый период по статье "Складские расходы" (кроме нашего специального документа, который мы создали при свёртке базы).

Исключением также можно считать такой способ работы, при котором свёртка базы проводится с перенесением только входящих осатков на начало рабочего периода. У предприятия появляются две базы ("рабочая" и "старая"). А финансовый директор создаёт в MS Excel, например, специальную табличку для личного пользования. В этой табличке он будет проводить анализ и планирование данных. В табличку он вручную заносит итоговые значения по нужным ему финансовым показателям за анализируемый период. Данные для анализа он берёт из "архивной" базы.

Стандартный алгоритм свертки базы 1С

В большинстве же случаев свёртка базы проводится банальнее.

  1. Обработка создаёт новые документы типа "Ввод начальных остатков".
  2. Запрос выбирает остатки по всем бухгалтерским счетам, измерениям регистров и прочим значимым хранилищам данных на конец сворачиваемого периода.
  3. Получаемые в запросе данные вносятся в документы типа "Ввод начальных остатков".
  4. Документ сохраняется и проводится последним днём сворачиваемого периода.
  5. Все документы 1С за сворачиваемый период удаляются.

Методы свертки базы 1С

Таким образом, можно выделить два способа сворачивания данных в базе 1С:

  1. В свёрнутом периоде все операции удаляются, а на начало рабочего периода вносятся только начальные остатки, имеющиеся на конец свёрнутого периода.
  2. То же, что и в первом способе, но в свёрнутом периоде оставляются обороты по показателям, которые необходимы в текущем режиме в рабочем периоде, с необходимым уровнем детализации. На начало рабочего периода переносятся остатки, рассчитанные с учётом оборотов, оставшихся в свёрнутом периоде.
По материалам

В процессе работы информационной базы ее размер неминуемо увеличивается. В крупных компаниям он может достигать от 5 Гигабайт в год и более. Такой стремительный рост может сказываться как на быстродействии программы, так и на сохранности данных. Чем больше размер информационной базы, тем более вероятны сбои, влекущие за собой потерю данных.

Как очистить информационную базу 1С, сохранив всю необходимую информацию?

В этом вопросе поможет “свертка информационной базы 1С” – процесс обработки документов и регистров конфигурации, позволяющий удалить старые, ненужные документы. Вместо них формируется несколько документов ввода остатков на заданный период. Таким образом мы “обрезаем” ведение учета до заданного периода.

Основными целями свертки являются:

    Увеличение скорости работы системы

    Уменьшение размера информационной базы

О свертке стоит задуматься, если:

    “тормозит” 1С

    Большой размер базы 1С (от 5 Гигабайт и более)

    Долго выполняется обновление 1С

    “Мозолят” глаза документы прошлых лет

В рамках проекта передо мной встала задача: Как свернуть базу 1С при переходе с 1С:ERP 2.0 на 1C:ERP 2.1?

На момент необходимости свертки фирма 1С разработала штатные механизмы только для 1С:УТ 11 и 1С:БП 3.0, а также для более старых версий.

Для разработки свертки я взял за основу механизм из 1С:УТ 11. Релиз 1С:УТ 11 брал приблизительно того же времени выпуска, что и 1С: ERP 2.0.

Этапы свертки базы 1С

Свертка информационной базы осуществляется в три этапа:

    ввод остатков

    удаление данных прошлых периодов (удаление движений и пометка на удаление документов)

  • сверка остатков с рабочей базой

Ввод остатков

Для ввода остатков в любой конфигурации предусмотрены специальные документы.

Конфигурация 1С:ERP является симбиозом нескольких подсистем. Для каждой подсистемы используются свои документы ввода начальных остатков.

Для части документов ввода остатков в 1С:УТ 11 предусмотрены процедуры автоматического заполнения остатками по регистрам.

Например, “товары на складах”, “взаиморасчеты с клиентами/поставщиками”, “заказы клиента/поставщику”, “возвратная тара”, “денежные средств”)

Для других документов необходимо разрабатывать свои процедуры.

Например, “расчеты с сотрудниками”, частично по регистрам бухгалтерии, кадровому учету, Внеоборотные активы.

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

  • Заполнение документов «Ввод начальных остатков»

По каждому виду операции ввода остатков я провел анализ на существование механизма ввода остатков в обработке из 1С:УТ 11, определил, какие регистры двигают данный вид операции. Для несуществующих механизмов ввода остатков разработал собственные.

  • Заполнение документов “Корректировка регистров”, “Перенос данных” и “Операция(регламентированный учет)”

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

Например, остатков на производственных регистрах, “прочие активы и пассивы”, “заказы на перемещение”, “распоряжения на выпуск”, “расчеты с фондами по страховым взносам”.

Можно доработать конфигурацию для ввода остатков по таким регистрам (механизмам) или разработать заполнение остатков с помощью документов:

    “Перенос данных” - подходит для регистров подсистем расчета зарплаты и управления кадрами

    “Операция(регламентированный учет)” - подходит для остатков на регистрах бухгалтерии по тем данным, которые не отразились документами “Ввода остатков”

  • “Корректировка регистров” - подходит для остальных подсистем.
  • Сложные схемы ввода остатков

Для некоторых механизмов 1С:ERP нельзя ограничиться внесением остатков на дату свертки. Это обусловлено тем, что для определенных механизмов ключевые данные хранятся не только в регистрах, но и в самих документах. В основном это документы, на которые ссылаются данные регистров. В стандартной обработке ввода остатков такой механизм разработан для учета заказов покупателя. Суть его заключается в следующем:

1. Берутся остатки по незакрытым остаткам заказов

2. Документы из остатков помечаются специальным комментарием

3. Для частично не закрытых заказов табличная часть перезаполняется только данными остатков на дату свертки

В таком случае у нас не вводятся документы ввода остатков по регистрам механизма заказов, а документы заказа, по которым есть остатки, помечаются специальным комментарием. Такие документы при последующих этапах свертки не удаляются.

Такой же механизм я применил для кадровых документов. Документы сотрудников, работающих на дату свертки, пометил специальным комментарием, остальные документы были удалены на последующих этапах свертки.

Удаление данных прошлых периодов

Удаление данных производится в два этапа:

    удаление движений документов

    пометка документов на удаление

При удалении движений по каждому регистру:

1. Выбираются все документы, которые:

    “двигали” регистр до даты свертки

2. Отключается использование итогов

3. Для каждого документа удаляются движения

Для каждого вида документов формируется список документов, не содержащих специальный комментарий. На них ставится пометка на удаление.

Сверка правильности ввода остатков с рабочей базой

Сначала проверяются остатки в целом по каждому регистру, по всем ресурсам (без детализации по измерениям). Если итоговая сумма каждого ресурса совпадает, то проверяем следующий регистр. Если есть разница, то анализируем более детальные остатки в разрезе измерений. Начинать необходимо с измерений, имеющих наименьшее количество разных значений.

Например, для большинства регистров первым анализируется измерение Организации. Выявляется, по каким организациям есть расхождения. Далее для каждой организации анализируются более детальные данные.

Если такие сложные системы как 1С:ERP, 1С:УПП, 1С:Комплексная автоматизация, 1С:Управление холдингом используются в большей степени для решения бухгалтерского учета, то возможно неполное или частично неправильное использование некоторого функционала программы. Это происходит из-за того, что сотрудники бухгалтерской службы производят контроль по регистрам бухгалтерии, выполняя ручные корректировки документами Операция(регламентированный учет) и не контролируют данные в соответствующих регистрах накопления.

В 1С:ERP основой для операций бухгалтерского учета являются регистры накопления. Операции формирования документов ввода остатков выполняются на основании данных регистров накопления.

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

Существует два варианта решения проблемы:

1. В рабочей базе привести остатки по регистрам накопления в порядок

2. Переписать процедуры ввода остатков с данных регистров накопления на данные регистров бухгалтерии (если данные в регистрах бухгалтерии покрывают данные в регистрах накопления). Я использовал второй способ.

Организация процесса свертки данных

Для орагнизации свертки информационной базы обычно создается отдельная ее копия и в ней запускается обработка, которая выполняет операции, описанные выше. Копия базы делается для того чтобы сохранить в отдельной базе старые данные, а в новой свернутой базе продолжить работу.

Все было бы просто, если бы не большое время выполнения обработки – от нескольких часов до нескольких недель.

Длительность процесса свертки зависит от:

    конфигурации базы

    используемых подсистем

    объема внесенных данных до даты свертки

Из-за длительности процесса возникают две существенные проблемы:

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

2. Сложность тестирования обработки свертки . На этапе разработки методологии свертки или написания кода обработки возрастает цена ошибки. Если, например, процесс свертки занимает 1 день, то процесс тестирования при 10 ошибках может занять 10 дней, если каждая ошибка выявлялась не сразу, а после каждого нового тестирования. А если свертка занимает не 1 день, а неделю? А если не 10 ошибок, а больше?...

Для решения этих проблем я использовал план обмена и обработку “Выгрузка и загрузка данных XML”.

В рабочей базе я добавил план обмена, фиксирующий все изменения после создания копии базы для свертки. После свертки измененные данные в рабочей базе переносил обработкой “Выгрузка и загрузка данных XML”. Таким образом пользователям не пришлось вносить данные в Новую базу, они были перенесены автоматически.

Выявление ошибок написания кода обычно происходит на этапе сверки остатков, т.е. после введения остатков и удаления данных прошлых периодов. Так как этап удаления довольно длительный, а правильность введения остатков в большинстве случаев не зависит от этапа удаления, то практичнее тестирование и доработку ввода остатков делать в отдельной третьей базе. Пока в Новой базе проходил процесс удаления данных прошлых периодов, я устранял выявленные ошибки в обработке свертки и дорабатывал новые процедуры свертки. После окончания удаления старых документов и движений у меня была готова Новая база, но с неправильными остатками. На отдельной копии рабочей базы я формировал документы остатков, изменения автоматически фиксировались в плане обмена, и обработкой “Выгрузка и загрузка данных XML” переносил измененные остатки в Новую рабочую базу. При выявлении новых ошибок – повторял эти операции. Данный метод значительно ускорил разработку и тестирование процедур ввода остатков.

База клиента содержала 1,5 млн. документов в прошлом периоде.

Длительность операций составляла:

1 час – ввод остатков

6 суток – удаление движений

4 суток – установка пометок удаления

Так как процесс разработки довольно трудоемкий, а продолжительность выполнения этапов свертки велика, то на будущее я определил для себя следующую последовательность действий:

1. Добавление в рабочей базе плана обмена.

2. Создание копии базы – «новая свернутая база»

3. Запуск в свернутой базе процедуры удаления всех данных до даты свертки (самая длительная операция)

4. Анализ остатков и разработка операций ввода остатков

5. Формирование в отдельной копии процедуры ввода остатков (с регистрацией изменений в плане обмена)

6. Перенос данных ввода остатков из копии рабочей в «новую свернутую базу»

7. Проверка остатков, при необходимости повторение пунктов 5,6,7.

Сложно с первого, да и со второго раза написать идеальную обработку свертки базы для 1С:ERP, необходимо досконально знать изнутри каждый механизм, каждую подсистему, но с каждым разом будет получаться все лучше и лучше.