Имя: Пароль:
1C
1С v8
cmd/Bat для копирования файловой БД 1с83
,
0 Satdar4uk
 
06.09.19
18:51
Всем доброго времени суток.

Помогите плз с реализацией бекапа базы 1с83 через батник.
Проблемы возникают т.к. на каждой локальной машине путь к базе задан по разному - собственно хотелось бы узнать как подцепить его либо через реестр, либо через ibases либо еще как то.
Под бекапом я подразумеваю ручное копирование файла БД(без сжатия, изменения расжирения и т.д.)
Заранее спасибо)
1 MyNick
 
06.09.19
19:23
Буковка Я справа от заголовка не помогает?
2 MyNick
 
06.09.19
19:23
У вас на каждой локальной машине своя база чтоле?
3 Satdar4uk
 
06.09.19
19:36
Да, на каждой машине локальная файловая база и толстый клиент. Тащем то нужен батник для 1)chdbfl/тестирования и исправления при этом 2)делающий бекап в виде простого копипаста файла бд. И если с 1 пунктом проблем нет, то со вторым - перелазил кучу форумов, но не нашел как найти пусть к текущей бд
4 Мимохожий Однако
 
06.09.19
19:38
Установи Cobian Backup  и не парься
5 Satdar4uk
 
06.09.19
19:40
Я бы с радостью использовал стороннее по, но на каждой локальной машине по условию тз нужно обходиться дефолтным набором программ(т.е. ничем ктоме собсна 1с и cmd)
6 Мимохожий Однако
 
06.09.19
19:44
(5) Тогда парься. Идиотизм не победим.
7 Satdar4uk
 
06.09.19
20:19
(1) Почти все решения предполагали заранее известный путь к бд, а мы его не знаем, яндекс с гуглом увы не помогли
8 kostik79
 
06.09.19
22:16
(0) Напиши внешнюю обработку, которая генерит батник прямо из рабочей базы 1С
9 kostik79
 
06.09.19
22:17
раз ничем сторонним нельзя пользоваться
10 GGDots
 
06.09.19
22:54
Если я все правильно понял, то проблемы то и не должно возникнуть:

на powershell пишешь поиск и парсинг файла "ibases" на компе:


$File = Get-ChildItem C:\Users\* -Include *.v8i -Recurse -Force

foreach ($line in Get-Content $File)
{
  $line
  //здесь на условиях получаешь путь к каталогу с базой (хоть ко всем)

}


В итоге в цикле с помощью нужных условий получаешь путь к нужной базе (Connect=File="C:\Users\Херузерс\Documents\InfoBase";), или ко всем если не знаешь какую надо сохранить и в цикле же выполняешь нужные действия - переносишь в другое место и т.д.

Потом делаешь батник из powershell:

https://craft1c.ru/powershell-zapusk-bat-fajjla/


Делов то 10 минут, не? или я чего не понял...
11 kostik79
 
06.09.19
23:08
(10) А как понять, какая база нужная? Я так понял, что ТС (или его клиентам) нужен универсальный батник для любого компа, который делает бекап нужной базы...
12 palsergeich
 
06.09.19
23:09
(11) Какая база нужная в гипотетическом списке из 100 баз?
Какое ТЗ такой и результат
13 palsergeich
 
06.09.19
23:10
(12) + Опять же можно повершелл?
Стоит ли дотнет на машинах?
14 palsergeich
 
06.09.19
23:12
(13) Я у таких озабоченных из повершелла запускал скрипт на C# потому что никакого архиватора на машине не было, а архивировать надо было)
Повершелл древний и сам еще не мог архивировать
15 kostik79
 
06.09.19
23:20
(12) Похоже на очередную нереальную хотелку, как говорится: без внятного ТЗ - и результат ХЗ
16 GGDots
 
06.09.19
23:21
(11) Ну в любом случае мы не узнаем здесь полное тз, и по каким параметрам он будет определять нужную базу: по размеру, по имени, по порядку, по вхождению символов и т.д. :)

Но как общее решение вполне пойдет, а там уже сам пускай пляшет:)

$File = Get-ChildItem C:\Users\* -Include *.v8i -Recurse -Force

foreach ($line in Get-Content $File)
{
  
  If($line.Contains('Connect=File'))  
    {
        $PathBase = $line.ToString()
        $PathBase = $PathBase.Replace("Connect=File=","")
        $PathBase = $PathBase.Replace(";","")  
        $PathBase = $PathBase.Replace("""","")

        $PathBase #твой каталог с базой, к примеру E:\1c\Bases\InfoBase5
        
        #$PathBase = $PathBase + "/*" #все подпапки и файлы

        #и копируешь его
        Copy-Item -Path $PathBase D:\Backups\ -recurse -Force

    }
  
  
}
17 kostik79
 
06.09.19
23:32
(16) Поэтому я и предложил внешнюю обработку. Ведь ТС не хватает только пути к базе, остальной код батника уже есть, а из обработки, открытой в нужной базе, путь вытаскивается без проблем. Код батника + путь в нужном месте этого кода, сохраняем в хотелка.bat и всё. конечному юзеру останется только открыть обработку на нужной машине, нажать кнопочку и батник готов.
AdBlock убивает бесплатный контент. 1Сергей