Восстановление части данных из архива в рабочую базу данных

Опубликовал Алексей Константинов (alexk-is) в раздел Администрирование - Архивирование (backup)

Когда случилась неприятная ситуация...
Ситуация первая. Ввели документ прошлым периодом. Слетела граница последовательности. Восстановили и обнаружили, что поплыли отчетные данные прошлых периодов.
Ситуация вторая. Кто-то нажал "что-то" и были удалены элементы справочников прошлого периода без контроля целостности. Теперь в документах и отчетах "битые" ссылки.
Эта статья о том, что можно сделать в подобной ситуации. Не волнуйтесь. ВСЕ БУДЕТ ХОРОШО.
Только качественный контент

Есть и другие ситуации, в которых часть данных изменена "случайно", а часть изменена в процессе работы пользователей. И нужно восстановить именно "случайно" измененную часть данных, а остальное оставить как есть.

Исходим из того, что у нас есть архив, из которого данные можно перенести. Соответственно первое, что нужно сделать - это найти и развернуть (восстановить) архив. А дальше есть варианты...

Вариант 1. Воспользоваться обработкой ВыгрузкаЗагрузкаДанныхXML81.epf с диска ИТС. Выбрать объекты, выгрузить и загрузить.«Охрана труда» для 1С:Предприятия 8.2

Резюме 1. В данном случае выбор объектов для переноса выполняется практически вручную. А перенес движений по конкретному виду документа за период возможно, но весьма, весьма трудоемко.


Вариант 2.
Настроить правила обмена с помощью конфигурации "Конвертация данных". Т.к. конфигурации рабочей базы и архивной скорее всего идентичные, то особых проблем с настройкой правил обмена быть не должно. При загрузке можно прописать в обработчиках дополнительные условия, по которым принимать решение - загружать переданные из архивной базы данные или нет. Подробнее о конфигурации "Конвертация данных" можно почитать на диске ИТС или приобрести книгу http://v8.1c.ru/metod/books/book.jsp?id=121  

Резюме 2. Запрограммировать можно все. Поэтому в данном случае можно добиться очень высокого уровня автоматизации. Но есть небольшой недостаток: нужно уметь программировать...


Вариант 3.
Добавить план обмена "ВосстановлениеДанных" без РИБ с выключенной авторегистрацией для всех объектов в рабочей базе и в архиве. В модуле плана обмена прописать:

Функция ЗагрузитьИзмененияДанныхДляУзла(УзелОбмена, КоличествоЭлементовВТранзакцииНаЗагрузкуДанных = 0, ЧтениеXML) Экспорт
    Возврат
ПроцедурыОбменаДанными.ЗагрузитьИзмененияДляУзлаИзФайлаОбмена(УзелОбмена, КоличествоЭлементовВТранзакцииНаЗагрузкуДанных, ЧтениеXML);
КонецФункции

Функция
ВыгрузитьИзмененияДанныхДляУзла(УзелОбмена, КоличествоЭлементовВТранзакцииНаВыгрузкуДанных, ЗаписьXML) Экспорт
    Возврат
ПроцедурыОбменаДанными.ВыгрузитьИзмененияДляУзлаВФайлОбмена(УзелОбмена, КоличествоЭлементовВТранзакцииНаВыгрузкуДанных, ЗаписьXML);
КонецФункции

Добавить узел приемник в архиве и узел источник в рабочей базе для плана обмена "ВосстановлениеДанных". С помощью обработки РегистрацияИзмененийДляОбмена зарегистрировать нужные элементы справочников, документов и регистров. Добавить настройки обмена данными в обоих базах. Выгрузить данные из архива. Загрузить данные в рабочую базу.

Аналогично любые данные из любого архива можно будет перетащить в любое время. В дальнейшем модифицировать конфигурацию архива будет уже не нужно. Но после разворачивания (восстановления) архива, необходимо будет изменить имена узлов в архиве на противоположные.

В прилагающихся файлах есть конфигурация с планом обмена ВосстановлениеДанных. При объединении конфигураций необходимо оставить галочку только на плане обмена ВосстановлениеДанных, а после объединения конфигураций в составе плана обмена ВосстановлениеДанных указать все объекты информационной базы с выключенной авторегистрацией. Для этого выбрать в меню Действия - Включить все, выбрать в меню Действия - Запретить авторегистрацию для всех.

Для примера добавил обработку, которая позволяет зарегистрировать документы и их движения. Документы могут быть отфильтрованы за период по виду или по вхождению в последовательность. Также могут быть перенесены справочники по ссылкам первого уровня.

Регистрация документов для обменов

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

 

16.12.2009 /Константинов Алексей Викторович/

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

Наименование Файл Версия Размер
Регистрация документов и их движений
.epf 19,45Kb
28.08.12
313
.epf 19,45Kb 313 Скачать
План обмена Восстановление данных
.cf 22,00Kb
28.08.12
93
.cf 22,00Kb 93 Скачать

См. также

PowerTools от 1 000
Добавить вознаграждение
Комментарии
1. Александр Окулов (PowerBoy) 2542 17.12.09 07:28 Сейчас в теме
Я для таких целей использую свою обработку сравнения баз данных, и тупо сравниваю рабочию копию с резервной, выгружая измененные объекты.
http://infostart.ru/public/20683/
gutentag; artbear; +2 Ответить
2. Сергей (Che) Коцюра (CheBurator) 3366 20.12.09 12:58 Сейчас в теме
"Ситуация вторая. Кто-то нажал "что-то" и были удалены элементы справочников прошлого периода без контроля целостности." - это композитора надо убивать...
3. Алексей Константинов (alexk-is) 6063 20.12.09 13:40 Сейчас в теме
(2) Чаще всего это пользователь с полными правами, я бы сказал даже с абсолютными. Например, главный бухгалтер. Т.к. за организацию процесса учета отвечает он (она), то в его ведении любые манипуляции с базой данных, вплоть до удаления базы. Собственно и ответственность за эти действия тоже. У всех бывают "нечаянные" ошибки. А людям нужно давать второй шанс. Особенно тем, кто оплачивает твои счета...

Зачем далеко ходить, вот http://infostart.ru/forum/forum14/topic29834/
4. Сергей (Che) Коцюра (CheBurator) 3366 20.12.09 15:11 Сейчас в теме
(3) бред. причем полнейший. свидетельствующий о глобальных проблемах. Бух может обладать полными правами (но не должен). Бух при необходимости может - если это нужно - удалить базу. Но выполнять действия, которые приводят к "недостоверным" данным, приводящим к проблемам С РАБОТОЙ В БАЗЕ - это уже не "любые манипуляции"... Пользователь с такими правами должен понимать сущность своих действий и прочие последствия своих действий... А за "нечаянные" ошибки - ну так такая ошибка один раз может быть... и, лично я, не верю в "нечаянные ошибки" - все нечаянные ошибки с которыми я сталкивался - оказывались либо халатным отношением к выполняемым обязанностям, либо неквалифицированностью пользователей, допущенных к операциям, к которым в силу их НЕвалификации даже подходить нельзя...
...конечно же все вышесказанное - глубокое имхо...
5. Сергей (Che) Коцюра (CheBurator) 3366 20.12.09 15:15 Сейчас в теме
(4) возможно, к (4) надо добавить соображение о том, что такие нечаянные ошибки вызваны недостаточностью финансирования штатных единиц в фирме... очень часто владельцы бизнеса относятся по типу "ну как-нибудь.. так..." - вот и делают... как-нибудь..так... ненчаянно.. ну я попробовала, а оно.. вот....
6. Алексей Константинов (alexk-is) 6063 28.12.09 11:03 Сейчас в теме
Может и так. Но когда проблема возникнет, то кроме вопроса "Кто виноват" встанет вопрос "Что делать". Хотелось бы быть во всеоружии, а не мучатся головной болью.
7. Anatolii Karasev (KapasMordorov) 402 22.01.10 09:53 Сейчас в теме
Резюме 1. В данном случае выбор объектов для переноса выполняется практически вручную. А перенес движений по конкретному виду документа за период возможно, но весьма, весьма трудоемко. По нескольку раз придется заполнять списки регистраторов для регистров.

Флажок "Выгружать с документом все его движения".
Для выбора объектов для переноса есть возможность применить запрос.
Замечательный инструмент.

Хотя вариант 3 мне нравится больше. В нем перенос можно сделать точнее, но при этом писать код для регистрации.
8. Артем Бичинов (arteast) 87 19.04.10 10:45 Сейчас в теме
Я немного доработал Ваше творение (Регистрация документов для обмена) под себя. Если пригодится Вам или кому ещё можно взять отсюда
9. Станислав Турчинский (Istur) 1321 29.04.10 12:31 Сейчас в теме
(0) Ты не мог бы добавить свою обработку также в раздел "Каталог → УПРАВЛЕНИЕ ДАННЫМИ, ОБРАБОТКА → Обмен данными"?
10. Станислав Турчинский (Istur) 1321 29.04.10 12:32 Сейчас в теме
(8) Добавь пожалуйста свою разработку с того сайта на infostart
11. Алекс Мархель (wjickey) 72 09.01.12 21:08 Сейчас в теме
(2) CheBurator, целиком поддерживаю. Нельзя давать бухгалтерам прав больше, чем положено. Не все бухгалтера при приеме на работу проходят проверку проф-пригодности и в отличие от водителей никто не предоставляет справки из ПНД.
12. Алекс Мархель (wjickey) 72 09.01.12 21:34 Сейчас в теме
Я сторонник универсальности и противник "вскрытия пациента" без надобности. Гораздо более гуманно использовать в совокупности "Вариант 1" и "Вариант 2". Работаю над автоматизацией процесса отбора ссылок для переноса. Как буду готов - выложу.
14. NovSL NovSL (NovSL) 9 17.03.12 17:57 Сейчас в теме
Однако все так просто. Честно завидую людям, которые так просто решили проблему, до которой сам не додумался. Огромное спасибо за идею. Сегодня же реализую
16. Fomix (fomix) 19 05.12.12 10:24 Сейчас в теме
(8) arteast, При попытке скачать пишет: Произошла ошибка: файл не найден!
17. Артем Бичинов (arteast) 87 05.12.12 10:26 Сейчас в теме
Хм..может удалили уже за столько то времени, скажите Вашу почту - я вышлю на неё.
18. Eugen Krivylia (EugenLiquor) 06.03.14 15:05 Сейчас в теме
Довольно таки хороший способ, автору спасибо за него, но я предпочитаю пользоватся другой обработкой, она гораздо проще в использовании и процессе восстановления!