Предлагаю вашему вниманию внешнюю обработку-конструктор для подготовки SQL-скрипта, который может
- Очищать текстовые реквизиты
- Заменять значение текстовых реквизитов на GUID
- Удалять таблицы
При первом открытии надо нажать кнопку "Заполнить дерево МД". В дерево попадут:
- все объекты, имеющие табличную сущность: основные реквизиты, табличные части, изменения…
- все реквизиты, имеющие текстовый тип данных
Ставим где нужно флаг "Кодировка" и выбираем доступное для объекта действие. В поле "Запрос SQL" будет появляться собственно сам текст запроса.
Текст можно скопировать и выполнить в SQL Server Management Studio, не забыв при этом указать целевую базу. Длительность работы скрипта исчисляется минутами, а не часами и днями, если делать то же самое средствами платформы. В скрипте применяются команды UPDATE и TRUNCATE TABLE.
Настройки можно сохранить в файл и восстановить.
Обработка тестировалась на платформе 8.3.12.1567.
В качестве дисклаймера:
- перед запуском скрипта еще раз тщательно проверьте, что указана правильная база. И эта база точно не продуктив (!), а копия, которую вы решили передать внешнему миру. И сделайте полную копию, т.к. TRUNCATE TABLE — быстро чистит таблицу, но не оставляет следов в журнале транзакций, так что в случае чего откатить не удастся.
- обработка сама не меняет данные, полученный скрипт не меняет структуру, но всё же вносит изменения в содержимое базы данных нештатными средствами, поэтому — применяя скрипт к 1С-базе вы нарушаете лицензионное соглашение!
- возможно кто-то скажет, что это реплика, так и есть! Я честно скачал несколько похожих обработок с ИС, но ни одна из них меня не устроила, ни по функционалу, ни по удобству. Поэтому пришлось написать свою.
(0) Я бы добавил «красненьким», что это только для тех кто понимает, что делает. 🙂
А обычную форму и формирование скрипта для Postgres сделаете? 🙂
(2)
У меня нет постгресса, не на чем будет тестировать, он еще редко встречается…
С обычной формой наоборот — уже редко встречается…
Но если найдутся желающие взять мою обработку за основу для такого развития — я не против!
(1) Ну, кто добрался «до сладкого», то бишь до манажамент студио, тот уже понимает, что делает. 🙂
(3) Если проанализировать родной одинэсовский запрос в profiler’е, то там не всё так однозначно. Скажем, очистка адресного классификатора в УПП выглядит так:
DELETE FROM T1
FROM dbo._InfoRg19091 T1
SELECT DISTINCT T1._Fld19325_TYPE, T1._Fld19325_RTRef, T1._Fld19325_RRRef, T1._Fld19326
FROM dbo._InfoRg19324 T1
Прокомментируете или пофиг(трункатим скопом, а потом смотрим, жива таблица или амба)?
(5) Видеть бы еще ваш УПП, что за имена МД стоят за _InfoRg19091 и _InfoRg19324 ? )
Кстати, с удалением ссылочных объектов надо быть осторожнее в моей обработке, т.к. могут появится битые ссылки. Да и всякие зависимые таблицы (типа итогов и оборотов регистров) тоже не удаляются.
Это уже другая должна быть обработка — обрезка базы, немного другой подход.
Моя цель была — удалить или скрыть информацию, представляющую коммерческую тайну
(5) TRUNCATE ничего не знает о saas от 1с, поэтому платформа использует DELETE.
(6)
InfoRg19091 — таблица КЛАДРа
InfoRg19324 — регистр сведений версии объектов(у нас версионирование включено)
Да, согласна: с наскока не будет выигрыша, хотя подрихтовать базу от битых ссылок можно через конфигуратор с помощью тестирования/исправления
Не-е-е. Делать обфускатор на уровне СУБД — это к восстановлению битой базы и долгому интенсивному интиму…
(9) Конечно, если менять ссылочные реквизиты, а тут только строковые
(10) Всегда есть шанс цепануть что-то критическое…
Я для себя иначе поступил — написал конфу, которая берёт пустую cf и генерирует стендово-тестовое наполнение по заданным правилам. С тех пор базы у заказчиков не прошу, а прошу лишь логику и статистику их наполнения.
А обфускацию лучше имхо на уровне платформы делать.
(11) Ну это если вы на стороне подрядчика. А если вы на стороне заказчика хотите дать внешнему подрядчику базу, и у вас нет такой волшебной обработки? )
(1)и жирненьким и мигающим.
(12) или тебя по-твоему незаслуженно уволили
лол
Отличная обработка, как раз нужно было быстро обезличить большую базу. Чуть модифицировал под обычные формы.