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

21.08.24

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

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

Файлы

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

Наименование Скачано Купить файл
Свертка больших баз, через выгрузку - загрузку остатков :
.epf 19,99Kb
48 6 200 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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

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

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

Формируется один большой 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С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

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

24900 руб.

20.08.2024    83399    432    171    

364

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

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

6000 руб.

22.05.2024    9626    61    40    

69

Перенос данных 1C Оптовая торговля Свертка базы Системный администратор Разработчик Бухгалтер 1С:Предприятие 8 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Хотите точно знать, что вы выгружаете? Хотите сворачивать товары по НДС или фильтровать товары по доп. реквизиту? Вы волшебник, которому необходимо превращать одних контрагентов в других? Хотите при выгрузке превратить группу товаров в один? Или просто нужен удобный OLE обмен между 1C:Управление торговлей (ред. 11 или 10) и 1С:Бухгалтерия предприятия (ред. 2 или 3). Тогда эта обработка для вас!

12900 руб.

19.04.2013    187397    406    407    

346

Свертка базы Системный администратор Разработчик 1С 8.3 1C:Бухгалтерия 1С:Бухгалтерия 3.0 Россия Управленческий учет Платные (руб)

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

7320 руб.

27.03.2023    12198    22    4    

25

Свертка базы Системный администратор Разработчик 1С 8.3 Бесплатно (free)

Собираетесь свернуть базу 1С и хотите до недели подготовки понять, сколько места это даст. Проверить у себя можно одной функцией: размер объекта платформа отдаёт методом ПолучитьРазмерДанныхБазыДанных, записи по годам считает обычный запрос. Типовая свёртка режет по дате документы и движения регистров, а в Управлении торговлей 11.5 из 806 регистров сведений у 729 нет ни периода, ни регистратора. В статье функция оценки по одному объекту и цикл сводки по всей конфигурации, проверенные на УТ 11.5.22.67, оговорки о том, где пропорция по записям завышает результат, и две большие базы, где вес лежал вне истории: 3,85 ТБ служебного кэша прав из 4,2 ТБ и 451 ГБ версий объектов, которые регламент годами не чистил.

02.11.2026    388    nedomolkov.ivan    1    

3

Свертка базы Зарплата Разработчик 1С 8.5 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Абонемент ($m)

Обработка уменьшает базу 1С:ЗУП 3.1 в копии: удаляет расчетные документы по 31 декабря (начисления, табели, отпуска, больничные, ведомости, НДФЛ), оставляет кадровые документы с историей и плановыми начислениями и вводит средний заработок, остатки отпусков и задолженность по зарплате. Автотест сверяет расчеты до и после свертки.

4 стартмани

30.10.2026    382    7    Drfreeman    0    

2

Свертка базы Разработчик 1С 8.3 1С 8.5 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Абонемент ($m)

Две обработки сворачивают базу «Управления торговлей» 11, «Комплексной автоматизации» 2 или ERP 2 на выбранную дату: выгружают остатки товаров (с характеристиками, ГТД, фактическими остатками на складах и помещениями), расчетов с клиентами и поставщиками и денег, удаляют документы по эту дату и вводят остатки документами «Ввод остатков». В КА 2 и ERP 2 бухгалтерский учет, зарплата и производство не затрагиваются. Автотесты сверяют остатки до и после свертки.

8 стартмани

29.10.2026    219    2    Drfreeman    0    

0

Свертка базы Перенос данных 1C Разработчик 1С 8.3 1С 8.5 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Налог на прибыль НДС УСН Абонемент ($m)

Две обработки для БП 3.0: выгрузка остатков на дату в файл и загрузка их документами «Ввод остатков». Свертка в копии базы удаляет старые документы и вводит остатки по всем счетам с налоговым учетом, карточками ОС и НМА и НДС по счетам-фактурам; остатки на дату и после нее совпадают с исходной базой. Тот же файл переносит остатки в новую базу.

5 стартмани

28.10.2026    299    4    Drfreeman    4    

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


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

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

Никаких вводов остатков, только корректировки регистров.
кек
7. ksa 22.06.22 10:17 Сейчас в теме
Доброго времени суток !
Данная выгрузка справочники тоже выгружает ?
8. dima1c 47 06.07.22 10:05 Сейчас в теме
(7) нет, выгружает только ссылки на справочник, т.к. справочники уже есть в ИБ в которой производится свёртка.
9. ksa 06.07.22 13:49 Сейчас в теме
То есть сначала нужно сделать копию, грохнуть в ней все документы, только после этого выгрузить/загрузить данные с обрезаемой базы.
10. dima1c 47 06.07.22 14:23 Сейчас в теме
(9) Можно и так. Можно скопировать справочники, в чистую базу и загрузить остатки потом.
11. OldthiefXXX 155 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 47 12.07.22 10:22 Сейчас в теме
(11)
нужно создать модуль в конфигурации, "TNL_Служебный" [сервер , вызов сервера] скопировать туда текст из модуля обработки.
написано же подробно, выше.
13. ksa 11.08.22 09:13 Сейчас в теме
Флаг "физически удалять документы" не работает ?
При выполнении скрипта в SQL в периоде до обрезки должны ведь документы пометиться на удаление ?
Для отправки сообщения требуется регистрация/авторизация