1С 7.7 как сделать удаление *.cdx, копирование базы и тестирование по простому…
Были трудности с удалением индексов, копированием базы перед тестированием и исправлением и собственно с тестированием и исправлением. Когда едешь в маршрутке не всегда сообразишь и вспомнишь что и как, а безграмотные пользователи и их кривые ручки — страшная сила.
- Описание
- Подробнее
Описание
Навеяно //sale.itcity.ru/public/65109/
Были трудности с удалением индексов, копированием базы перед тестированием и исправлением и собственно с тестированием и исправлением. Когда едешь в маршрутке не всегда сообразишь и вспомнишь что и как, а безграмотные пользователи и их кривые ручки — страшная сила.
1С 7.7 конфа полностью самописная
Сделал просто «ПриНачалеРаботыСистемы»
запускаю ОткрытьФормуМодально(«Обработка.СозданиеBat_ников»);
а там:
[CODE]
//*******************************************
Процедура ПриОткрытии()
СтатусВозврата(0);
Сформировать();
КонецПроцедуры
//*******************************************
Процедура Сформировать()
Если (ФС.СуществуетФайл(«C:\BAT_Files\*.*»)=0) Тогда
ФС.СоздатьКаталог(«C:\BAT_Files\»);
КонецЕсли;
//Удаление индексов
ИмяБАТФайла=»c:\BAT_Files\DEL_CDX.bat»;
BatFile = СоздатьОбъект(«Текст»);
BatFile.КодоваяСтраница(0);
BatFile.ДобавитьСтроку(«del «+СокрЛП(КаталогИБ())+»*.cdx»);
BatFile.ДобавитьСтроку(«pause «);
BatFile.Записать(ИмяБАТФайла);
//Копирование базы
Если (ФС.СуществуетФайл(«C:\Copy_Before\*.*»)=0) Тогда
ФС.СоздатьКаталог(«C:\Copy_Before\»);
КонецЕсли;
КаталогБазы=СокрЛП(КаталогИБ());
КаталогБазы=Лев(КаталогБазы,СтрДлина(КаталогБазы)-1);
ИмяБАТФайла=»c:\BAT_Files\CopyBase.bat»;
BatFile = СоздатьОбъект(«Текст»);
BatFile.КодоваяСтраница(0);
BatFile.ДобавитьСтроку(«xCopy «+КаталогБазы+» C:\Copy_Before /E /I /F /H /R /Y «);
BatFile.ДобавитьСтроку(«pause «);
BatFile.Записать(ИмяБАТФайла);
//запуск тестирования
ИмяБАТФайла=»c:\BAT_Files\TestIB.bat»;
BatFile = СоздатьОбъект(«Текст»);
BatFile.КодоваяСтраница(0);
ИмяФайлаДляПоиска=СокрЛП(КаталогПрограммы())+»1cv7*.exe»;
ИмяФайлаДвижка=ФС.НайтиПервыйФайл(ИмяФайлаДляПоиска);
BatFile.ДобавитьСтроку(«rem — копируем базу «);
BatFile.ДобавитьСтроку(«echo on «);
BatFile.ДобавитьСтроку(«xCopy «+КаталогБазы+» C:\Copy_Before /E /I /F /H /R /Y «);
BatFile.ДобавитьСтроку(«echo off «);
BatFile.ДобавитьСтроку(» «);
BatFile.ДобавитьСтроку(» «);
BatFile.ДобавитьСтроку(«rem — удаляем файлы, чтобы зайти в 1С безымянным «);
BatFile.ДобавитьСтроку(«del /Q «+СокрЛП(КаталогИБ())+»USRDEF\*.* «);
BatFile.ДобавитьСтроку(» «);
BatFile.ДобавитьСтроку(» «);
BatFile.ДобавитьСтроку(«rem — запуск 1С для тестирования и исправления ИБ «);
BatFile.ДобавитьСтроку(«start /wait «»1с»» «»»+СокрЛП(КаталогПрограммы())+СокрЛП(ИмяФайлаДвижка)+»»» config /D»+СокрЛП(КаталогИБ())+» /N /P /@C:\Obr_Mag\TestIB.prm»);
BatFile.ДобавитьСтроку(» «);
BatFile.ДобавитьСтроку(» «);
BatFile.ДобавитьСтроку(«rem — ждём завершения работы 1С «);
BatFile.ДобавитьСтроку(«:exist «);
BatFile.ДобавитьСтроку(«if exist C:\Base\TMP\Base_DO\1Cv7.LCK goto exist «);
BatFile.ДобавитьСтроку(» «);
BatFile.ДобавитьСтроку(» «);
//вернём USRDEF на место
BatFile.ДобавитьСтроку(«xCopy C:\Copy_Before\USRDEF «+СокрЛП(КаталогИБ())+»USRDEF /E /I /F /H /R /Y «);
BatFile.ДобавитьСтроку(» «);
BatFile.Записать(ИмяБАТФайла);
ИмяБАТФайла=»c:\BAT_Files\TestIB.prm»;
BatFile = СоздатьОбъект(«Текст»);
BatFile.КодоваяСтраница(0);
BatFile.ДобавитьСтроку(«[General]»);
BatFile.ДобавитьСтроку(«Quit = 1»);
BatFile.ДобавитьСтроку(«CheckAndRepair=1»);
BatFile.ДобавитьСтроку(«[CheckAndRepair]»);
BatFile.ДобавитьСтроку(«Repair=1»);
BatFile.ДобавитьСтроку(«PhysicalIntegrity=1»);
BatFile.ДобавитьСтроку(«Reindex=1»);
BatFile.ДобавитьСтроку(«LogicalIntegrity=1»);
BatFile.ДобавитьСтроку(«RecalcSecondaries=1»);
BatFile.ДобавитьСтроку(«RecalcTotals=1»);
BatFile.ДобавитьСтроку(«Pack=1»);
BatFile.ДобавитьСтроку(«SkipUnresolved=0»);
BatFile.ДобавитьСтроку(«CreateForUnresolved=0»);
BatFile.ДобавитьСтроку(«Reconstruct=0»);
BatFile.Записать(ИмяБАТФайла);
КонецПроцедуры
[/CODE]
Формируем несколько BAT-ников, которые и делают нужное нам.
Поэтому с любого компьютера в сети в любой момент времени можно легко сделать нужную операцию (если хоть раз был выполнен вход в 1С). И путь к базе всегда актуальный (если кто-то по какой-то причине её перенёс)
Ну а уж запустить BAT-ник по телефону – не сложно 😉
P.S. Почему-то BAT-ник с тестированием и исправлением срабатывает через раз. Почему — не знаю. Может подскажет кто…