Помощник динамического обновления

Данная обработка позволяет обезопасить конфигурационные таблицы базы 1С в базе MS SQL при динамическом обновлении за счет их выборочного резервного копирования.

Описание проблемы

Все мы знаем, что динамическое обновление — зло. Но когда на тобой стоит особа, приближенная к императору, говорящая, что «Все пропало!» и без немедленного динамического обновления, включающего 105-ю по счету печатную форму какого-нибудь шибко важного документа фирма не может работать и практически теряет по миллиону в минуту в этот самый ответственный момент времени, то приходится соглашаться, понимая, что все можен закончиться довольно печально.

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

Решение проблемы

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

В обработке всего 2 кнопки — Бекап таблиц и Восстановить таблицы.

При бекапе таблица конфигурации базы данных Config копируется в Config_bak внутри той же базы данных. Старая версия Config_bak при этом удаляется.

После этого своеобразного бекапа можно делать динамическое обновление. В случае сбоя, жмете на 2-ю кнопку, которая скопирует текущую таблицу конфигурации базы данных Config в Config_err, после чего копирует таблицу Config_bak в Config. Сбойную таблицу Config_err вы сможете потом на досуге проанализировать.

При желании, все вышеперечисленные процедуры можно производить и с таблицей конфигуратора ConfigSave.

На всякий случай напоминаю, что данный метод действенен для 1С 8.1/8.2 работающей в базе MS SQL.

И самое главное: во избежании проблем для себя любимого, переложите ответственность за данное действие с себя, на того, кто требует это обновление, предварительно объяснив ему  все возможные последствия этого.


5 Comments

  1. dbaser

    А чем не устраивает вариант с разностными бекапами средствами SQL сервера?

    А еще лучше перед обновлением сделать вообще полный.

    Reply
  2. Silenser

    (1) dbaser, Не устраивает временем, в моем случае полный бекап без работающих пользователей занимает 34 мин (221 Гб), с работающими — минут 40-45, дифференциальный существенно меньше, но для восстановления все равно потребуется время (в течение которого пользователи не смогут работать, т.к. требуется монопольный доступ). Тогда уж проще создать снепшот базы, это гораздо быстрее и меньше займет места.

    Reply
  3. Evil Beaver

    За картинку к статье и за финальный тезис — большой плюс! 😉

    Reply
  4. comol

    Всё гениальное просто 🙂

    Reply
  5. Silenser

    (3) Evil Beaver, (4) comol, Спасибо!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *