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

21.08.24

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Свертка больших баз, через выгрузку - загрузку остатков :
.epf 19,99Kb
39
39 Скачать (10 SM) Купить за 4 550 руб.

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

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

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

Формируется один большой 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.

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

БСП свёртка базы

См. также

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 руб.

20.08.2024    8980    69    30    

79

Перенос данных 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    172180    367    399    

334

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

Универсальная свертка баз данных под 1С разработана для свертки баз данных различного объема и сложности. Обработка работает на простых и управляемых формах. Обработка позволяет легко и интуитивно понятно проводить работы по свертке базы данных и других необходимых операций связанных с обслуживанием баз данных.

6000 руб.

22.05.2024    3113    15    7    

24

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

Разработка универсальна, работает на любой конфигурации, на версиях платформ 8.1 и 8.2. Исходные коды открыты. Усекаются сразу все разделы учета (регистры бухгалтерии, регистры накопления, регистры сведений). Разработка представляет из себя cf-файл с одним единственным документом: ЗакрытиеПериода. В нём содержится функционал как по заполнению, так и по очистке регистров. Так же для версии 8.2 возможна переброска данных в "чистую" базу нажатием одной кнопки.

4800 руб.

21.02.2011    109525    113    249    

303

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

Правила переноса остатков из конфигурации Бухгалтерия 3.0 в конфигурацию Бухгалтерия 3.0. Правила могут быть полезны для свертки рабочей базы документами "Ввод начальных остатков" или для перехода из типовой Бухгалтерии в отраслевую конфигурацию, основанную на ней, или для перехода с УСН на ОСНО.

2 стартмани

26.09.2024    592    23    kumi2012    15    

4

Свертка базы Инструментарий разработчика Программист Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет НДС Абонемент ($m)

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

1 стартмани

19.08.2024    680    1    RustIG    5    

3

Свертка базы Программист Платформа 1С v8.3 1С:Управление торговлей 10 Управленческий учет Абонемент ($m)

Представлена обработка для свертки УТ 10.3 по новой концепции - когда сворачиваем "подокументно", а не "целиком и сразу по всем регистрам".

1 стартмани

03.04.2024    2965    17    RustIG    16    

17

Свертка базы Программист Платформа 1С v8.3 1С:Управление торговлей 10 Управленческий учет Абонемент ($m)

Внешняя обработка (для конфигураций на обычных формах) сравнивает остатки на дату и в разрезе организации по всем регистрам накопления. Сравнение происходит между базами по технологии Com-соединение. Используется при свертке базы.

1 стартмани

27.03.2024    854    3    RustIG    0    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. TMV 14 20.05.22 00:36 Сейчас в теме
Вот бы еще проводки - эта обработка скорее пример.
Зачем во 2м пункте делать пересчет итогов, если остатки потом загружаются?
2. dima1c 46 20.05.22 10:18 Сейчас в теме
(1) Итоги после загрузки надо считать. Но бывают ситуации когда загрузка не нужна, допустим удаление не нужных данных.
Это просто послание что после обрезки, итогов вы не увидите пока не пересчитаете их в конфигураторе, т.к. таблица итогов дропается.
3. dima1c 46 20.05.22 10:21 Сейчас в теме
(1) По поводу регистров бухгалтерии добавлю, в будущей версии.
14. Vld-y 04.05.23 13:02 Сейчас в теме
(3)
1) По поводу регистров бухгалтерии добавлю, в будущей версии.


Сделано?
4. bugagashenka 203 23.05.22 11:31 Сейчас в теме
А где ввод остатков на начало периода?
По примеру Вы убили все до конца 2019 года, а при пересчете итогов получите поехавшие остатки.
Как по мне, лучше остатки не выгружать в отдельный файл, а сразу сформировать итоговые движения начальных прямо в студии, так как с мелкими базами справится типовая обработка, а с террабайтными на файле подавится.
5. dima1c 46 23.05.22 11:44 Сейчас в теме
(4)
А где ввод остатков на начало периода?

Загружается в корректировку регистра, загрузка и выгрузка производится в потоке так что со всем справится даже слабый сервер. Ничего не поехало, обработка проверена в бою.
Итоги нужно считать только после окончания т.е. загрузки.
6. dima1c 46 23.05.22 11:48 Сейчас в теме
1. ВЫГРУЗКА ОСТАТКОВ (выгружаются в json с минимальной сериализацией *т.е. там только ссылки на объекты)
2. ВЫПОЛНЕНИЕ СКРИПТА
3. ЗАГРУЗКА ФАЙЛА ZIP с остатками созданного на 1. шаге.
4. СЧИТАЕМ ИТОГИ В КОНФИГУРАТОРЕ.

Никаких вводов остатков, только корректировки регистров.
кек
7. ksa 22.06.22 10:17 Сейчас в теме
Доброго времени суток !
Данная выгрузка справочники тоже выгружает ?
8. dima1c 46 06.07.22 10:05 Сейчас в теме
(7) нет, выгружает только ссылки на справочник, т.к. справочники уже есть в ИБ в которой производится свёртка.
9. ksa 06.07.22 13:49 Сейчас в теме
То есть сначала нужно сделать копию, грохнуть в ней все документы, только после этого выгрузить/загрузить данные с обрезаемой базы.
10. dima1c 46 06.07.22 14:23 Сейчас в теме
(9) Можно и так. Можно скопировать справочники, в чистую базу и загрузить остатки потом.
11. OldthiefXXX 154 12.07.22 09:58 Сейчас в теме
Управление торговлей, редакция 11 (11.4.13.269)
При открытии


Ошибка инициализации модуля: ВнешняяОбработка.СверткаБазыУТ11.МодульОбъекта
по причине:
{ВнешняяОбработка.СверткаБазыУТ11.МодульОбъекта(107,88)}: Переменная не определена (TNL_Служебный)
ЗаписатьJSON(ЗаписьДанных, СтруктураРегистра, НСериализации, "СериализоватьДанные", <<?>>TNL_Служебный);
{ВнешняяОбработка.СверткаБазыУТ11.МодульОбъекта(305,89)}: Переменная не определена (TNL_Служебный)
Рез = ПрочитатьJSON(Чтение, Ложь, , ФорматДатыJSON.ISO, "СериализоватьДанныеЗагрузка", <<?>>TNL_Служебный);
12. dima1c 46 12.07.22 10:22 Сейчас в теме
(11)
нужно создать модуль в конфигурации, "TNL_Служебный" [сервер , вызов сервера] скопировать туда текст из модуля обработки.
написано же подробно, выше.
13. ksa 11.08.22 09:13 Сейчас в теме
Флаг "физически удалять документы" не работает ?
При выполнении скрипта в SQL в периоде до обрезки должны ведь документы пометиться на удаление ?
Оставьте свое сообщение