|
v7: Обрезка базы бухучёта. | ☑ | ||
---|---|---|---|---|
0
brenli
16.01.12
✎
09:28
|
Доброго времени.
Нужно обрезать базу. Стандартная свёртка не работает так как конфа немного не типовая. Да и работать она будет долго, а времени нет. Придумал сделать обрезку таким способом. 1) Получаю остатки по счетам с аналитикой и создаю операции. 2) Сдвигаю бухгалтерские итоги до момента 1 записи в базе чтобы ускорить процесс пометки на удаление документов. 3) Помечаю на удаление все доки кроме созданных операций в пункте 1. 4) Штатной обработкой через контроль удаляю всё что можно удалить. 5) Возвращаю актуальную дату бух итогов. 6) Упаковываю базу. Прошу ваших советов по эффективности этого метода. Во вторых. У некоторых счетов нет итогов по субконто, но есть итоги в целом по счёту. Как с ними быть? Вводить с пустым субконто? Заранее благодарен. |
|||
1
Азат
16.01.12
✎
09:33
|
пометку удаления выполняй в транзакции по 300-400 документов и будет тебе счастье...
вто-вторых, да |
|||
2
vladko
16.01.12
✎
09:33
|
wrap.ert, вообще говоря, универсальная обработка, независимо от того, типовая конфа по бухучёту или самописка
|
|||
3
brenli
16.01.12
✎
09:36
|
vladko
Она долго работать будет, на что времени нет. |
|||
4
ПиН
16.01.12
✎
09:36
|
нет итогов по субконто, но есть итоги в целом по счёту. Как с ними быть? Вводить с пустым субконто?
этот вопрос целесообразно задать бухам, возможно они захотят аналитику видеть... |
|||
5
ПиН
16.01.12
✎
09:37
|
(3) из опыта - если нет времени на обрезание и свертку - лучше их вообще не начинать...
|
|||
6
Somebody
16.01.12
✎
09:40
|
( 5) присоединяюсь. свертка, сделанная наспех , может обернуться нехилым гемором.
|
|||
7
Сияющий Асинхраль
16.01.12
✎
09:40
|
Быстро можно создать бух справки с остатками счетов и перенести их в пустую конфу, например, импорт77-экспорт77
|
|||
8
brenli
16.01.12
✎
09:41
|
ПиН
А надо, очень надо. (7) 1) Получаю остатки по счетам с аналитикой и создаю операции. 2) Сдвигаю бухгалтерские итоги до момента 1 записи в базе чтобы ускорить процесс пометки на удаление документов. 3) Помечаю на удаление все доки кроме созданных операций в пункте 1. 4) Штатной обработкой через контроль удаляю всё что можно удалить. 5) Возвращаю актуальную дату бух итогов. 6) Упаковываю базу. Так не канает? С участием 00 сч? |
|||
9
brenli
16.01.12
✎
09:48
|
Пока БИ.ПолучитьСчет()=1 Цикл
БИ.ВыбратьСубконто(1); Опер.Новая(); Опер.ДатаОперации = КонДата; Если (БИ.Счет = СчетПоКоду("84.1")) Тогда Опер.НоваяПроводка(); Если БИ.СКД(1)<>0 Тогда Опер.Дебет.Счет = БИ.Счет; Опер.Дебет.Субконто(1,БИ.Субконто(1)); Опер.Дебет.Субконто(2,БИ.Субконто(2)); Опер.Дебет.Субконто(3,БИ.Субконто(3)); Опер.Кредит.Счет = СчетПоКоду("00"); Опер.Количество = БИ.СКД(3); Опер.Сумма = БИ.СКД(1); Иначе Опер.Дебет.Счет = СчетПоКоду("00"); Опер.Кредит.Счет = БИ.Счет; Опер.Кредит.Субконто(1,БИ.Субконто(1)); Опер.Кредит.Субконто(2,БИ.Субконто(2)); Опер.Кредит.Субконто(3,БИ.Субконто(3)); Опер.Количество = БИ.СКК(3); Опер.Сумма = БИ.СКК(1); КонецЕсли; Опер.Записать(); Сообщить(" "+БИ.Счет+" "+БИ.Субконто(1)+" "+БИ.Субконто(2)+" "+БИ.Субконто(3)+" СНД "+БИ.СНД(1)+" СКД "+БИ.СКД(1)+" "+БИ.СКД(3)+" "+БИ.СНК(1)+" "+БИ.СКК(1)+" "+БИ.СКК(3)+" "+БИ.ДО(1)+" "+БИ.КО(1)); КонецЕсли; Пока БИ.ПолучитьСубконто(1)=1 Цикл Опер.НоваяПроводка(); Если БИ.Счет.Забалансовый = 0 Тогда Если БИ.СКД(1)<>0 Тогда Опер.Дебет.Счет = БИ.Счет; Опер.Дебет.Субконто(1,БИ.Субконто(1)); Опер.Дебет.Субконто(2,БИ.Субконто(2)); Опер.Дебет.Субконто(3,БИ.Субконто(3)); Опер.Кредит.Счет = СчетПоКоду("00"); Опер.Количество = БИ.СКД(3); Опер.Сумма = БИ.СКД(1); Иначе Опер.Дебет.Счет = СчетПоКоду("00"); Опер.Кредит.Счет = БИ.Счет; Опер.Кредит.Субконто(1,БИ.Субконто(1)); Опер.Кредит.Субконто(2,БИ.Субконто(2)); Опер.Кредит.Субконто(3,БИ.Субконто(3)); Опер.Количество = БИ.СКК(3); Опер.Сумма = БИ.СКК(1); КонецЕсли; Опер.Записать(); // Сообщить(" "+БИ.Счет+" "+БИ.Субконто(1)+" "+БИ.Субконто(2)+" "+БИ.Субконто(3)+" СНД "+БИ.СНД(1)+" СКД "+БИ.СКД(1)+" "+БИ.СКД(3)+" "+БИ.СНК(1)+" "+БИ.СКК(1)+" "+БИ.СКК(3)+" "+БИ.ДО(1)+" "+БИ.КО(1)); Иначе Прервать; КонецЕсли; (Часть кода) Алгоритм работает как надо заморочка только со счетами с оборотным субконто |
|||
10
ПиН
16.01.12
✎
09:49
|
(8) как вариант - сделай свертку и пометку на удаление, а саму процедуру обрезания перенеси на выходные... (про бэкапы не забываем)
|
|||
11
Сияющий Асинхраль
16.01.12
✎
09:50
|
Вариант (7) частенько быстрее - всего два шага и девственно чистая база. (4) для материалов и номры удобно суммовые остатки распределять пропорционально колву
|
|||
12
brenli
16.01.12
✎
09:53
|
Сияющий Асинхраль
(11) это штатная обработка экспорт77-импорт77? |
|||
13
ПиН
16.01.12
✎
09:54
|
(11) а как быть с справочниками, по которым нет остатков, как быть с периодическими реквизитами?
|
|||
14
Сияющий Асинхраль
16.01.12
✎
09:59
|
(12) да, с итс. (13) Теми же обработками перенести
|
|||
15
ПиН
16.01.12
✎
10:01
|
(14) ты сразу это пиши, а то получается совет в (7) не полный
|
|||
16
ПиН
16.01.12
✎
10:05
|
штатные обработки все-таки хороши для типовых, понятно, что их можно достаточно быстро придолжным умении допилить, но не всегда это получается быстро ))) кстати (0) советую найти сайт небузызвестного фиксина, у него для 77 замечательныя подборка для обрезания баз
|
|||
17
Сияющий Асинхраль
16.01.12
✎
10:16
|
(15) я с мобилы пишу, поэтому коротко, но эти обработки к типовым не привязаны, работают везде.
|
|||
18
ПиН
16.01.12
✎
10:18
|
(17) есть еще один нюанс при таком пути - к концу отчетного периода бухи вспомнят, что им нужна первичка за прошлый год и тогда прога ждет увлекательный процесс еще одного переноса из старой в новую базу
|
|||
19
Джордж1
16.01.12
✎
10:18
|
Это wrap.ert долго работает? Не верю.
И режет она замечательно полностью нетиповые базы. |
|||
20
ПиН
16.01.12
✎
10:24
|
(19) наверно он пытается резать, когда в базе пользователи сидят как вариант, либо на слабенькой машине...
|
|||
21
Сияющий Асинхраль
16.01.12
✎
10:34
|
(18) первичка за прошлый год спокойно лежит в базе за прошлый год, но вообще (19) прав, эта штука режет все, максимум пару строк придется очень редко поправить
|
|||
22
brenli
16.01.12
✎
11:23
|
(20,21) база SQL весит 4 Gb. Уж очень не быстро работает даже на 4 ядерной машинке. Если учесть сколько она не резалась представте сколько в ней доков.
|
|||
23
Эльниньо
16.01.12
✎
11:26
|
(22) Базёнка.
|
|||
24
ПиН
16.01.12
✎
16:02
|
(22) напиши мне на мыло, поможем чем можем, 4 гига - база средних размеров, я на 77 видел и по 20 гигов базы и ничего, живой...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |