Добрый день, коллеги.
Есть ли какая-то возможность при создании копии средствами SQL очищать параметры синхронизации? Не отключать регл. задания, а зачищать параметры синхронизации (каталоги). При создании копий 1 раз из 10 забывают изменить пути и данные начинают улетать в рабочую базу.
---
Для подготовки копии базы к разработке или тестам я делал скрипт для MSSQL, который очищает самые большие таблицы вроде истории данных, конфиденциальную информацию и настройки. После разворачивания базы просто проходился по ней этим скриптом и получал нужный результат. Скрипт пишется под конкретную конфигурацию с указанием конкретных имен таблиц.

Пример:

```1c
    --Скрипт генерирует запросы на очистку и последующее сжатие таблиц указанной базы данных
    --Результат выполнения скрипта скопировать и выполнить как новый запрос

    DECLARE @DataBase varchar(30)
    SET @DataBase = 'erp-1234' --Указать имя базы

    DECLARE @sql varchar(100)
    set @sql = 'use ' + quotename(@DataBase)
    exec (@sql)

    SEL ECT 'USE [' + @DataBase + ']'
    UNI ON ALL
    SEL ECT 'TRUNCATE TABLE ' + name FR OM sys.objects WHERE type in (N'U') and name LIKE '%Document%' --Все документы
    UNI ON ALL
    SELECT 'TRUNCATE TABLE ' + name FR OM sys.objects WHERE type in (N'U') and name LIKE '%AccumRG%' --Все регистры накопления
    UNI ON ALL
    SELECT 'TRUNCATE TABLE _DataHistoryVersions' --ИсторияДанных
    UNI ON ALL
    SEL ECT 'TRUNCATE TABLE _DataHistoryLatestVersions1' --История данных платформа
    UNION ALL
    SEL ECT 'TRUNCATE TABLE _DataHistoryQueue0' --История данных платформа
    UNION ALL
    SEL ECT 'TRUNCATE TABLE _InfoRg34207' --История БСП
    UNION ALL
    SEL ECT 'DBCC SHRINKFILE (N''' + mf.name + N''' , 0)' --Сжатие базы и лога
    FR OM
    sys.master_files mf
    JOIN sys.databases d
    ON mf.database_id = d.database_id
    WH ERE d.database_id > 4 and d.name = @DataBase
```

И ещё была похожая задача - решить проблему путаницы рабочей и тестовых баз при переключении между RDP. Для этого я делал расширение, добавляющее в метаданные константу, в которой хранится имя рабочей базы к кластере. При первичном запуске базы константа заполняется текущим именем базы в кластере, которое можно получить при помощи метода СтрокаСоединенияИнформационнойБазы(), а если она уже заполнена, то её значение сравнивается с текущим именем базы в кластере. При несовпадении инициируется изменение цвета интерфейса на отличный от стандартного. Само собой разумеется, что никому не придет в голову создавать копию базы с именем, как у рабочей.
---
никак. только заблокировать задания и после изменения параметров включать.
---
Для подготовки копии базы к разработке или тестам я делал скрипт для MSSQL, который очищает самые большие таблицы вроде истории данных, конфиденциальную информацию и настройки. После разворачивания базы просто проходился по ней этим скриптом и получал нужный результат. Скрипт пишется под конкретную конфигурацию с указанием конкретных имен таблиц.

Пример:

```1c
    --Скрипт генерирует запросы на очистку и последующее сжатие таблиц указанной базы данных
    --Результат выполнения скрипта скопировать и выполнить как новый запрос

    DECLARE @DataBase varchar(30)
    SET @DataBase = 'erp-1234' --Указать имя базы

    DECLARE @sql varchar(100)
    set @sql = 'use ' + quotename(@DataBase)
    exec (@sql)

    SEL ECT 'USE [' + @DataBase + ']'
    UNI ON ALL
    SEL ECT 'TRUNCATE TABLE ' + name FR OM sys.objects WHERE type in (N'U') and name LIKE '%Document%' --Все документы
    UNI ON ALL
    SELECT 'TRUNCATE TABLE ' + name FR OM sys.objects WHERE type in (N'U') and name LIKE '%AccumRG%' --Все регистры накопления
    UNI ON ALL
    SELECT 'TRUNCATE TABLE _DataHistoryVersions' --ИсторияДанных
    UNI ON ALL
    SEL ECT 'TRUNCATE TABLE _DataHistoryLatestVersions1' --История данных платформа
    UNION ALL
    SEL ECT 'TRUNCATE TABLE _DataHistoryQueue0' --История данных платформа
    UNION ALL
    SEL ECT 'TRUNCATE TABLE _InfoRg34207' --История БСП
    UNION ALL
    SEL ECT 'DBCC SHRINKFILE (N''' + mf.name + N''' , 0)' --Сжатие базы и лога
    FR OM
    sys.master_files mf
    JOIN sys.databases d
    ON mf.database_id = d.database_id
    WH ERE d.database_id > 4 and d.name = @DataBase
```

И ещё была похожая задача - решить проблему путаницы рабочей и тестовых баз при переключении между RDP. Для этого я делал расширение, добавляющее в метаданные константу, в которой хранится имя рабочей базы к кластере. При первичном запуске базы константа заполняется текущим именем базы в кластере, которое можно получить при помощи метода СтрокаСоединенияИнформационнойБазы(), а если она уже заполнена, то её значение сравнивается с текущим именем базы в кластере. При несовпадении инициируется изменение цвета интерфейса на отличный от стандартного. Само собой разумеется, что никому не придет в голову создавать копию базы с именем, как у рабочей.