Динамическое обновление больше не страшно! Сохранение таблицы Config перед динамическим обновлением


Обработка для резервного сохранения SQL-таблиц Config b ConfigSave перед динамическим обновлением, а также восстановления этих таблиц в случае сбоя.

Протестировано на релизе 1С:Предприятие 8.3 (8.3.9.2033)

Сделана по мотивам публикации //infostart.ru/public/324751/ 

Отличия:  сделана отдельной обработкой. 

Содержит обычную и управляемую формы. 

Не требует создания процедур на SQL-сервере.  

Требует логина и пароля администратора. 

Перед динамическим обновлением, чтобы не рисковать потерять базу данных (крайне редко, но случается)  копирует таблицы Config и ConfigSave из вашей базы данных в базу master, добавляя к имени таблицы  имя база данных, так как наверняка на вашем SQL-сервере не одна база. 

В случае сбоя, копирует таблицы обратно.  Копирование таблиц занимает секунды, сохраняет огромное количество времени. 

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

14 Comments

  1. madonov
    Reply
  2. ingmar

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

    Connection.Open(«Provider=SQLOLEDB.1; Server=»+Сервер+»; Database=»+ИмяБазы+»; Trusted_Connection=yes;»);
    
    Reply
  3. Tangram

    я так понимаю, на PostgreSQL не взлетит?

    Reply
  4. Evil Beaver

    По-моему, на ИС уже был автоматический триггер MSSQL, который при начале дин. обновления делал копию автоматически безо всяких «каждый 20 минут» и без ручных действий.

    Reply
  5. break
  6. info1i

    Помню, еще несколько лет назад я такое читал, скачал и применял. Похоже, что данная статья — дубль статьи: https://infostart.ru/public/237871/

    Могу, конечно, и ошибаться, но так похоже 🙂

    Reply
  7. madonov

    (4) Полезно, спасибо.

    Reply
  8. vovan_victory

    (1)А если повести выполнение обработки по расписанию?…

    Reply
  9. Silenser

    (6) Конечно копия, изобретение велосипедов — наше все!

    Reply
  10. info1i

    Пока вспомнил, подскажу важный нюанс: эти две таблицы не всегда спасают. Копировать надо еще таблицу dbschema или db_schema, как-то так.

    Reply
  11. dinopopyys

    Насчет «крайне редко» это автор смягчил. Иначе не нужна была обработка!)

    Reply
  12. svk

    А эта проблема ещё существует разве?? Как-то слышал, что давно побеждена 1с-никами…

    Reply
  13. Silenser

    (12)Это байки из 1Склепа 🙂

    Reply
  14. Magov

    Я сделал немного по другому.

    1. Организовал ежесуточное архивирование таблицы Config средствами SQL. В отдельную базу данных. Job стартует в 03:00, выполняет SELECT * into [БазаАрхивов].dbo.[Config] FROM [РабочаяБаза].[dbo].[Config].

    2. Сделал 1Совую обработку по выполнению скрипта из п.1, только копирую не в [БазаАрхивов].dbo.[Config], а «[_Config]». Дабы иметь и суточную и текущую копии.

    Восстанавливать, имхо, лучше не drop+create, а truncate + select into средствами менеджмент студии.

    Reply

Leave a Comment

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