Вопрос настройки автоматического резервного копирования в старых конфигурациях, таких как УПП 1.3, часто ставит в тупик пользователей, привыкших к современному интерфейсу на управляемых формах. В новых решениях (ERP, Бухгалтерия 3.0) есть удобные встроенные кнопки, а в обычных формах их нет. Давайте разберем, почему это так, и как правильно организовать защиту данных, если ваша база работает на PostgreSQL.
Проанализируем ситуацию: конфигурация 1С:Управление производственным предприятием 1.3 была разработана в эпоху «обычных форм». В то время концепция 1С предполагала четкое разделение ответственности. Считалось, что за пользовательский интерфейс и бизнес-логику отвечает программа 1С, а за сохранность данных и создание копий — системный администратор. В современных конфигурациях на управляемых формах используется Библиотека стандартных подсистем (БСП), в которую встроен модуль автоматического бэкапа. В УПП 1.3 этого модуля попросту нет.
Выясним главную техническую деталь: если ваша база работает в клиент-серверном варианте (на PostgreSQL), то формы (обычные или управляемые) вообще не имеют значения для процесса копирования. Бэкап должен выполняться силами системы управления базами данных (СУБД) на стороне сервера. Пытаться настроить бэкап через «кнопку в 1С» для серверной базы — это не самый надежный путь.
Рассмотрим основной профессиональный метод — использование стандартной утилиты pg_dump, которая идет в комплекте с PostgreSQL. Она позволяет создавать логическую копию базы данных без остановки работы пользователей.
Для автоматизации процесса нам понадобится создать исполняемый файл (скрипт) и добавить его в Планировщик задач Windows или Crontab в Linux. Разберем по шагам создание такого скрипта для Windows.
Первая проблема, с которой мы столкнемся: pg_dump запрашивает пароль. Чтобы скрипт работал автоматически, мы воспользуемся файлом .pgpass или переменной окружения. Посмотрим на пример кода простого bat-файла:
@echo off
SET PGPASSWORD=ваш_пароль
SET PGPATH="C:\Program Files\PostgreSQL\15\bin"
SET BACKUPPATH="D:\Backups\1C_UPP"
SET DATETIME=%date:~6,4%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%
%PGPATH%\pg_dump.exe -h localhost -U postgres -Fc -f %BACKUPPATH%\upp_backup_%DATETIME%.backup имя_вашей_базы
Проанализируем используемые ключи в этой команде:
-h localhost — адрес сервера (в данном случае текущий).-U postgres — имя пользователя базы данных.-Fc — кастомный формат сжатия. Это наиболее эффективный формат для PostgreSQL, так как он позволяет в будущем восстанавливать отдельные таблицы, если это потребуется.-f — путь к файлу, куда будет сохранена копия.Важный совет: Хранение пароля в переменной PGPASSWORD прямо в скрипте не очень безопасно. Рассмотрим более надежный вариант: создайте файл pgpass.conf в папке %APPDATA%\postgresql\ и пропишите там учетные данные в формате хост:порт:база:пользователь:пароль.
Для тех, кто хочет получить решение «из коробки» и имеет действующий договор ИТС, разберем работу сервиса 1С:Облачный архив. Поскольку в УПП 1.3 нет встроенного кода для этого сервиса, фирма 1С предоставляет специальное автономное приложение — Агент резервного копирования.
Посмотрим, как это работает: вы устанавливаете Агент на сервер, где стоит 1С. В настройках Агента вы указываете параметры подключения к вашей базе PostgreSQL. Программа сама, по расписанию, будет делать выгрузку и отправлять ее в защищенное облако. Это отличный вариант, так как копии хранятся вне вашего офиса, что защищает данные от пожаров или шифровальщиков.
Существуют готовые программные продукты, специально созданные для резервного копирования 1С. Одним из самых популярных является Effector Saver. Рассмотрим его преимущества для администратора УПП 1.3:
При работе в клиент-серверном режиме иногда требуется «выгнать» пользователей, например, для регламентного обслуживания. В управляемых формах это делается одной галочкой, а в УПП 1.3 и обычных формах нам придется задействовать механизмы платформы.
Рассмотрим, как программно завершить сеансы через утилиту ras и rac, которые поставляются вместе с платформой 1С. Это консольные инструменты управления сервером. Мы можем создать скрипт, который перед началом бэкапа будет блокировать установку новых соединений:
rem Блокировка начала новых сеансов
rac.exe session --cluster=ID-кластера terminate --session=ID-сессии
Однако помните, что для простого бэкапа через pg_dump выкидывать пользователей не обязательно — СУБД сделает согласованную копию на лету.
Настройка бэкапа — это лишь половина дела. Чтобы УПП 1.3 работала быстро, база PostgreSQL требует регулярного обслуживания. Разберем две важнейшие команды, которые стоит добавить в ваш план обслуживания:
VACUUM — очистка базы от «мусора» (старых версий строк, которые копятся при активной работе в УПП).ANALYZE — обновление статистики базы, чтобы планировщик запросов 1С не «тупил» при формировании сложных отчетов.Эти команды также можно запускать через планировщик с помощью утилиты vacuumdb. Например:
vacuumdb.exe -h localhost -U postgres -d имя_вашей_базы -z -v
Проанализируем типичную ошибку: бэкапы делаются годами, но когда случается авария, выясняется, что файлы битые или пустые. Мы рекомендуем настроить процесс так, чтобы раз в неделю созданная копия автоматически разворачивалась в тестовую базу. Если процесс восстановления (команда pg_restore) прошел успешно — значит, ваши данные в безопасности.
Подведем итог: отсутствие кнопок в интерфейсе УПП 1.3 — это не проблема, а особенность архитектуры. Используя мощь PostgreSQL и стандартные средства автоматизации, вы можете создать гораздо более надежную систему защиты данных, чем встроенные механизмы современных конфигураций.