Удаление лишних файлов и картинок для уменьшения базы 1С
Содержание
Картинки и присоединённые файлы раздувают базу 1С сильнее всего: одна номенклатура с фото в высоком разрешении весит в сотни раз больше, чем сама карточка товара . Чтобы освободить место, картинки и вложения либо удаляют совсем, либо переносят из базы в тома на диске — и только после этого база физически уменьшается.
Удалить файл через интерфейс мало: он лишь помечается на удаление, а размер файла базы при этом не меняется. Нужны два шага — убрать данные и сжать таблицы. Ниже — что где хранится, чем чистить и как не раздуть базу снова.
Где 1С держит картинки и присоединённые файлы
В типовых конфигурациях (Бухгалтерия 3.0, ЗУП 3.1, Управление торговлей 11) картинки и вложения живут в двух разных местах, и чистятся они по-разному.
- 🖼️ Картинки реквизитов — фото номенклатуры, логотип организации, факсимиле подписи. Хранятся прямо в реквизите объекта как значение типа
ХранилищеЗначения, обычно в сжатом виде. Такая картинка — часть карточки товара или настроек организации. - 📎 Присоединённые файлы — вложения к документам, договорам, задачам: сканы, акты, фото. Это отдельные объекты, которые 1С складывает либо внутри информационной базы, либо в томах на диске — зависит от настройки.
Пока вложения хранятся в самой базе, каждый скан увеличивает файл 1Cv8.1CD (для файловой базы) или таблицы SQL (для серверной). Перенос этих файлов в тома на диске — самый быстрый способ снять нагрузку с базы без удаления данных.
Для картинки часто хранится не только оригинал, но и уменьшенная версия для списков. Поэтому фото номенклатуры в высоком разрешении обходится базе дороже, чем кажется: один файл превращается в несколько записей. Это ещё один довод держать исходники вне базы, а в карточке — лёгкое изображение.
Посмотреть текущий способ хранения можно в разделе Администрирование, в группе настроек работы с файлами. Там же задаётся переключатель «хранить в информационной базе» / «хранить в томах на диске».
Удаление вложений и картинок штатными средствами
Штатный путь работает без выгрузок и консолей — прямо из пользовательского режима «Предприятие».
Удалить присоединённый файл у документа:
- Откройте документ или элемент справочника, к которому прикреплён файл.
- В командной панели формы найдите команду работы с присоединёнными файлами (значок скрепки или пункт «Присоединённые файлы»).
- Выделите лишние файлы и пометьте их на удаление.
Очистить картинку номенклатуры:
- Откройте карточку товара в справочнике
Номенклатура. - В области картинки вызовите команду удаления изображения (контекстное меню или кнопка рядом с полем картинки).
- Запишите карточку.
Пометка на удаление не освобождает место сразу. Объекты физически удаляются отдельной операцией: Администрирование → Обслуживание → Удаление помеченных объектов. Процедура проверяет, не ссылается ли кто-то на удаляемый файл, и только потом стирает его из базы.
Удаление помеченных объектов лучше запускать в нерабочее время: при поиске ссылок оно нагружает базу, а часть объектов может блокироваться открытыми у пользователей формами.
Перенос файлов из базы в тома на диске
Это приём, который чаще всего и нужен вместо удаления: данные остаются, а база худеет. Файлы складываются в каталог на диске (или на сетевом ресурсе), а в базе хранится только ссылка на них.
Порядок настройки:
- В разделе Администрирование, в настройках работы с файлами, переключите хранение на тома на диске.
- Создайте том: укажите имя и полный путь к каталогу, куда 1С будет писать файлы. Каталог должен быть доступен на запись пользователю, под которым работает сервер (для серверной базы) или сам пользователь (для файловой).
- Запустите перенос уже накопленных файлов из базы в том — соответствующая регламентная операция в тех же настройках.
После переноса файлы физически уезжают из базы в каталог тома. Размер 1Cv8.1CD или таблиц SQL уменьшается на объём перенесённых вложений.
Для серверной базы путь к тому указывайте в формате UNC (\\server\files), а не как локальную букву диска — иначе сервер 1С, работающий под своей учётной записью, может не найти каталог.
Картинки-реквизиты (фото номенклатуры) в тома не переносятся — это часть самого объекта. Их либо оставляют, либо чистят поштучно/обработкой.
Томов можно завести несколько и указать для каждого максимальный объём: когда один каталог заполняется, 1С начинает писать в следующий. Это удобно, если файлы растут быстро и один диск под них мал. Переключение хранения на тома и обратный перенос в базу — обратимые операции, так что экспериментировать на копии безопасно.
Что именно занимает место: поиск крупных объектов
Прежде чем чистить, полезно понять, что раздуло базу — вложения, картинки номенклатуры или рабочие таблицы.
- Для серверной базы (SQL) размеры таблиц смотрят средствами СУБД: стандартный отчёт о размере таблиц в SQL Server Management Studio или системные представления. Самые тяжёлые таблицы обычно — хранилище присоединённых файлов и таблица с картинками номенклатуры.
- Для файловой базы прямого отчёта по таблицам нет. Ориентируйтесь по размеру самого файла
1Cv8.1CDдо и после операций, а крупные вложения ищите через список присоединённых файлов с сортировкой по размеру.
Чтобы найти объекты с большими ХранилищеЗначения, удобна консоль запросов (внешняя обработка): она позволяет выбрать номенклатуру, у которой заполнена картинка, и оценить, сколько таких карточек. Если вы не уверены в конкретном имени реквизита или таблицы — не гадайте: сверьтесь со структурой метаданных в конфигураторе, а не пишите запрос наугад.
Иногда база растёт вовсе не из-за картинок, а из-за служебных данных — журнала регистрации, версий объектов, регистров. Поэтому сначала измерьте, что весит больше всего, и только потом беритесь за чистку: удаление пары сканов не поможет, если место съели не они. На серверной базе отчёт по размеру таблиц покажет виновника за минуту.
Сжатие базы: как физически уменьшить размер после удаления
Главная ловушка: вы удалили гигабайты вложений, а файл базы не стал меньше. Освобождённое место внутри базы помечается как свободное, но файл на диске не сжимается сам. Нужен отдельный шаг.
Файловая база (1Cv8.1CD):
- В конфигураторе:
Администрирование → Тестирование и исправление. Включите реструктуризацию таблиц и сжатие таблиц информационной базы — именно сжатие возвращает освободившееся место файлу базы. - Утилита
chdbfl.exeиз каталога платформы проверяет и исправляет физическую целостность файла базы. Запускают её по закрытой базе — когда база не открывается или подозреваете повреждение. Это не замена сжатию:chdbfl.exeлечит файл, а уменьшает размер именно реструктуризация и сжатие таблиц.
Порядок для файловой базы такой: сделали копию → удалили лишнее или перенесли в тома → закрыли базу для всех → запустили тестирование и исправление со сжатием. На большой базе операция идёт долго, планируйте с запасом по времени.
Серверная база (SQL):
- Освобождённое место возвращается на уровне СУБД. После крупного удаления базу SQL сжимают средствами сервера (операция shrink), желательно с последующей дефрагментацией индексов.
- Альтернатива — реструктуризация таблиц из конфигуратора, она тоже пересобирает таблицы.
Тестирование и исправление, реструктуризация и сжатие требуют монопольного доступа к базе. Все сеансы пользователей оборвутся. Запускайте только в окно обслуживания и обязательно сделайте резервную копию базы перед сжатием.
Shrink SQL-базы оставляет индексы фрагментированными — после него имеет смысл перестроить индексы, иначе первые дни работа может притормаживать.
Какой метод выбрать
Разные методы решают разные задачи: что-то освобождает место мгновенно, что-то — только после сжатия.
| Метод | Что делает | Когда применять |
|---|---|---|
| Удаление помеченных объектов | Стирает вложения и объекты из базы | Файлы больше не нужны |
| Перенос в тома на диске | Выносит файлы из базы в каталог | Файлы нужны, но база переросла |
| Очистка картинки реквизита | Убирает фото из карточки | Картинки лишние/дублируются |
| ТиИ, сжатие таблиц (файловая) | Физически уменьшает 1Cv8.1CD | После массового удаления |
| Shrink + индексы (серверная) | Возвращает место в СУБД | После массового удаления в SQL |
Частые ошибки, из-за которых чистка не помогает
Даже правильно удалив файлы, легко потерять часть данных или не получить результата. Вот что чаще всего ломает процесс.
- 🧩 Забывают про резервную копию томов. Выгрузка базы в файл
.dtсохраняет только саму информационную базу. Файлы, вынесенные в тома на диске, в.dtне попадают — их каталог нужно копировать в бэкап отдельно. Восстановите базу из.dtбез каталога тома — и присоединённые файлы перестанут открываться. - 🗂️ Руками лезут в каталог тома. Внутри тома 1С хранит файлы под служебными именами и раскладывает по подкаталогам сама. Не переименовывайте и не удаляйте там файлы вручную — база потеряет связь с ними. Чистка идёт только через механизм 1С.
- 🔗 Объект не удаляется из-за ссылок. Удаление помеченных объектов не тронет файл, на который ещё кто-то ссылается. Процедура покажет такие связи — сначала снимите ссылку (или удалите ссылающийся объект), потом повторите удаление.
- 💽 Указывают локальный диск сервера как том. Для серверной базы путь вида
D:\filesвиден самому серверу 1С, но не администратору, который настраивает том со своей машины. Используйте сетевой путь (UNC) и проверьте права на запись. - 📦 Удаляют, но не сжимают. Это главная причина разочарования: место внутри базы освободилось, а файл на диске прежний. Без сжатия таблиц (файловая) или shrink (серверная) размер не изменится.
Перед массовым удалением сделайте пробу на копии базы: перенесите часть файлов в тома, оцените, насколько уменьшилась база, и только потом повторите на рабочей.
Как не допустить повторного разрастания базы
Разовая чистка не спасёт, если вложения снова копятся внутри базы. Настройте правила один раз — и база перестанет пухнуть.
- 📁 Храните присоединённые файлы в томах на диске, а не в информационной базе. Это снимает основную нагрузку.
- 📏 Задайте ограничение максимального размера файла, который можно присоединить. Это отсекает случайную загрузку тяжёлых архивов и видео.
- 🗑️ Настройте регулярное удаление помеченных объектов по расписанию (регламентное задание), чтобы «корзина» не копилась годами.
- 🖼️ Для картинок номенклатуры используйте разумное разрешение: фото товара не нужно в 4000 пикселей, хватит превью. Крупные исходники держите вне базы.
- 📊 Периодически сверяйте размер базы — для серверной это особенно важно, чтобы вовремя увидеть разрастание конкретной таблицы.