gifts2017

Корректный перенос остатков из другой базы через COM

Опубликовал Damian (Damian) в раздел Обработки - Свертка базы

Заканчивается год. База весит почти 4 Гб. Неплохо было бы начать новую. НО! В старой базе бухгалтер еще весь январь будет подгонять данные, а потом надо чтобы эти остатки правильно отображались в новой базе.

Уже не первый раз сталкиваюсь с ситуацией, когда надо обрезать базу, начиная с 1 января, но в старом периоде еще возможны правки документов.

Предложенная обработка только иллюстрирует приемы, как корректно перенести остатки, не претендуя на полноту реализации.

Общий алгоритм создания "новой" базы:

  1. Копируем старую базу и называем ее "Новая"
  2. Из новой базы запускаем обработку переноса остатков по состоянию, например, на 31 декабря 23:59:59, которая создаст документы "Корректировка записей регистров"
  3. Помечаем на удаление все документы, дата которых меньше даты переноса
  4. Работаем в новой базе
  5. В течении какого-то периода (например, месяц) в старой базе производятся манипуляции данными.
  6. После того как в старой базе все подогнано, удаляем созданные ранее документы "Корректировка записей регистров" и выполняем перенос остатков заново, опять таки по состоянию на 31 декабря 23:59:59.
  7. Физически удаляем в новой базе документы, помеченные на удаление. Те документы, которые засветились в регистрах, само собой, удалить не удастся. С этим придется смириться.

Как работает обработка.

Она подключается к старой базе, используя COMОбъект. Выполняются запросы к регистрам, получаются остатки.

Потом, перебирая результат запроса получаем уникальные идентификаторы объектов в старой базе, по которым потом ищем эти объекты в новой базе.

Есть, конечно, один нюанс. Если за время подгонки старой базы в ней будут созданы новые объекты (элементы справочников, документы), которые попадут в остатки, эти объекты, само собой, в новой базе найдены не будут. И соответственно в регистрах будут записи с полями <Объект не найден>. Исправить это можно будет проведением тестирования базы, указав, что несуществующие объекты надо создать.

Еще раз повторюсь, обработка не претендует на полноту реализации и предлагается только лишь в качестве иллюстрации методов работы с идентичными объектами в двух базах.

Скачать файлы

Наименование Файл Версия Размер
ОстаткиИзДругойБазы.epf 388
.epf 16,27Kb
26.02.11
388
.epf 16,27Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Артур Аюханов (artbear) 26.02.11 14:25
небольшой ОФФ. А зачем вообще резать базу? акты сверок/взаимозачетов сразу летят, и т.д., и т.п.
Расчет всяких амортизаций нужно проверять и т.п.
А вдруг руководитель захочет получить какие-то сводные или сравнительные данные за несколько лет?
4 Гб не самый большой размер :)
2. Damian (Damian) 26.02.11 14:45
artbear пишет:
А зачем вообще резать базу? акты сверок/взаимозачетов сразу летят, и т.д., и т.п.
Согласен, но иногда так хочется начать жизнь с чистого листа :)
3. Сергей Ожерельев (Поручик) 26.02.11 17:33
4 гектара размер базы не повод начинать новую базу. 4 гектар - это такие семечки, что и внимания не стоят.
4. Алексей (Alav) 26.02.11 18:49
4 га для чего?

Для файловой БП - это уже критично, для скульной УТ - это семечки
5. Антон Шишкин (geroy777) 28.02.11 16:10
Alav пишет:
Для файловой БП - это уже критично

Не критично. Проверил на собственной шкуре ))) Вот когда за 20 гб перевалило - это да, это критично стало. Сейчас 3 Гб набралось за 50 дней 2011-го года. К концу года выйдем на 22-24 Гб и опять обрезка :D . Жить можно (хоть и долго, но на SQL денег не выделяют :cry: ).
6. Сергей Огородников (Serg O.) 02.03.11 14:12
geroy777 пишет: но на SQL денег не выделяют
geroy777

SQL 2005 express RUS свободно лежит на сайте Microsoft не один год уже...
поищи "скачать SQLEXPR_ADV_RUS.EXE"
вопрос только в легальности ключа на "Сервер 1С 8" остается...
7. Master (master-73) 24.05.11 14:06
(6)
Ограничения для sql2005 express:
1. использует только 1 ЦПУ
2. использует только 1 ГБ памяти
3. использует только до 4Гб размер базы

Мой опыт: 1С8 + sql2005 express 4 гектара за 3 месяца работы в оптово-розничной торговле
8. Serg (Sykoku) 12.09.11 13:38
"Засвеченные" документы удаляются достаточно простым способом - свертки базы надо сделать две:
Первая - на 31-е декабря.
Вторая - на 1-е января.
Результат- вторая свертка ссылается исключительно на созданные 1-й сверткой документы. Если Ваша конфигурация этого не позволяет - могу опубликовать реализованный механизм для 7.7.
9. Анатолий Дмитрук (progres488) 20.10.11 19:28
Это вытаскивание с идентичных баз, или можно с одной в другую перетащить?
10. Damian (Damian) 20.10.11 20:18
(9) Если перетаскивать из одной базы в другую, это уже не свертка получается, а обмен данными.
Данная обработка перетягивает данные между идентичными базами.
12. Andrey Cherkasov (avcherkasov) 20.08.12 18:15
Свёртка универсальная для всех конфигураций или её надо дописывать под УТП?
13. Дмитрий Ярославцев (DimanYa) 21.09.12 09:32
А правда зачем резать базу?
Насколько я понимаю, когда работаешь с базой 1С 7.7 то работаешь как бы со всей базой сразу и всеми доками. Поэтому обрезать 1с 7.7 был смысл.
8.2 уже построена немного по другому принципу. При работе ты работыешь только с кусочком данных от самой базы. Даже когда отрываешь журнал документов, ты работаешь только с документами, которые отражаются в данный момент на экране.
Поэтому зачем резать?
Если только чтобы делать резервные копии?

А по поводу нет денег на сервер MS SQL, так поставьте PostgreSQL и будет вам счасть.
Да разница в этих серверах есть, но если всё нормально настроить, то пользователи и разницы не увидят.
14. arjuna (arjuna) 31.10.12 13:20
Не переносит регистры сведений, ну и кончечно заточена под определенную конфу, для других не подойдет. Но даже для УТП как перенести изменения в документах касающихся основных средств?
15. Damian (Damian) 31.10.12 20:56
(14) заточена она не просто под определенную конфу, а под сильно переписанную :), но универсальность и не преследовалась - это так, пример.
Касательно ОС - чем они отличаются от тех же товаров? Произвести те же манипуляции с регистрами ОС, что и с товарными да и все.
PS. Как по мне, эта публикация уже устарела. Я сам уже не пользуюсь подобным методом, в основном конвертацией все переносится.
16. dfxi dfxi (agr) 11.04.13 12:48
Я не в коем случае не умаляю Вашего трудолюбия, но всё равно, хоть убей не вижу отличия по функционалу или же превосходства Вашей обработки над стандартной (коей пользуюсь уже несколько лет).
Дело даже не в какой-то рекламе, а в том, что Вы позиционируете обработку как "очень простую" - значит у Вас есть на это причины . Можете ими поделиться ? (возможно какие-то инновации в разработке).
Всегда приятно узнать новые приёмы программирования )))
17. Dmitry Bas (b-dm) 18.11.16 18:08
А между разными версиями 8-ки работает ?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа