Растёт таблица binarydata после обновления платформы на 8.3.27

TL;DR
Если вы заметили, что в вашей базе 1С начала неадекватно расти таблица binarydata после обновления платформы на версию 8.3.27, то есть несколько тривиальных способов уменьшения этой таблицы:
- Update от 14.11.2025: Обновить платформу на 8.3.27.1859: проблема решена, дальше можно не читать!
- Update от 16.10.2025: Выгнать всех пользователей из базы, прибить все зависшие сессии, для надёжности заблокировать регламентные задания. При нормальном заходе и выходе единственного (это важно!) в базе клиента срабатывает автоматическая чистка binarydata от мусора. Может сработать не на всех версиях платформы.
- Выгрузить базу в DT и загрузить обратно. Может не получится из-за ошибок.
Пробежаться по таблицам и произвести чтение полей типа ХранилищеЗначения.Update от 16.10.2025: выяснилось, что это работает только при монопольном доступе.- Вычистить неактуальные мусорные записи прямым запросом в СУБД. Из-за возможной блокировки таблицы на СУБД может потребоваться приостановка сервера 1С:
(сперва проверить результат на копии - мало ли что в интернетах напишут)delete from binarydata where f_num > 0
Чтобы остановить дальнейший катастрофический рост необходимо сделать следующее:
0) Если конфигурация самописка, то сразу после записи в ХранилищеЗначения в базу данных дописать код чтобы произвести из него чтение. К остальным шагам переходить, если этот невозможно или затруднительно сделать.
1) Через функции для технического специалиста найдите обработку "Управление хранилищем бинарных данных":
2) Включите встроенное хранилище:
3) Настройте встроенное хранилище:
4) Убедитесь что на сервере приложений 1С имеется достаточно свободного места для хранилища! Если места нет - выделите новый диск для профайла пользователя, под которым запущен сервер 1С. Бинарные данные ищите в каталоге BinDataStrg.
5) Периодически производите очистку от удалённых и перезаписанных версий файлов - основной причины распухания binarydata:
Актуальные данные, на которые есть живые ссылки, затронуты этой процедурой не будут.
Для автоматической очистки хранилища от мусора можно создать и запустить регламентное задание с такой строчкой кода:
BinaryDataStorage.ClearUnusedSpaceByUniversalDate(Date(3999, 1, 1));
А подробнее?
Детальный разбор того, что произошло после обновления платформы на 8.3.27, читайте в в этой статье (очень много букв).
При перезаписи реквизитов типа 'ХранилищеЗначения' вместо замещения старых данных в таблицу binarydata добавляются новые версии файлов. Это, в принципе, нормальное поведение для хранилища S3, но ненормально для внутреннего хранения в СУБД, если не реализована эффективная чистка старых версий. Хотя такая чистка и предусмотрена, но реализована в текущих платформах с ошибками и не работает в многопользовательском режиме.
Если вам, после исправления бага, всенепременно захочется вернуть прикрепленные файлы обратно в СУБД, то придётся дождаться релиза платформы 8.3.28, в котором фирма 1С обещает инструмент для миграции данных из хранилища в СУБД и обратно.

