Если убил много данных и есть архив

Например при записи набора регистра неверно установил отборы или при оптимизации в эти наборы прочитал не все данные, то после такой обработки часть данных будет потеряна безвозвратно (причём как правило быстро). Или удалены объектные данные без проверки ссылочной целостности.
В этом случае мне известно два метода: средствами 1С сохранить нужные данные в структуру, которую методом ЗначениеВФайл сохранить в архивной базе и методом ЗначениеИзФайла прочитать в рабочей базе, написав код создания этих данных (желательно уже без ошибок).
Недавно испробовал второй способ: средствами SQL перенести часть данных из архивной базы в рабочую. На нём остановлюсь поподробней.
1. Обработкой нашёл таблицу с прибытыми данными (это был регистр накопления).
2. Написал две команды на SQL, переносящие требуемые данные (т.к. это были закрытые периоды, то хватило простого ограничения по дате). Команды для отладки:

BEGIN TRAN
USE WorkBase
DELETE FROM _AccumRg2305 WHERE _Period < CONVERT(DATETIME, '4003-03-01 00:00:00', 102)
INSERT INTO _AccumRg2305 (*) (SELECT * FROM BackBase.._AccumRg2305
WHERE _Period < CONVERT(DATETIME, '4003-03-01 00:00:00', 102))
ROLLBACK TRAN

Добавить комментарий

Ваш e-mail не будет опубликован.