Откуда в 1С берутся лишние копии и как их остановить
Содержание
Создание копий в 1С отключается там, где их делает конкретный механизм. В файловой базе это встроенное резервное копирование
в Администрирование → Обслуживание → Резервное копирование и восстановление и резервная копия, которую предлагает помощник обновления программы. В клиент-серверном варианте сама платформа базу не копирует: копии делают задания СУБД (MS SQL, PostgreSQL), а на сервере 1С место съедают дампы, журнал регистрации и прочие данные в каталоге srvinfo.
Поэтому начинайте не с настройки, а с ответа на вопрос: что именно и куда складывается. Таблица ниже помогает найти источник за пару минут.
Кто создаёт копии: найдите источник до отключения
| Что вы видите | Кто создаёт | Где отключать |
|---|---|---|
Файлы .zip или каталоги с датой в имени рядом с файловой базой или в папке «Резервные копии» | Резервное копирование программы (БСП) | Раздел «Администрирование» в самой базе |
| Копия появляется при каждом обновлении конфигурации | Помощник обновления программы | Настройка резервной копии в помощнике обновления |
Файлы .bak, .trn на сервере СУБД | План обслуживания MS SQL или задание SQL Agent | SQL Server Management Studio |
Файлы дампов .sql, .backup на сервере PostgreSQL | Скрипт pg_dump в планировщике или cron | Планировщик заданий Windows или crontab |
Растёт каталог srvinfo | Журнал регистрации, дампы процессов, кэши | Настройки журнала, logcfg.xml |
| Растёт каталог хранилища конфигурации | История версий хранилища | Это не копии; уменьшается обслуживанием хранилища |
💡 Быстрый способ найти виновника — посмотреть дату и время создания свежей копии. Совпадает с закрытием 1С — это БСП «при завершении работы». Ровно 02:00 каждую ночь — почти наверняка задание СУБД или планировщика.
Отключение автоматического резервного копирования в файловой базе
Типовые конфигурации на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11, КА, УНФ) умеют сами копировать файловую базу. Настройка одна для всех:
- Зайдите в базу под пользователем с правами администратора.
- Откройте
Администрирование → Обслуживание. - Разверните группу «Резервное копирование и восстановление» и перейдите по ссылке настройки резервного копирования.
- Выберите вариант без автоматического запуска: снимите выполнение по расписанию и при завершении работы программы.
- Сохраните настройку и перезапустите сеанс.
После этого программа не будет сама запускать копирование. Ручной запуск кнопкой в том же разделе останется.
Что ещё в этой форме полезно знать:
- 📁 Там же указан каталог, куда складываются копии. Запомните его: старые файлы после отключения никто не удалит.
- 🔢 Если копии нужны, но их слишком много, не отключайте механизм, а уменьшите число хранимых копий или срок хранения. Лишние программа удалит сама.
- 🔔 Напоминание «резервное копирование не выполнялось» в панели программы отключается в этой же настройке. Если вы делаете копии своими средствами, выберите вариант, который сообщает об этом программе.
Отключение имеет смысл, только если копии делает что-то другое: скрипт, облачная синхронизация, копирование каталога базы на NAS. База без единой резервной копии — это риск потерять учёт целиком, а не экономия места.
Копия перед обновлением конфигурации
Помощник Администрирование → Обслуживание → Обновление версии программы перед обновлением файловой базы предлагает создать резервную копию. На шаге с настройкой обновления есть ссылка на параметры резервной копии с тремя вариантами:
| Вариант | Что происходит | Когда выбирать |
|---|---|---|
| Не создавать резервную копию | Обновление идёт без копии | Копия сделана вручную непосредственно перед обновлением |
| Создать временную копию | Копия удаляется после успешного обновления | Хотите страховку, но не хотите копить файлы |
| Создать копию и сохранить в каталоге | Копия остаётся в указанной папке | Нужна история копий перед обновлениями |
Чаще всего «копии, которые копятся» — это третий вариант, выбранный когда-то один раз. Переключите на временную копию: страховка остаётся, а место не расходуется.
Клиент-серверная база: копии делает СУБД, а не 1С
В клиент-серверном варианте раздел резервного копирования в программе работать не будет. Это нормально: данные лежат в СУБД, и копировать их должна она. Значит, и искать надо там.
MS SQL Server
- Откройте SQL Server Management Studio и подключитесь к экземпляру.
- Разверните
Management → Maintenance Plans. Здесь лежат планы обслуживания с задачамиBack Up Database. - Разверните
SQL Server Agent → Jobs. Планы обслуживания тоже превращаются в задания агента, а ещё здесь бывают задания, созданные скриптами. - Чтобы остановить копирование, не удаляя план, отключите задание: правой кнопкой по заданию →
Disable. - Если нужно убрать одну базу из плана, откройте план и в задаче резервного копирования снимите эту базу из списка.
Проверить, кто и когда делал копии, можно запросом к истории резервных копий:
SELECT TOP (20)
database_name,
backup_start_date,
type, -- D полная, I разностная, L журнал
physical_device_name
FROM msdb.dbo.backupset b
JOIN msdb.dbo.backupmediafamily m ON b.media_set_id = m.media_set_id
ORDER BY backup_start_date DESC;
По physical_device_name видно, куда пишутся файлы. Если в списке есть путь, которого нет ни в одном плане, копию делает внешняя программа резервного копирования.
Если база в модели восстановления FULL, отключать резервное копирование журнала транзакций нельзя. Без него файл .ldf будет расти до заполнения диска. Либо оставьте копирование журнала, либо осознанно переведите базу в модель SIMPLE.
PostgreSQL
Встроенного планировщика копий у PostgreSQL нет. Копии делает pg_dump или pg_basebackup, которые запускает:
- 🪟 на Windows — планировщик заданий (
taskschd.msc), ищите задачи сpg_dumpв действии; - 🐧 на Linux — cron: проверьте
crontab -lу пользователейrootиpostgresи каталог/etc/cron.d/; - 🧩 сторонние средства резервного копирования, у которых своё расписание.
Отключение — снятие задачи или комментирование строки в crontab. Перед этим убедитесь, что вы не отключаете единственную копию.
Копии баз данных в кластере 1С
Начиная с платформы 8.3.14 у информационной базы в консоли администрирования может быть настроена копия базы данных (её используют, например, чтобы снять с основной базы нагрузку отчётов). Такая копия постоянно обновляется и занимает место в СУБД.
Откройте консоль администрирования серверов 1С, разверните информационную базу и посмотрите, есть ли у неё копии баз данных. Ненужную копию удалите там же. Если узла нет или он пустой, этот механизм у вас не используется.
Каталог srvinfo: что в нём растёт и как это остановить
Каталог srvinfo (по умолчанию C:\Program Files\1cv8\srvinfo) часто принимают за склад копий. Копий баз там нет. Там лежат:
- 📋 реестр кластера
reg_1541\1CV8Clst.lst— список баз и настроек, его не трогают; - 🗂️ каталоги с GUID баз в
reg_1541— журнал регистрации1Cv8Log, индекс полнотекстового поиска, служебные кэши; - 🔁 каталоги
snccntx…— сеансовые данные; - 💥 дампы аварийно завершённых процессов, если их сбор включён.
Журнал регистрации
Больше всего места обычно занимает 1Cv8Log. Уровень и разбиение журнала задаются в Конфигураторе: Администрирование → Настройка журнала регистрации. Там можно:
- Понизить уровень регистрации, например оставить только ошибки.
- Включить разделение журнала по периодам, чтобы старые файлы можно было архивировать.
- Сократить журнал, выгрузив и удалив записи старше выбранной даты.
Полностью отключать журнал («Не регистрировать») не советую: при разборе инцидента вы останетесь без данных о том, кто и что менял.
Дампы процессов
Дампы создаются по настройке технологического журнала в файле logcfg.xml (каталог conf платформы). Если там есть элемент dump, отключите сбор так:
<config xmlns="http://v8.1c.ru/v8/tech-log">
<dump create="false"/>
</config>
Если в файле настроены и журналы событий, оставьте их, измените только элемент dump. Старые дампы удалите вручную: на работу сервера это не влияет.
Каталог дампов растёт не просто так. Если файлы появляются каждый день, рабочие процессы падают. Отключить дампы можно, но причину падений всё равно надо искать.
Параметры запуска агента сервера 1С
Ключа запуска, который «выключает копии», у агента сервера нет. Параметры командной строки ragent задают порты и расположение каталога данных. Это полезно, когда копий нет, а системный диск всё равно забит: каталог srvinfo можно перенести на другой диск.
Строка запуска службы выглядит примерно так:
"C:\Program Files\1cv8\8.3.24.1548\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "D:\srvinfo" -debug
Что здесь важно:
-d— каталог данных кластера, то естьsrvinfo;-port 1540и-regport 1541— порты агента и менеджера кластера;-range— диапазон портов рабочих процессов;-debug— разрешает отладку на сервере; в рабочей системе его обычно убирают.
Посмотреть текущую строку можно командой sc qc с именем службы агента. Имя службы видно в оснастке services.msc.
Порядок переноса srvinfo:
- Предупредите пользователей и выберите время вне рабочих часов: остановка службы обрывает все сеансы на сервере.
- Остановите службу агента сервера 1С.
- Скопируйте каталог
srvinfoцеликом на новый диск. - Поменяйте значение
-dв строке запуска службы (черезsc configили реестр). - Запустите службу, откройте консоль и проверьте, что кластер и список баз на месте.
- Старый каталог удаляйте через несколько дней, когда убедитесь, что всё работает.
Хранилище конфигурации: версии, а не копии
Хранилище держит каждую помещённую версию конфигурации. Это не лишние копии, а история изменений: её используют, чтобы откатиться или посмотреть, кто и что поменял. Отключить сохранение версий нельзя, иначе хранилище потеряет смысл.
Что реально можно сделать:
- 🧹 Выполнить оптимизацию данных хранилища в окне администрирования хранилища в Конфигураторе. Это уменьшает размер файла без потери версий.
- 🏷️ Отмечать стабильные версии метками, чтобы проще находить нужную среди сотен.
- 🆕 Если история стала неподъёмной, создать новое хранилище из текущей конфигурации, а старое сохранить в архив только для чтения.
Отдельно от хранилища Конфигуратор у каждого разработчика держит локальную копию конфигурации — это сама информационная база, подключённая к хранилищу. Её размер растёт вместе с конфигурацией, и это тоже нормально.
Каталог хранилища на сервере (файл 1cv8ddb.1CD и сопутствующие) не чистят вручную. Удалённый «лишний» файл может сделать хранилище нечитаемым.
Проверка: копии больше не появляются
Через сутки после изменений проверьте каждое место, которое вы трогали:
- Файловая база. Каталог резервных копий: новых файлов с сегодняшней датой нет.
- MS SQL. Запрос к
msdb.dbo.backupsetвыше: последних записей по базе нет, задание вSQL Server Agent → Jobsпомечено как отключённое. - PostgreSQL. В
crontab -lнужная строка закомментирована, а в планировщике Windows у задачи статус «Отключено». - srvinfo. Размер каталога перестал расти, новых дампов нет.
Чтобы быстро найти самые крупные свежие файлы на диске Windows, используйте PowerShell:
Get-ChildItem D:\ -Recurse -File -ErrorAction SilentlyContinue |
Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) } |
Sort-Object Length -Descending |
Select-Object -First 20 FullName, @{n='MB';e={[math]::Round($_.Length/1MB)}}, LastWriteTime
Если в списке остаются файлы копий, значит, есть ещё один источник. Чаще всего это сторонний агент резервного копирования или забытая задача в планировщике.