Обрезание (свертка) ТиС

24.12.08

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

В данной статье я опишу универсальную технологию обрезания (сверки) БД.

Вы наверно частенько встречались с ситуацией что, в конце концов, база вырастает до таких объемов, что уже не выносимо с ней работать, а если она ещё и DBF то и очень опасно.


И когда я пришел недавно на новую работу, где всё работает на ТиС, то я столкнулся с тем что пока обрезать базу. Раньше если честно я с ТиС не имел дела, и для меня была в новинку данная операция.

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

Потом я решил понять что же  надо по сути мне сделать, и я понял что все очень просто. Вся идея сводилась к тому, что просто нужно на дату обреза просто "сфотографировать" остатки по всем регистрам остатка и всё.

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

Кстати это ещё не всё. После чего нужно удалить все доки. Если у вас SQL то здесь вам повезло. Делаем так, в QA выполняю данный запрос, и удаляю все документы до указанной даты буквально за 20 минут (а из не мало с учётом того что в день 300 доков, а удалять надо полтора года)

USE MyTestBase

Go

CREATE TABLE ##ID



(IDDOC char(9) primary key clustered)

Go

INSERT INTO ##ID



SELECT DISTINCT IDDOC

FROM _1SJOURN

WHERE (DATE_TIME_IDDOC < '20060530')

Go

BEGIN TRANSACTION

DECLARE Mycur cursor for

SELECT sysobjects.name,syscolumns.name

FROM syscolumns INNER JOIN

sysobjects ON syscolumns.id = sysobjects.id

WHERE (syscolumns.name = N'iddoc') OR

(syscolumns.name = N'docid')

OPEN MyCur

DECLARE @TableName varchar(20)

DECLARE @ColName varchar(20)

FETCH NEXT FROM MyCur INTO @TableName, @ColName

WHILE @@FETCH_STATUS = 0

BEGIN

EXEC ('Delete from '+@TableName+' with (tablock) where '+@ColName+' IN (Select IDDOC FROM ##ID)')



FETCH NEXT FROM MyCur INTO @TableName, @ColName

END

CLOSE MyCur

DEALLOCATE MyCur

COMMIT TRANSACTION

DROP TABLE ##ID



Но после этого я столкнулся с тем что движения остаются по удалённым документам.
В связи с этим я применил ещё один запрос именно по регистру ПартииПаличия

use НазваниеБазы 

DELETE FROM RA328

WHERE IDDOC NOT IN (SELECT IDDOC FROM _1sjourn (nolock))



после чего я в конфигураторе я сделал Тестирование и исправление ИБ
В нём я поставил все галочки и в настройках выбрал "Очищать ссылки" и "Удалять данные объекты"
Вот и вест процесс обрезки :-)
У меня он занял со всеми исправлениями часов 6.

См. также

Свертка базы Чистка данных Перенос данных 1C Системный администратор Программист Платформа 1С v7.7 1С:Комплексная 7.7 1С:Торговля и склад 7.7 Абонемент ($m)

Приводится порядок действий для создания новой информационной базы на основе имеющейся файл-серверной "Торговля и Склад" ред.9.2, для учёта с нуля. В новую базу выполняется перенос справочников и остатков номенклатуры. Журналы документов, данные регистров, долги контрагентов, партии очищаются.

1 стартмани

14.01.2022    6450    6    etmarket    3    

4

Свертка базы Программист Бухгалтер Бухгалтерский учет 7.7 1С:Бухгалтерия 2.0 Россия Бухгалтерский учет Абонемент ($m)

Имеется база 7.7, которую хочется свернуть. Но в процессе свертки могут съехать остатки. Для проверки нужно сравнить остатки на дату свертки.

1 стартмани

20.06.2016    18498    2    pentanom    1    

2

Свертка базы Программист Оперативный учет 7.7 1С:Торговля и склад 7.7 Управленческий учет Абонемент ($m)

Хотя большинство пользователей перешло на 1С 8ХХ, но есть еще очень много торговых организаций до сих пор эксплуатирующих 1С 77 ТиС. И пока еще не собираются переходить на новую платформу, а свертку делать надо. Есть много решений, я решил поделиться своим. Основное отличие: 1. Универсальность 2. Быстрота 3. Свертку можно делать на любую дату (не обязательно на начало года)

1 стартмани

15.11.2014    31983    125    Marik    27    

3

Свертка базы Чистка данных Бухгалтер Оперативный учет 7.7 Бухгалтерский учет 7.7 Расчет 7.7 Бухгалтерский учет Абонемент ($m)

Удаляет проводки(корреспонденцию) по выбранным счетам за выбранный период. Работает с забалансовыми счетами. Выбор условия соответствия вхождения счетов в корреспонденцию (и / или).

1 стартмани

06.01.2014    19856    11    by_1Cnik    8    

3

Свертка базы Системный администратор Оперативный учет 7.7 1С:Торговля и склад 7.7 Россия Абонемент ($m)

По статье "Зачем в 1С нужно периодически пересчитывать итоги по регистрам?" http://infostart.ru/public/177171/ Обработка для 7.7, файловая, только для специалистов. Никаких гарантий и возмещений. Работает только в разделенном режиме (прямой запрос VFP). После выполнения - в обязательном порядке ТиИ (только упаковка), После ТиИ в обязательном порядке - принудительно переиндексировать. Родственная разработка для SQL: http://infostart.ru/public/177579/

8 стартмани

28.03.2013    72622    101    CheBurator    14    

15

Свертка базы Чистка данных Системный администратор Программист Оперативный учет 7.7 1С:Торговля и склад 7.7 Россия Абонемент ($m)

Берем 2 базы старую и новую, новая это точная копия старой, только с подчищенными файлами d*.dbf, r*.dbf Запускаем в старой обработку, ждем 15 минут и радуемся! Только не забудьте в новой провести ручками документы (операции - проведение документов) Сворачивает остатки по фирмам и складам в усредненной себестоимости(считает по принципу отчета остатки ТМЦ), делает вводы остатков в базе к которой коннектимся И сворачивает всю дебиторскую и кредиторскую задолженность по Фирмам без детализации кредДокумент. Обновление от 12.02.13 появилась возможность сворачивать дебиторку в разрезе кред документа+переносит долги по комиссионерам. Не знаю как вам, а на мой взгляд более простого и работоспособного я тут просто не нашел!!!

1 стартмани

02.01.2013    23736    181    zoeh    8    

10

Свертка базы Перенос данных 1C Программист Платформа 1С v7.7 Конфигурации 1cv7 Розничная и сетевая торговля (FMCG) Россия Абонемент ($m)

Обработка предназначена для переноса данных из Рарус 2.5 магазина на платформе 7.7 в Розницу ред. 1 на платформе 8.2. Перенос осуществляется с помощью OLE. Переносимые данные: Номенклатура(ед., штрих-коды), Документ ввода остатков и цены номенклатуры (после закрытия торгового периода).

1 стартмани

08.10.2012    22433    48    pervanax    5    

1

Свертка базы Программист Оперативный учет 7.7 1С:Торговля и склад 7.7 Россия Управленческий учет Абонемент ($m)

Свертка данных на определенную дату, без изменения в конфигурации.

1 стартмани

03.09.2012    20463    153    Tarlich    6    

16
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. vovan519 276 24.12.08 14:12 Сейчас в теме
Может в следующий раз предварительно в Ворде набрать текст. Просто неприятно читать.
2. kasperok 31 24.12.08 14:21 Сейчас в теме
3. LenaTorpeda 24.12.08 14:57 Сейчас в теме
У меня срезка базы любой длинны занимает от силы пол часа.
7. WiseSnake 1521 25.12.08 02:04 Сейчас в теме
Я не понял что за чудесные решения, товарисчи?

(4)
>>LenaTorpeda 24.12.2008 15:12:03
>>Будет скучно,почитай:
Почитал... в шоке... То ли я такой тупой, то ли что то недопонимаю. А у вас партионный учет не ведется, переносите все справочники... а как же документы? где они?
(0) >> и удаляю все документы до указанной даты буквально за 20 минут
Так надо удалять не документы до указанной даты а документам по которым не висят долги. А в принципе могут существовать документы любой даты.

P.S. Типовую свертку неглупые люди писали, может быть не совсем оптимально.
8. LenaTorpeda 25.12.08 03:22 Сейчас в теме
(7) Документацию ведет бухгалтерия. Отдельно .Магазинов в одной фирме -12 ,а бухгалтерия одна.Учет по бухгалтерии суммовой,так,что им абсолютно безразлично сколько висит в кредите поставщика.
5. tango 545 24.12.08 15:39 Сейчас в теме
6. LenaTorpeda 24.12.08 16:15 Сейчас в теме
9. LenaTorpeda 25.12.08 03:23 Сейчас в теме
Кредит поставщика,я имела ввиду в ТиС
10. LenaTorpeda 25.12.08 03:27 Сейчас в теме
Ну и напоследок.Это работет !!!! Попробуй и тебе понравится.:)
17. WiseSnake 1521 26.12.08 09:43 Сейчас в теме
(10) На базах моих клиентов такое точно не сработает. Если они не будут знать остатки в разрезе поступления они меня загрызут. Да и полный бред в базе будет.
11. CheBurator 2712 25.12.08 03:45 Сейчас в теме
ндя.. а регистр "реализованный товар"..? и прочие "партионные регистры"?
14. LenaTorpeda 25.12.08 19:40 Сейчас в теме
(11) Подскажи,пожалуйста,зачем тебе регистр "реализованный товар", например за позапрошлый год? Тем более что все данные остаются в "старой" базе. И оператор ,если уж очень потребуется,вседа ее может открыть и сделать отчет.
16. CheBurator 2712 26.12.08 01:42 Сейчас в теме
(14) Шоб було! Как говорится: запас карман не тянет.. ;-)
Я, например, вообще не сторонник обрезок баз если этого только не требуется ввиду того что железо перастало справляться...
12. CheBurator 2712 25.12.08 03:47 Сейчас в теме
все эти решения хороши тем что они - частные.. а типовая свертка - универсальная...
13. kasperok 31 25.12.08 11:34 Сейчас в теме
ну не знаю, если у вас ведется партионный учет + у меня не совсем типовая конфигурация с регистром партий весов 1.9 гига, и в эти 6 часов входит очистка базы от документов, исправление базы. Так, заявление что это очень долго не совсем корректно. А что касается типовые сверки, она создает слишком много документов, а всего то требуется выгрузить итоги по регистрам и сделать движении дублирующие эти итоги и все.
15. GJosh 29 26.12.08 00:10 Сейчас в теме
Буква "Т" на консоли западает, что ли?
18. Dolly_EV 269 16.01.09 04:34 Сейчас в теме
Вот это посмотрите: http://infostart.ru/projects/1538/
док "Архив" - универсальный
если пометка на удаление доков прошлого периода на дбф - откатить БухИтоги до первого документа и помечать пачками через
НачатьТранзакцию()
-
ЗафиксироватьТранзакцию()

и будет вам щастие))
19. yuraos 1003 22.11.11 07:09 Сейчас в теме
Скрипт, приведенный в статье, гарантированно наплодит битых ссылок в базе.
Он удаляет записи в таблице журнала документов и во всех таблицах где есть имя колонки 'IDDOC'.
Фактически это таблицы шапки документа, табличной части документа и таблицы движений по "регистрам" (в общем смысле включая проводки, историю реквизитов справочников и записи ЖР).
При этом не учитывается,
что ссылки на документ могут быть в других таблицах и в других колонках.
Поэтому после делается тестирование-исправление.
Но у меня на моих размерах оно делается где-то двое суток!!!
Меня такое щастье как-то не очень устраивает!
Оставьте свое сообщение