Каталог решений - Свертка больших баз через выгрузку — загрузку остатков

Свертка больших баз через выгрузку — загрузку остатков

Свертка больших баз через выгрузку — загрузку остатков

В наличии

У вас большая база — больше 300 гб, и вы хотите её уменьшить?
В стандартных процедурах свёртки возникают ошибки или не хватает памяти?
Вы хотите перегнать огромные списки остатков между базами?
Тогда, возможно, данная разработка будет вам интересна.

Категория:

Описание

Свёртка базы: инструкция:

Данная обработка работает в конфигурациях с БСП.

Выгрузка остатков производится в потоке, загрузка остатков тоже.

Формируется один большой SQL запрос, который можно выполнить в "SQL Managment studio"

 

Установка обработки

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

 

Использование

Выгрузка остатков

 

В закладке Регистры накопления нажать "Добавить все" убрать лишние, если требуется, регистры, нажать "1. Выгрузка остатков"

Будет предложен каталог, в котором в последующем будет выгружен файл

 

Обрезка данных

 

  • На вкладке "настройки" указать параметры БД
  • На закладках "Регистры накопления", "Регистры сведений", "Документы" выбрать нужные регистры и нажать кнопку
    "2. Выполнение запроса SQL"
  • Из вкладки результат скопировать текст, например текст:
-- Включаем минимальное журналирование
USE trade_test; ALTER DATABASE trade_test SET RECOVERY BULK_LOGGED;
 GO 
-- Основная  БонусныеБаллы, обрезка данных
delete from _AccumRg15719 where _period <= Convert(varchar(30), '4019-12-31T23:59:59', 126);
 GO 
-- Итоги БонусныеБаллы, очистка
truncate table _AccumRgT15724;
 GO 
-- Изменения БонусныеБаллы, очистка
truncate table _AccumRgChngR15725;
 GO 
-- ВозвратТоваровОтКлиента отмена проведения
update _Document292 set _Posted = 0x00 where _Date_Time <= Convert(varchar(30), '4019-12-31T23:59:59', 126) and  _Posted = 0x01; 
 GO 
UPDATE _DocumentJournal12911 SET _Posted = 0x00 WHERE _DocumentRRef IN (SELECT _IDRRef FROM _Document292 WHERE _Date_Time <= Convert(varchar(30), '4019-12-31T23:59:59', 126)) and  _Posted = 0x01;
 GO 
-- Реестр торговых документов
-- ЧекККМВозврат отмена проведения
update _Document399 set _Posted = 0x00 where _Date_Time <= Convert(varchar(30), '4019-12-31T23:59:59', 126) and  _Posted = 0x01; 
 GO 
UPDATE _DocumentJournal12911 SET _Posted = 0x00 WHERE _DocumentRRef IN (SELECT _IDRRef FROM _Document399 WHERE _Date_Time <= Convert(varchar(30), '4019-12-31T23:59:59', 126)) and  _Posted = 0x01;
 GO 
-- Реестр торговых документов
UPDATE _DocumentJournal12941 SET _Posted = 0x00 WHERE _DocumentRRef IN (SELECT _IDRRef FROM _Document399 WHERE _Date_Time <= Convert(varchar(30), '4019-12-31T23:59:59', 126)) and  _Posted = 0x01;
 GO 
-- Чеки ККМ
-- КорректировкаРегистров отмена проведения
update _Document323 set _Posted = 0x00 where _Date_Time <= Convert(varchar(30), '4019-12-31T23:59:59', 126) and  _Posted = 0x01; 
 GO 
UPDATE _DocumentJournal12911 SET _Posted = 0x00 WHERE _DocumentRRef IN (SELECT _IDRRef FROM _Document323 WHERE _Date_Time <= Convert(varchar(30), '4019-12-31T23:59:59', 126)) and  _Posted = 0x01;
 GO 
-- Реестр торговых документов
-- ОтчетОРозничныхПродажах отмена проведения
update _Document343 set _Posted = 0x00 where _Date_Time <= Convert(varchar(30), '4019-12-31T23:59:59', 126) and  _Posted = 0x01; 
 GO 
UPDATE _DocumentJournal12911 SET _Posted = 0x00 WHERE _DocumentRRef IN (SELECT _IDRRef FROM _Document343 WHERE _Date_Time <= Convert(varchar(30), '4019-12-31T23:59:59', 126)) and  _Posted = 0x01;
 GO 
-- Реестр торговых документов
-- ЧекККМ отмена проведения
update _Document398 set _Posted = 0x00 where _Date_Time <= Convert(varchar(30), '4019-12-31T23:59:59', 126) and  _Posted = 0x01; 
 GO 
UPDATE _DocumentJournal12911 SET _Posted = 0x00 WHERE _DocumentRRef IN (SELECT _IDRRef FROM _Document398 WHERE _Date_Time <= Convert(varchar(30), '4019-12-31T23:59:59', 126)) and  _Posted = 0x01;
 GO 
-- Реестр торговых документов
UPDATE _DocumentJournal12941 SET _Posted = 0x00 WHERE _DocumentRRef IN (SELECT _IDRRef FROM _Document398 WHERE _Date_Time <= Convert(varchar(30), '4019-12-31T23:59:59', 126)) and  _Posted = 0x01;
 GO 
-- Чеки ККМ
-- НачислениеИСписаниеБонусныхБаллов отмена проведения
update _Document325 set _Posted = 0x00 where _Date_Time <= Convert(varchar(30), '4019-12-31T23:59:59', 126) and  _Posted = 0x01; 
 GO 
UPDATE _DocumentJournal12911 SET _Posted = 0x00 WHERE _DocumentRRef IN (SELECT _IDRRef FROM _Document325 WHERE _Date_Time <= Convert(varchar(30), '4019-12-31T23:59:59', 126)) and  _Posted = 0x01;
 GO 
-- Реестр торговых документов
-- удаление табличных частей 
-- Документ.ЭлектронноеПисьмоВходящее.НепринятыеВложения удаление
DELETE FROM _Document400_VT12702 WHERE _Document400_IDRRef IN (SELECT _IDRRef FROM _Document400 WHERE _Date_Time <= Convert(varchar(30), '31.12.4019 23:59:59', 126));
-- Документ.ЭлектронноеПисьмоВходящее.НепринятыеВложения удаление
DELETE FROM _Document400_VT12710 WHERE _Document400_IDRRef IN (SELECT _IDRRef FROM _Document400 WHERE _Date_Time <= Convert(varchar(30), '31.12.4019 23:59:59', 126));
-- Документ.ЭлектронноеПисьмоВходящее.НепринятыеВложения удаление
DELETE FROM _Document400_VT12718 WHERE _Document400_IDRRef IN (SELECT _IDRRef FROM _Document400 WHERE _Date_Time <= Convert(varchar(30), '31.12.4019 23:59:59', 126));
-- Документ.ЭлектронноеПисьмоВходящее.НепринятыеВложения удаление
DELETE FROM _Document400_VT12726 WHERE _Document400_IDRRef IN (SELECT _IDRRef FROM _Document400 WHERE _Date_Time <= Convert(varchar(30), '31.12.4019 23:59:59', 126));
-- Документ.ЭлектронноеПисьмоВходящее.НепринятыеВложения удаление
DELETE FROM _Document400_VT12733 WHERE _Document400_IDRRef IN (SELECT _IDRRef FROM _Document400 WHERE _Date_Time <= Convert(varchar(30), '31.12.4019 23:59:59', 126));
-- Документ.ЭлектронноеПисьмоВходящее.НепринятыеВложения удаление
DELETE FROM _Document400_VT12740 WHERE _Document400_IDRRef IN (SELECT _IDRRef FROM _Document400 WHERE _Date_Time <= Convert(varchar(30), '31.12.4019 23:59:59', 126));
-- Документ.ЭлектронноеПисьмоВходящее.НепринятыеВложения удаление
DELETE FROM _Document400_VT12745 WHERE _Document400_IDRRef IN (SELECT _IDRRef FROM _Document400 WHERE _Date_Time <= Convert(varchar(30), '31.12.4019 23:59:59', 126));
-- Документ.ЭлектронноеПисьмоВходящее.НепринятыеВложения удаление 
DELETE FROM _Document400 WHERE _Date_Time <= Convert(varchar(30), '31.12.4019 23:59:59', 126);
    
-- сжатие данных 
DBCC SHRINKFILE(N'trade1', 0);
GO
-- сжатие лога 
DBCC SHRINKFILE(N'trade1_log', 0);
GO
-- Конец проверьте остатки.
  • Выполнить данный запрос в SQL Managment Studio
  • Зайти в конфигуратор в тестировании и исправлении выбрать пересчёт итогов.

 

Загрузка остатков

  • Нажать "3. Загрузка остатков", выбрать файл с остатками
    можно на всякий случай:
  • Зайти в конфигуратор в тестировании и исправлении выбрать пересчёт итогов.

 

Тестирование производилось на Управление торговлей, редакция 11.2 (11.2.2.116), 1с 8.3.19.1467, SQL Managment studio 18.

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

has been added to your cart:
Оформление заказа