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

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

Арт.: 1822143

Продано: 12

1.png
6.png
1.png
2.png
3.png
1.png
6.png
1.png
2.png
3.png
Лицензии

7200 руб.

Техподдержка и обновления

2400 руб.

3000 руб.

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

Для оптимизации базы 1С применяют операцию обрезания. Это позволяет экономить место на диске, экономить время архивирования базы и скрыть архивные данные.

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

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

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

Технические требования

Обработка тестировалась на платформе 8.3.9.2170, обработка универсальна, поэтому будет работать и на более поздних версиях платформы.

Перенос данных в исходной базе работает в толстом и в тонком клиенте.

Есть ограничение по регистрам. Регистры расчета (Зарплата) не доступны для отправки, т.к. на практике не было необходимости их переносить.

Поэтапный перенос данных в новую базу

В начале был вопрос как делать обрезание базы. Рассматривались такие варианты

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

2. остановить рабочую базу и перенести данные в новую базу.

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

Рабочую базу надо было обрезать на 3 месяца назад. В базе накопились документы за 6 лет работы. Удаление документов с движениями заняло бы неделю. Останавливать на такое долгое время рабочую базу, естественно, нельзя. Поэтому первый вариант был отвергнут сразу. Также и 2 вариант был не пригоден, т.к. в момент переноса вылезло много ошибок и ньюансов, которые приходилось решать. Да и сам перенос занял сутки, что тоже критично для крупного предприятия.

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

Подготовка конфигурации

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

Для переноса остатков в конфигурации новой базы должен быть документ КорректировкаЗаписейРегистров или ОперацияБух (для БП). Это стандартный документ для типовых конфигураций. В самописных или нетиповых конфигурациях этот документ необходимо добавить. Этот функционал не получается сделать универсальным под все конфигурации, т.к. остатки по регистрам в 1С нельзя записать без документа-регистратора. Соответственно необходимо учитывать специфику конфигурации: нужным документом вводить остатки. Обработка на данный момент автоматически перенесет остатки в следующих конфигурациях: УТ11, БП3, Альфа-Авто.  

Ссылки на документы до среза

На практике был добавлен регистр сведений _ОбъектыДоСреза в новую конфигурацию. Этот регистр нужен для учета документов, которые заведены до даты среза и на которые будут ссылки при переносе данных. Например, документы-партии в регистре «Товары на складах» при партионном учете. При переносе данных, если склад не пустой, то очень вероятно, что остатки будут на документах-партиях, заведенных до даты среза. Соответственно, в отчетах по складу вместо этих документов будут ссылки без объектов, многих пользователей это пугает. Также может быть большая проблема при проведении документов по партиям, т.к. в этих алгоритмах документы-партии сортируются по дате. Ссылка без объекта выдаст ошибку.

При переносе данных анализируются все ссылочные объекты. Если встречается документ до даты среза, то записываем ссылку на него в регистр _ОбъектыДоСреза. После переноса всех объектов в новую базу переносим все документы из регистра без движений. Естественно, делаем запрет в новой базе на проведение документов до даты среза во избежание дублирования движений.

Документы со смещенными движениями

В 1С версии 8 появилась возможность у документов делать движения на произвольную дату, не только на дату самого документа. В базе могут быть документы до даты среза, имеющие движения после даты среза. Такие документы не перенесутся вообще либо перенесутся без движений. На практике такие документы искусственно корректируются так, чтобы все движения были за одну дату, которая равна дате документа.

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

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

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

Непосредственный перенос данных

Порядок переноса данных можно менять. Но можно выделить первичные и вторичные объекты. Вторичные объекты ссылаются на первичные, м.б. за небольшим исключением.

К первичным объектам можно отнести: Константы, Пользователи, Справочники, Планы видов характеристик, Планы счетов.

К вторичным объектам можно отнести: Документы и Регистры.

Примерный план переноса данных

    1.Добавить в конфигурацию документ по записи остатков в регистры (КорректировкаРегистров,ОперацияБух,др)
      Добавить в конфигурацию регистр сведений _ОбъектыДоСреза
      Сдвинуть документы где Дата среза между Датой движений и Датой документа
      Переименовать реквизит Заблокирован для справочников (Встречался у Контрагентов)
      (!) В модуле перечислений могут совпадать экспортные функции/процедуры с именем одного из значений перечисления, переименовать временно.
    2.Отправка констант
      Отправка пользователей
     Удалить планы счетов+выгрузить заново (для бухгалтерии)
    3.Удалить Предопределенные в базе 2
      Отправка ссылочных объектов
      Отправка независимых регистров сведений (*s_ИсторияОбъектов)
      Для независимых периодических регистров сведений необходимо указать отбор (по периоду)
    4.Отправка среза подчиненных регистров
      Отправка регистров бухгалтерии (при наличии)
    5.Загрузка документов из регистра Объекты до среза
    6.Отправка измененных объектов через узел обмена
    * Запрет проведения после среза

Обработка переноса данных

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

На закладке «Конфигурация» устанавливаем флаг «Итоги» чтобы увидеть общее количество объектов по видам метаданных. Можно наложить условие вывода, например, выводить только те метаданные, в которых заведен хотя бы 1 объект текущей базы.

Далее на вкладке "База" задаем параметры подключения к новой базе. Допускается файловый и серверный варианты подключения.

При успешном подключении появится зеленая надпись «Подключено…» и справа внизу появится надпись "Внешняя база".

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

После настройки всех параметров запускаем обмен по кнопке «Выполнить».

После выполнения выгрузки появится сообщение о результате выполнения операций.

В тонком клиенте функционал аналогичен.

 

 

Проверено на следующих конфигурациях и релизах:

  • Бухгалтерия предприятия, редакция 3.0, релизы 3.0.150.29
Статистика:
Просмотры 4390
Загрузки 12
Рейтинг 14
Создание 27.03.23 10:10
Обновление 19.04.24 22:33
№ Публикации 1822143
Характеристики:
Теги

обрезание базы обрезка базы свертка базы сжатие базы обмен данными перенос данных обмен между базами

Рубрики Свертка базы
Кому Системный администратор ,
Программист
Тип файла Внешняя обработка (ert,epf)
Платформа 8.3.8
Конфигурация Конфигурации 1cv8 ,
1С:Бухгалтерия 3.0
Операционная система Не имеет значения
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Управленческий учет
Доступ к файлу Платные (руб)
Код открыт Да
1. TelekaevAB 29.03.23 11:29 Сейчас в теме
Для какой конфигурации подойдёт эта обработка?
2. rudsergo 31.03.23 08:50 Сейчас в теме
Добрый день! Можно ли Вашими силами реализовать и перенос регистров бухгалтерских. Конфигурация 1с:Бухгалтерия ред.2?

Оставьте свое сообщение

См. также

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

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

38400 руб.

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

Хотите точно знать, что вы выгружаете? Хотите сворачивать товары по НДС или фильтровать товары по доп. реквизиту? Вы волшебник, которому необходимо превращать одних контрагентов в других? Хотите при выгрузке превратить группу товаров в один...

10900 руб.

Свертка базы УНФ для 1.6

Обработка свертки базы УНФ 1.6 выполнена в виде расширения конфигурации, которое встраивается в вашу базу без снятия с поддержки, и адаптирована под релиз УНФ 1.6.

4800 руб.

Универсальная свертка базы 1С:Предприятие 8

Разработка универсальна, работает на любой конфигурации, на версиях платформ 8.1 и 8.2. Исходные коды открыты. Усекаются сразу все разделы учета (регистры бухгалтерии, регистры накопления, регистры сведений). Разработка представляет из себя...

4000 руб.