Удаление лишних файлов и картинок для уменьшения базы 1С

· 9 мин

Содержание

Картинки и присоединённые файлы раздувают базу 1С сильнее всего: одна номенклатура с фото в высоком разрешении весит в сотни раз больше, чем сама карточка товара . Чтобы освободить место, картинки и вложения либо удаляют совсем, либо переносят из базы в тома на диске — и только после этого база физически уменьшается.

Удалить файл через интерфейс мало: он лишь помечается на удаление, а размер файла базы при этом не меняется. Нужны два шага — убрать данные и сжать таблицы. Ниже — что где хранится, чем чистить и как не раздуть базу снова.

Где 1С держит картинки и присоединённые файлы

В типовых конфигурациях (Бухгалтерия 3.0, ЗУП 3.1, Управление торговлей 11) картинки и вложения живут в двух разных местах, и чистятся они по-разному.

  • 🖼️ Картинки реквизитов — фото номенклатуры, логотип организации, факсимиле подписи. Хранятся прямо в реквизите объекта как значение типа ХранилищеЗначения, обычно в сжатом виде. Такая картинка — часть карточки товара или настроек организации.
  • 📎 Присоединённые файлы — вложения к документам, договорам, задачам: сканы, акты, фото. Это отдельные объекты, которые 1С складывает либо внутри информационной базы, либо в томах на диске — зависит от настройки.

Пока вложения хранятся в самой базе, каждый скан увеличивает файл 1Cv8.1CD (для файловой базы) или таблицы SQL (для серверной). Перенос этих файлов в тома на диске — самый быстрый способ снять нагрузку с базы без удаления данных.

Для картинки часто хранится не только оригинал, но и уменьшенная версия для списков. Поэтому фото номенклатуры в высоком разрешении обходится базе дороже, чем кажется: один файл превращается в несколько записей. Это ещё один довод держать исходники вне базы, а в карточке — лёгкое изображение.

Посмотреть текущий способ хранения можно в разделе Администрирование, в группе настроек работы с файлами. Там же задаётся переключатель «хранить в информационной базе» / «хранить в томах на диске».

Удаление вложений и картинок штатными средствами

Штатный путь работает без выгрузок и консолей — прямо из пользовательского режима «Предприятие».

Удалить присоединённый файл у документа:

  1. Откройте документ или элемент справочника, к которому прикреплён файл.
  2. В командной панели формы найдите команду работы с присоединёнными файлами (значок скрепки или пункт «Присоединённые файлы»).
  3. Выделите лишние файлы и пометьте их на удаление.

Очистить картинку номенклатуры:

  1. Откройте карточку товара в справочнике Номенклатура.
  2. В области картинки вызовите команду удаления изображения (контекстное меню или кнопка рядом с полем картинки).
  3. Запишите карточку.

Пометка на удаление не освобождает место сразу. Объекты физически удаляются отдельной операцией: Администрирование → Обслуживание → Удаление помеченных объектов. Процедура проверяет, не ссылается ли кто-то на удаляемый файл, и только потом стирает его из базы.

Удаление помеченных объектов лучше запускать в нерабочее время: при поиске ссылок оно нагружает базу, а часть объектов может блокироваться открытыми у пользователей формами.

Перенос файлов из базы в тома на диске

Это приём, который чаще всего и нужен вместо удаления: данные остаются, а база худеет. Файлы складываются в каталог на диске (или на сетевом ресурсе), а в базе хранится только ссылка на них.

Порядок настройки:

  1. В разделе Администрирование, в настройках работы с файлами, переключите хранение на тома на диске.
  2. Создайте том: укажите имя и полный путь к каталогу, куда 1С будет писать файлы. Каталог должен быть доступен на запись пользователю, под которым работает сервер (для серверной базы) или сам пользователь (для файловой).
  3. Запустите перенос уже накопленных файлов из базы в том — соответствующая регламентная операция в тех же настройках.

После переноса файлы физически уезжают из базы в каталог тома. Размер 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 пикселей, хватит превью. Крупные исходники держите вне базы.
  • 📊 Периодически сверяйте размер базы — для серверной это особенно важно, чтобы вовремя увидеть разрастание конкретной таблицы.
Настройки против разрастания базы
Выполнено: 0 / 5

Частые вопросы

Почему база не уменьшилась после удаления файлов?
Удаление освобождает место внутри базы, но не сжимает файл на диске. Для файловой базы нужно сжатие таблиц в конфигураторе, для серверной — операция shrink в СУБД.
Можно ли удалить присоединённые файлы массово, а не по одному?
Да, через пометку на удаление и последующее удаление помеченных объектов. Отбор помеченных объектов можно сузить по типу — например, только присоединённые файлы.
Перенос файлов в тома удаляет их из базы?
Файлы переносятся, а не удаляются: в базе остаётся ссылка, сам файл лежит в каталоге тома. Данные не теряются, доступ к вложениям сохраняется.
Пропадут ли картинки, если перенести хранение в тома?
Присоединённые файлы продолжат открываться — путь к ним 1С хранит сам. А вот картинки-реквизиты (фото номенклатуры) в тома не переносятся, они остаются частью карточки.
Нужна ли монопольная база для сжатия?
Да. Тестирование и исправление, реструктуризация и сжатие таблиц требуют, чтобы никто не работал в базе. Все сеансы оборвутся, поэтому делайте это в окно обслуживания.