Народ, помогите плиз.
Стоит задача: предоставить копию сервера третьим лицам.
Но нада базу обезличить, ибо персональные данные.
Необходимо Всех сотрудников переименовать в Ивановых Иванов Ивановичей,
контрагентов желательно в Контрагент1, Контрагент2...
Зарплату выставить все 1000 рублей
Остальное пока в голову не приходит.
Может у кого есть готовый скрипт в склянку?
Обезличивание данных
Модераторы: m0p3e, edward_K, Модераторы
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: Обезличивание данных
что то подобное было тут :
ftp.galaktika.ru/pub/support/galaktika/bug_fix/util_obezlichBD
но не пробовал сам
ftp.galaktika.ru/pub/support/galaktika/bug_fix/util_obezlichBD
но не пробовал сам
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Обезличивание данных
там лотик, который вместо фио ставит nrec например , наименование организаций также и .т.п.
-
- На пенсии
- Сообщения: 797
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г. Тюмень
- Контактная информация:
Re: Обезличивание данных
Может кому понадобиться.
Писал давненько, давно не было необходимости использования.
Возможно, что-то потребует дописать.
Писал давненько, давно не было необходимости использования.
Возможно, что-то потребует дописать.
Код: Выделить всё
const Max_Catalogs: LongInt = 31;
const Max_Modules: LongInt = 131071;
end;
Interface MF_TEmpty 'Обезличивание и очистка баз' EscClose, Gray;
Show At ( 1,1,70,30 );
Table Struct TmpTable
(
cNum: Comp,
cRec: Comp
)
with index
(
TmpTable01 = cNum,
TmpTable02 = cRec
);
Create View
Var
wCatalog, wModule: LongInt;
As Select *
From
KatOrg(KatOrg02), KatBank(KatBank06),
Persons(PersByFIO), KatOS(KatOS02),
KlPrice(KlPrice02)
;
Screen ScMain 'ВНИМАНИЕ!';
Fields
wCatalog: NoProtect;
wModule: NoProtect;
'ВНИМАНИЕ!': Skip,
{Font = {Color = ColorSysRed
Bold = True}};
'ВЫПОЛНЕНИЕ ЭТОЙ ОПЕРАЦИИ ПРИВЕДЕТ К ПОТЕРЕ ИНФОРМАЦИИ!!!' ('Предупреждение'): Skip,
{Font = {Color = ColorSysRed
Bold = True}};
Buttons
cmBut,,,'тогда жмите сюда и надейтесь на то, что вам это больше не понадобиться';
cmClose,,,'быстрее жмите сюда, а то мало ли что...';
<<
┌─ ` Каталоги ` ───────────────┐ ┌─ `Модули ` ────────────────────┐
│ [.] Справочник организаций` │ │ [.] Управление снабжением ` │
│ [.] Справочник банков ` │ │ [.] Управление сбытом ` │
│ [.] Картотека сотрудников ` │ │ [.] Касса ` │
│ [.] Картотека ОС ` │ │ [.] Управление договорами ` │
│ [.] Прайс-листы ` │ │ [.] Консигнация ` │
└─────────────────────────────┘ │ [.] Складской учет ` │
│ [.] Давальческое сырье ` │
│ [.] Клиент ` │
│ [.] Поставщики, получатели ` │
│ [.] ФРО ` │
│ [.] Ведение налоговых расчетов ` │
│ [.] Векселя и кредиты ` │
│ [.] Платежный календарь ` │
│ [.] Управление бюджетом ` │
│ [.] Управление персоналом ` │
│ [.] Заработная плата ` │
│ [.] Автотранспорт ` │
└──────────────────────────────────┘
.@@@@@@@@
.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
<. Вы уверены что делаете .> <. Кнопка для сомневающихся .>
>>
End; // screen
#declare MyInit(InitStr)
SetVisualHeader(string(#InitStr))
Delete all TmpTable;
#end
#declare MyIns(TableName, PosRec)
Insert TmpTable Set
TmpTable.cNum := #PosRec,
TmpTable.cRec := #TableName.nRec;
#end
#declare MyUpd(TableName, TableField, sFieldValue)
if GetFirst #TableName where ((TmpTable.cRec == #TableName.nRec)) = tsOk
{
Update Current #TableName Set
#TableField := String(#sFieldValue);
}
#end
HandleEvent
cmBut:
{
var cI: Comp;
StartNewVisual(vtRotateVisual, vfTimer, 'Корректировка', 0);
//Каталог Организаций
if (wCatalog and 1) = 1
{
#MyInit('Корректировка справочника Организаций')
cI := 0;
_loop KatOrg
{
cI := cI + 1;
#MyIns(KatOrg, cI)
Update Current KatOrg Set
KatOrg.Code := '',
KatOrg.TipOrg := '',
KatOrg.Addr := '',
KatOrg.OKPO := '',
KatOrg.OKDP := '',
KatOrg.OKONH := '',
KatOrg.Tel := '',
// KatOrg.cState := 0,
KatOrg.cCity := 0,
KatOrg.TipKnt := 0,
// KatOrg.Corpoin := 0,
KatOrg.UNN := '',
KatOrg.KodPlatNDS := '',
// KatOrg.NeedCustom := 0,
KatOrg.MaxDolgRub := 0,
KatOrg.MaxDolgVal := 0,
KatOrg.Skid := 0,
KatOrg.IndexK := 0,
KatOrg.KodPlatNDS := 0//,
// KatOrg.IsArch := 0
;
}
_loop TmpTable
{
#MyUpd(KatOrg, KatOrg.Name, ('Организация №' + TmpTable.cNum))
}
}
//Каталог Банков
if (wCatalog and 2) = 2
{
#MyInit('Корректировка справочника Банков')
cI := 0;
_loop KatBank
{
cI := cI + 1;
#MyIns(KatBank, cI)
}
_loop TmpTable
{
#MyUpd(KatBank, KatBank.Name, ('Банк №' + TmpTable.cNum))
}
}
//Каталог Сотрудников
if (wCatalog and 4) = 4
{
#MyInit('Корректировка картотеки Сотрудников')
cI := 0;
_loop Persons
{
cI := cI + 1;
#MyIns(Persons, cI)
}
_loop TmpTable
{
#MyUpd(Persons, Persons.FIO, ('Сотрудник №' + TmpTable.cNum))
}
}
//Каталог ОС
if (wCatalog and 8) = 8
{
#MyInit('Корректировка картотеки Основных средств')
cI := 0;
_loop KatOS
{
cI := cI + 1;
#MyIns(KatOS, cI)
}
_loop TmpTable
{
#MyUpd(KatOS, KatOS.NameOS, ('Основное средство №' + TmpTable.cNum))
}
}
//Прайс-лист
if (wCatalog and 16) = 16
{
#MyInit('Корректировка Прайс-листов')
cI := 0;
_loop KlPrice
{
cI := cI + 1;
#MyIns(KlPrice, cI)
}
_loop TmpTable
{
#MyUpd(KlPrice, KlPrice.Name, ('Прайс-лист №' + TmpTable.cNum))
}
}
//Каталог доверенных лиц
delete all DovFio;
//МОДУЛЬ Управление снабжением
if (wModule and 1) = 1
{
#MyInit('Корректировка модуля Управление снабжением')
//Счета ДО на закупку
Update BaseDoc where ((Word(101) == BaseDoc.VidDoc)) Set
BaseDoc.Name := '';
//Приходные накладные
Update KatSopr where ((Word(101) == KatSopr.VidSopr)) Set
KatSopr.Name := '';
//Акт на услуги, работы
Update KatSopr where ((Word(111) == KatSopr.VidSopr)) Set
KatSopr.Name := '';
//Доверенность
Update Dover Set Dover.cDovFIO := 0;
}
//МОДУЛЬ Управление сбытом
if (wModule and 2) = 2
{
#MyInit('Корректировка модуля Управление сбытом')
//Счета ДО на продажу
Update BaseDoc where ((Word(201) == BaseDoc.VidDoc)) Set
BaseDoc.Name := '';
//Накладные на отпуск
Update KatSopr where ((Word(201) == KatSopr.VidSopr)) Set
KatSopr.Name := '';
//Акт на услуги, работы
Update KatSopr where ((Word(211) == KatSopr.VidSopr)) Set
KatSopr.Name := '';
// Доверенность
// см. в Управлении снабжением
}
//МОДУЛЬ Касса
if (wModule and 4) = 4
{
#MyInit('Корректировка модуля Касса')
//Приходный кассовый ордер 7
Update PlPor where ((Word(7) == PlPor.TiDkGal)) Set
PlPor.PodOtchet := '',
PlPor.NamePl1 := '',
PlPor.NamePl2 := '',
PlPor.NamePl3 := '';
//Расходный кассовый ордер 8
Update PlPor where ((Word(8) == PlPor.TiDkGal)) Set
PlPor.PodOtchet := '',
PlPor.NamePl1 := '',
PlPor.NamePl2 := '',
PlPor.NamePl3 := '';
//Авансовый отчет 9
Update PlPor where ((Word(9) == PlPor.TiDkGal)) Set
PlPor.PodOtchet := '',
PlPor.NamePl1 := '',
PlPor.NamePl2 := '',
PlPor.NamePl3 := '';
}
//МОДУЛЬ Управление договорами
if (wModule and 8) = 8
{
#MyInit('Корректировка модуля Управление договорами')
//Распоряжение на отгрузку
Update OtgOrder Set
OtgOrder.DocNote := '';
//ДО на продажу
//см. в Управление сбытом Счета ДО на продажу
//ДО на закупку
//см. в Управление снабжением Счета ДО на закупку
//ДО на предоплату продаж
Update BaseDoc where ((Word(211) == BaseDoc.VidDoc)) Set
BaseDoc.Name := '';
//ДО на предоплату закупок
Update BaseDoc where ((Word(111) == BaseDoc.VidDoc)) Set
BaseDoc.Name := '';
}
//МОДУЛЬ Консигнация
if (wModule and 16) = 16
{
#MyInit('Корректировка модуля Консигнация')
//Основание (Отпуск)
Update BaseDoc where ((Word(202) == BaseDoc.VidDoc)) Set
BaseDoc.Name := '';
//Отчет консигнатора
Update RepCDoc Set
RepCDoc.Rem := '';
//Накладные на отпуск
Update KatSopr where ((Word(202) == KatSopr.VidSopr)) Set
KatSopr.Name := '';
//Накладные на возврат
Update KatSopr where ((Word(102) == KatSopr.VidSopr)) Set
KatSopr.Name := '';
//Основание (Прием)
Update BaseDoc where ((Word(102) == BaseDoc.VidDoc)) Set
BaseDoc.Name := '';
//Накладные на прием
Update KatSopr where ((Word(103) == KatSopr.VidSopr)) Set
KatSopr.Name := '';
//Накладные на возврат
Update KatSopr where ((Word(203) == KatSopr.VidSopr)) Set
KatSopr.Name := '';
}
//МОДУЛЬ Складской учет
if (wModule and 32) = 32
{
#MyInit('Корректировка модуля Складской учет')
//Накладная на внутренее перемещение
Update KatSopr where ((Word(600) == KatSopr.VidSopr)) Set
KatSopr.Name := '';
//Транзитная накладная
Update KatSopr where ((Word(606) == KatSopr.VidSopr)) Set
KatSopr.Name := '';
//Накладная склад -> розничная торговля
Update KatSopr where ((Word(603) == KatSopr.VidSopr)) Set
KatSopr.Name := '';
//Накладная склад -> ОС
Update KatSopr where ((Word(601) == KatSopr.VidSopr)) Set
KatSopr.Name := '';
//Накладная склад -> МБП
Update KatSopr where ((Word(602) == KatSopr.VidSopr)) Set
KatSopr.Name := '';
//Накладная склад -> НМА
Update KatSopr where ((Word(605) == KatSopr.VidSopr)) Set
KatSopr.Name := '';
//Акт о недостаче
Update KatSopr where ((Word(612) == KatSopr.VidSopr)) Set
KatSopr.Name := '';
//Акт об излишках
Update KatSopr where ((Word(611) == KatSopr.VidSopr)) Set
KatSopr.Name := '';
//Акт на пересортицу
Update KatSopr where ((Word(630) == KatSopr.VidSopr)) Set
KatSopr.Name := '';
}
//МОДУЛЬ Давальческое сырье
if (wModule and 64) = 64
{
#MyInit('Корректировка модуля Давальческое сырье')
//Основание
Update BaseDoc where ((Word(520) == BaseDoc.VidDoc)) Set
BaseDoc.Name := '';
//Накладная на прием готовой продукции
Update KatSopr where ((Word(522) == KatSopr.VidSopr)) Set
KatSopr.Name := '';
//Накладная на возврат сырья
Update KatSopr where ((Word(523) == KatSopr.VidSopr)) Set
KatSopr.Name := '';
}
//МОДУЛЬ Клиент
if (wModule and 128) = 128
{
#MyInit('Корректировка модуля Клиент')
Delete All VHIerarchy;
Delete All Contact;
Delete All EstSales;
Delete All Sales;
Delete All EstBarg;
Delete All Bargain;
Delete All Subject;
Delete All ServtRet;
Delete All CRMPersons;
}
//МОДУЛЬ Поставщики, получатели
if (wModule and 256) = 256
{
#MyInit('Корректировка модуля Поставщики, получатели')
//Акт взаимозачетов
Update PlPor where ((Word(70) == PlPor.TiDkGal)) Set
PlPor.PodOtchet := '',
PlPor.NamePl1 := '',
PlPor.NamePl2 := '',
PlPor.NamePl3 := '';
//Договор уступки долга (продажа)
Update BaseDoc where ((Word(90) == BaseDoc.VidDoc)) Set
BaseDoc.Name := '';
//Договор уступки долга (покупка)
Update BaseDoc where ((Word(91) == BaseDoc.VidDoc)) Set
BaseDoc.Name := '';
//Регистрация уступки собственного долга
Update BaseDoc where ((Word(92) == BaseDoc.VidDoc)) Set
BaseDoc.Name := '';
//Наши счета-фактуры
Update SchFact where ((Word(1) == SchFact.Direct)) Set
SchFact.Nazn := '';
//Счета-фактуры поставщика
Update SchFact where ((Word(2) == SchFact.Direct)) Set
SchFact.Nazn := '';
//Книга продаж
Update BookPrZk where ((Word(1) == BookPrZk.Direct)) Set
BookPrZk.Nazn := '';
//Книга покупок
Update BookPrZk where ((Word(2) == BookPrZk.Direct)) Set
BookPrZk.Nazn := '';
}
//МОДУЛЬ ФРО
if (wModule and 512) = 512
{
#MyInit('Корректировка модуля ФРО')
//Реестр распределения валюты
Update PlPor where ((Word(27) == PlPor.TiDkGal)) Set
PlPor.PodOtchet := '',
PlPor.NamePl1 := '',
PlPor.NamePl2 := '',
PlPor.NamePl3 := '';
}
//МОДУЛЬ Ведение налоговых расчетов
if (wModule and 1024) = 1024
{
#MyInit('Корректировка модуля Ведение налоговых расчетов')
//Акт на регистрацию начисленных налогов
Update KatSopr where ((Word(112) == KatSopr.VidSopr)) Set
KatSopr.Name := '';
//Акт сверки
Update KatSopr where ((Word(113) == KatSopr.VidSopr)) Set
KatSopr.Name := '';
}
//МОДУЛЬ Векселя и кредиты
if (wModule and 2048) = 2048
{
#MyInit('Корректировка модуля Векселя и кредиты')
//Акт на получение векселей
Update AppVeks where ((Word(84) == AppVeks.TiDk)) Set
AppVeks.Prim1 := '',
AppVeks.Prim2 := '',
AppVeks.Prim3 := '';
//Акт на передачу векселей
Update AppVeks where ((Word(81) == AppVeks.TiDk)) Set
AppVeks.Prim1 := '',
AppVeks.Prim2 := '',
AppVeks.Prim3 := '';
//Акт на гашение собственных векселей
Update AppVeks where ((Word(82) == AppVeks.TiDk)) Set
AppVeks.Prim1 := '',
AppVeks.Prim2 := '',
AppVeks.Prim3 := '';
//Акт на гашение стронних векселей
Update AppVeks where ((Word(83) == AppVeks.TiDk)) Set
AppVeks.Prim1 := '',
AppVeks.Prim2 := '',
AppVeks.Prim3 := '';
//Вексельное соглашение
Update SoglVeks where ((Word(81) == SoglVeks.TiDk)) Set
SoglVeks.Prim1 := '',
SoglVeks.Prim2 := '',
SoglVeks.Prim3 := '';
}
//МОДУЛЬ Платежный календарь
if (wModule and 4096) = 4096
{
#MyInit('Корректировка модуля Платежный календарь')
//Основание на закупку
//см. в Управление снабжением Счета ДО на закупку
//Основания для приема на консигнацию
//см. в Консигнации Основание (Прием)
//Основания на продажу
//см. в Управление сбытом Счета ДО на продажу
//Основания для отпуска на консигнацию
//см. в Консигнации Основание (Отпуск)
//Основания на предоплату закупок
//см. в Управлении договорами ДО на предоплату закупок
//Основания на предоплату продаж
//см. в Управлении договорами ДО на предоплату продаж
//Заявки на сервисное обслуживание
Update BaseDoc where ((Word(510) == BaseDoc.VidDoc)) Set
BaseDoc.Name := '';
//Договоры на переработку сыря
Update BaseDoc where ((Word(520) == BaseDoc.VidDoc)) Set
BaseDoc.Name := '';
//Договоры продажи долга
//см. в Поставщиках, получателях Договор уступки долга (продажа)
//Договры покупки долга
//см. в Поставщиках, получателях Договор уступки долга (покупка)
//Уступка собственного долга
//см. в Поставщиках, получателях Регистрация уступки собственного долга
}
//МОДУЛЬ Управление бюджетом
if (wModule and 8192) = 8192
{
#MyInit('Корректировка модуля Управление бюджетом')
//Книга плановых операций
if GetFirst PlansSch where ((150 == PlansSch.KodReg)) = tsOk
Update fpOborot where ((PlansSch.nRec == fpOborot.cPlansSch)) Set
fpOborot.Name := '';
//Книга фактических операций
if GetFirst PlansSch where ((151 == PlansSch.KodReg)) = tsOk
Update fpOborot where ((PlansSch.nRec == fpOborot.cPlansSch)) Set
fpOborot.Name := '';
//Книга операций "по данным бух.учета"
if GetFirst PlansSch where ((153 == PlansSch.KodReg)) = tsOk
Update fpOborot where ((PlansSch.nRec == fpOborot.cPlansSch)) Set
fpOborot.Name := '';
}
//МОДУЛЬ Управление персоналом
if (wModule and 16384) = 16384
{
#MyInit('Корректировка модуля Управление персоналом')
Delete all PsnLinks;
Delete all Address;
Delete all Passports;
Delete all Communications;
Delete all Appendix;
Delete all ConScription;
Delete all CasePsn;
Update Persons Set
Persons.BornDate := Date(0, 0, 0),
Persons.BornAddr := 0,
Persons.Dependants := 0,
// Persons.Sex := ''#0,
Persons.Nationality := 0,
Persons.PasspRus := 0,
Persons.PasspFor := 0,
Persons.LiveAddr := 0,
Persons.PasspAddr := 0,
Persons.FamilyState := 0,
Persons.Education := 0,
Persons.Publications := 0,
Persons.Inventions:= 0,
Persons.PassNmb := 0,
// Persons.Department := 0,
// Persons.GalDep := 0,
// Persons.GalDepHost := 0,
// Persons.TabNmb := 0,
Persons.TestPeriod := Date(0, 0, 0),
// Persons.JobNature := 0,
Persons.ComplSrc := 0,
Persons.InvalidGrp := 0,
Persons.PensionDate := Date(0, 0, 0),
Persons.PensionCause := 0,
Persons.DisOrderDate := Date(0, 0, 0),
Persons.DisOrderNmb := '',
Persons.DisDate := Date(0, 0, 0),
Persons.DisReason := 0,
Persons.DisMotive := 0,
Persons.DisprofNmb := '',
Persons.DisProfDate := Date(0, 0, 0),
Persons.AppDate := Date(0, 0, 0),
Persons.AppointCur := 0,
Persons.AppointFirst := 0,
Persons.AppointLast := 0,
// Persons.IsEmployee := ''#0,
Persons.IsPersBuh := 0,
Persons.Gr := 0,
Persons.cSovm := 0,
Persons.DisDatePr := Date(0, 0, 0),
Persons.cAddnRec1 := 0,
Persons.dAddDate1 := Date(0, 0, 0),
Persons.cAddnRec2 := 0,
Persons.dAddDate2 := Date(0, 0, 0),
Persons.wAddWord := 0,
Persons.cBaseProf := 0,
Persons.cAddProf := 0;
}
//МОДУЛЬ Заработная плата
if (wModule and 32768) = 32768
{
#MyInit('Корректировка модуля Заработная плата')
Update LSchet Set
Adres := '',
PasPort := '';
}
//МОДУЛЬ Автотранспорт
if (wModule and 65536) = 65536
{
#MyInit('Корректировка модуля Автотранспорт')
Update KnDriver Set
KnDriver.Name := '',
KnDriver.Tabn := 0,
KnDriver.NUdov := '';
Update Transp Set
Transp.Nomer := '';
Update MarAvt Set
MarAvt.NMarAvt := '';
Update MarRel Set
MarRel.Name := '';
Update MarPunkt Set
MarPunkt.Name := '';
Update TarifN Set
TarifN.Name := '',
TarifN.ShortName := '',
TarifN.cKlvidopl := 0;
Delete all GSMAlg;
}
SaveMyDsk(wCatalog, 'MF_TEmpty.wCatalog');
SaveMyDsk(wModule, 'MF_TEmpty.wModule');
StopVisual( '',0 );
}
cmInit:
{
var dCh: Boolean;
if (not ReadMyDsk(wCatalog, 'MF_TEmpty.wCatalog', dCh))
wCatalog := Max_Catalogs;
if (not ReadMyDsk(wModule, 'MF_TEmpty.wModule', dCh))
wModule := Max_Modules;
set wCatalog := wCatalog;
set wModule := wModule;
}
cmDefault:
{
}
cmClose:
{
}
End;
End.
Жду выхода Вселенная 2.12!