Резервное копирование файловой ИБ 1С:Розничная торговля

10.01.18

База данных - Архивирование (backup)

Предлагаю метод организации резервного копирования ИБ 1С:Розничная торговля. Метод резервного копирования - упаковка в архив. Способ запуска - при включении компьютера. Реализация - PowerShell.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Резервное копирование файловой ИБ 1С:Розничная торговля:
.zip 863,27Kb
2 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Сразу объясню, почему я отказался от имеющегося в 1С механизма резервного копирования. Изначально всё было настроено средствами 1С и резервное копирование должно было осуществляться после выхода пользователя, т.е. вечером, в конце рабочего дня. Когда мне через какое-то время понадобилось восстановить базу одного из магазинов из резервной копии, я обнаружил, что копий-то нет. Причиной тому был человеческий фактор. Никто из работников не готов был ждать в конце рабочего дня завершения процесса резервного копирования (какое "ждать"? через 3 минуты автобус!). Всё это и подтолкнуло меня к решению, которое я реализовал.

Итак, что делает мой скрипт, запускающийся при загрузке компьютера (утром, пока работницы пьют кофе, делятся новостями, покупателей ещё нет).

Первым делом, происходит блокировка ИБ, дабы до окончания процесса копирования никто не смог запустить 1С и пытаться изменять ещё не до конца скопированную базу.

"{1,$date_stamp,00010101000000,""ACCESS DENIED!!!"","""",""""}" | Out-File -FilePath $base_dir\1Cv8.CDN -Encoding default -Force

(Ранее переменная $date_stamp получает значение ГГГГММДДччммсс, в переменной $base_dir хранится путь к ИБ)

Затем происходит упаковка файла 1Cv8.1CD простым и бесплатным архиватором 7-zip.

$pack_args=@("a", (""""+$bak_dir+"\"+$arc_name+"_"+$date_stamp+".7z"""), "-r", "-ssw", ("""-w"+$env:TEMP+""""), (""""+$base_dir+"\1Cv8.1CD"""))
$process=Start-Process -FilePath $pack_app -ArgumentList $pack_args -NoNewWindow -Wait -PassThru
$exit_code=$process.ExitCode

($bak_dir - путь к каталогу с архивами, $arc_name - префикс архива, $pack_app - путь к исполняемому файлу архиватора, зависит от разрядности ОС)

Логи процесса архивирования (время начала, время завершения, код завершения) складываются на FTP-сервер.

Import-Module PSFTP
$hash=$ftp_user+".pwd"
$password=(Get-Content "$hash" | ConvertTo-SecureString)
$local_path=$log_dir+"\"+$log_name+".log"
$credential=New-Object Management.Automation.PSCredential($ftp_user,$password)
Set-FTPConnection -Server $ftp_server -Session "BlakitFtp" -Credential $credential
$session=Get-FTPConnection -Session BlakitFtp
Add-FTPItem -LocalPath $local_path -Overwrite -Path $ftp_dir -Session $session

(Модуль PSFTP взят отсюда, $ftp_user - имя пользователя FTP-сервера, $hash - файл, содержащий хеш пароля пользователя, $log_dir и $log_name - каталог и имя файла журнала, $ftp_server - адрес FTP-сервера, $ftp_dir - каталог для журналов на сервере)

Удаляются копии, старше одной недели (жёсткий диск не резиновый всё-таки).

$now=Get-Date
$days="7"
$arc_stamp=$arc_name+"_*.7z"
$last_write=$now.AddDays(-$days)
$files=Get-Childitem -LiteralPath $bak_dir -Filter $arc_stamp | where{$_.LastWriteTime -le "$last_write"}
foreach ($file in $files)
{
    if ($file -ne $NULL)
    {
        Remove-Item $file.FullName | Out-Null
    }
}

Снимается блокировка ИБ.

Remove-Item -Path $base_dir\1Cv8.CDN -Force

 

Я постарался снабдить скрипт инсталлятором (install.ps1), который распакует необходимые файлы, установит недостающие компоненты, создаст файл конфигурации, файл с хешем пароля пользователя и ярлык для автоматического запуска. Единственное, что нужно сделать вручную - изменить политику выполнения скриптов PowerShell (подробнее)

Всё, что в архиве - либо написано мной, либо имеется в свободном доступе в сети интернет.

Вступайте в нашу телеграмм-группу Инфостарт

резервное копирование PowerShell

См. также

Архивирование (backup) Инструменты администратора БД Системный администратор Программист 1С 8.3 1С:Управление торговлей 11 1С:Библиотека стандартных подсистем Абонемент ($m)

Полностью автоматизированная внешняя обработка для администрирования 1С: блокировка/разблокировка ИБ, массовое завершение сеансов, резервное копирование и восстановление из .dt, выгрузка/загрузка конфигурации (.cf), пакетная работа с расширениями (.cfe) и дополнительными обработками – всё через удобную форму без ручных запусков конфигуратора и консоли кластера

1 стартмани

21.01.2026    4818    48    war41k    0    

17

Архивирование (backup) Групповая разработка (Git, хранилище) Системный администратор Программист Бесплатно (free)

Как дать возможность каждому разработчику 1С вести разработку, тестирование и оптимизацию на собственной полноразмерной копии базы и при этом не тратить миллиарды рублей и тысячи часов на развертывание тестового окружения, а так же экономить дисковое пространство? Расскажем о том, как с помощью инструмента Database Lab получать полноразмерные копии базы 1C на СУБД PostgreSQL за считанные секунды (даже в случае использования многотерабайтных баз).

15.12.2025    9803    nasonkin    18    

30

Архивирование (backup) Системный администратор 1С 8.3 Бесплатно (free)

Предлагаю Вашему вниманию 3 скрипта на bash (sh) для архивирования (backup) типовых конфигураций на Linux средствами 1С и Postgres. Перед запуском корректно заполните раздел "Параметры" в соответствии с Вашими настройками.

20.01.2025    4372    Prelude    5    

12

Архивирование (backup) 1С:Предприятие 8 1С:Управление нашей фирмой 3.0 Платные (руб)

Расширение поможет настроить резервное копирование баз SQL в стандартный файл выгрузки баз 1С (*.dt).

3 стартмани

27.08.2024    3613    1    a_kudaev    6    

2

HighLoad оптимизация Администрирование СУБД Архивирование (backup) Системный администратор Программист 1С:Предприятие 8 Бесплатно (free)

Бэкап в Postgres состоит из набора граблей, которые нужно обойти для успешного восстановления. Они заложены в самых неожиданных местах от предмета резервного копирования (база или кластер) до структуры каталогов. Один неверный шаг и восстановление будет невозможным. Почему нельзя было сделать проще, как в MS SQL или Oracle? Почему бэкап в Postgres оставляет впечатление чьей-то лабораторной работы? Статья адресована прежде всего специалистам 1С, избалованным комфортом в MS SQL, в суровых буднях импортозамещения на Postgres.

13.08.2024    9203    1CUnlimited    11    

6

Инструменты администратора БД Архивирование (backup) Системный администратор Программист 1С:Предприятие 8 Абонемент ($m)

Обработка для "обновления" своей тестовой базы из резервной копии рабочей базы без помощи админов.

1 стартмани

21.05.2024    4383    15    DenDev01    4    

9

Архивирование (backup) Администрирование СУБД Системный администратор Россия Бесплатно (free)

Постараюсь объяснить, зачем нужно резервное копирование именно журнала транзакций, а не только базы данных, и почему я словно сбросил груз, настроив его - как, покажу, естественно. Кстати, будут скрипты T-SQL (с подробными комментариями) - отличный способ сделать администрирование базы более уютным.

04.12.2023    17913    n_mezentsev    15    

27
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. zarucheisky 11.01.18 12:04 Сейчас в теме
ИМХО, лучше копировать BITS-ом в облако.
Тот же mail.ru даёт 25 GB облака, можно настроить O-диск (есть такая вполне шустрая прога) и будет доступно как диск О.
2. avolkov2017 1 11.01.18 12:16 Сейчас в теме
(1)
Может, оно и лучше. Вероятно, я позже так и буду поступать, но пока я копирую только логи, поскольку сам архив при своём "весе" около 250 Мб через 512-кбитную "трубочку" от Белтелекома будет выгружаться весь рабочий день, а может и дольше.
3. zarucheisky 11.01.18 13:21 Сейчас в теме
(2) потому BITS и лучше - не грузит машину, не грузит канал особо
4. zarucheisky 11.01.18 13:24 Сейчас в теме
+(3) см Start-BitsTransfer
avolkov2017; +1 Ответить
5. aspirator23 342 20.01.18 15:36 Сейчас в теме
(4)
Start-BitsTransfer
Интересная штука, для РИБ отлично подходит.
6. DenisCh 20.01.18 15:38 Сейчас в теме
(1) Облака не нужны. Копировать нужно к себе и убирать в сейф.
7. avolkov2017 1 22.01.18 08:37 Сейчас в теме
(6) Слишком велико влияние человеческого фактора, в определённом смысле достаточно надёжно, но неприемлемо.
Для отправки сообщения требуется регистрация/авторизация