Объем присоединенных файлов достиг 75% от объема БД. Резервное копирования и разворачивание БД для разработчиков стало занимать много времени. Принято решение перенести все присоединенные файлы в тома.
Обработка написана на основе типовой обработки «Перенос файлов в тома» конфигурации УТ 11.1.10.94.
Типовая обработка переносит файлы по справочнику «Версии файлов» из регистра сведений «Хранимые файлы версий», а предлагаемая по всем справочникам присоединенных файлов из регистра сведений «Присоединенные файлы». В обработке формируется текст запроса по метаданным, содержащим «Присоединенные файлы» в наименовании и типом хранения в информационной базе. По всем присоединенным файлам двоичные данные регистра сведений «Присоединенные файлы» переносятся в том.
Версия платформы 8.3.5.1486. Сервер 1С x32 Linux Debian.
Для настройки хранения
-
Создать общий ресурс на файловом сервере. Например \FILESERVERSHARE
-
В 1С настроить работу с файлами. Меню Администрирование — Настройки работы с файлами — Включить параметр «Хранить файлы в томах на диске».
В -
Создать в 1С том для хранения файлов.
Для сервера 1С под управлением Windows указать путь к общему ресурсу для хранения файлов. Для сервера под управлением Linux можно указать только локальный путь. Для этого нужно создать каталог на сервере 1С, в который будет монтироваться общий ресурс.mkdir /mnt/files/.
И примонтировать к созданному каталогу общий ресурс:
mount -t cifs -o username=DOMAIN\USER,password=USER_PASSWORD,dir_mode=0777,file_mode=0777 //FILESERVER/SHARE/ /mnt/files/
Указать для тома локальный путь /mnt/files/. Теперь все файлы будут храниться в томе на общем ресурсе
В обработке формируется текст запроса по метаданным, содержащим «ПрисоединенныеФайлы» в наименовании и типом хранения в информационной базе. По всем присоединенным файлам двоичные данные регистра сведений «Присоединенные файлы» переносятся в том.
Обработка запускалась на конфигурации УТ 11.1.10.94.
После выполнения обработки нужно выполнить shrink на MS SQL или vacuum на Postgresql. На файловой версии БД выполнить тестирование и исправление с включенным сжатием таблиц.
+1 Очень полезная вещь!
Бяда…
{Форма.Форма.Форма(59)}: Метод объекта не обнаружен (ДобавитьФайлВТом)
СведенияОФайле = ФайловыеФункцииСлужебный.ДобавитьФайлВТом(ХранилищеФайла.Получить(), ОбрабатываемыйФайл.ДатаМодификацииУниверсальная,
(2) BudkoT,
Какая версия конфигурации?
а после переноса ссылки в объектах останутся ?
(4) ben_art,
Ссылки не меняются. Ссылки в объектах на справочник «ПрисоединенныйФайлы», В тома переносится хранилище значения.
ещё вопрос. где то в базе засели битые или потертые файлы и при переносе выскакивает окошко «невозможно обработать файл «-_trashes»
как этого избежать, может как-то пропускать этот файл или ещё чего нибудь ?
(6) ben_art,
Приведите весь текст ошибки, пожалуйста.
вот скрин ошибки
(8) ben_art,
Корректно ли настроены права пользователя, от которого запущен сервер 1с или запущена файловая БД , на каталог где расположен том для хранения данных? На каких операционных системах развернут сервер 1с и файловый сервер?
(9) ДА всё правильно, вернее уже правильно.
файлы побились давно , теперь их не удалить не перенести.
Вот и вопрос как в Вашей обработке можно игнорировать исключения записи ?
(10) ben_art,
В вызываемой функции ДобавитьФайлВТом есть обработка исключения в случае неудачи переноса файла в том. Должны перенестись все небитые файлы. Не могу понять что значит «Битые файлы». Как они появились? Можете написать строку кода где происходит ошибка?
Исправил ошибку в данной функции и заработало в 1С Бухгалтерии 3.0.43
Я перенес часть кода в цикле создания запроса.
Процедура ПеренестиФайлыНаСервере(Оценка = Истина)
Запрос = Новый Запрос();
ТекстЗапроса = «ВЫБРАТЬ
| ВложенныйЗапрос.Ссылка
|ИЗ
| («;
Инд = 0;
КолСправочников = Метаданные.Справочники.Количество();
Для Каждого Спр Из Метаданные.Справочники Цикл
Инд = Инд + 1;
Если Найти(Спр.Имя, «ПрисоединенныеФайлы») > 0 Тогда
Если Инд > 1 Тогда
ТекстЗапроса = ТекстЗапроса + »
|
|ОБЪЕДИНИТЬ ВСЕ
|»;
КонецЕсли;
ТекстЗапроса = ТекстЗапроса + «ВЫБРАТЬ
| » + Спр.Имя + «.Ссылка КАК Ссылка
|ИЗ
| Справочник.» + Спр.Имя + » КАК » + Спр.Имя;
КонецЕсли;
КонецЦикла;
(12) zabaluev, я уже исправил.
правда пришлось перенести процедуру из общего модуля в обработку
Если в наименовании номенклатуры содержатся символы: «/» или «» — то выдается ошибка
(14) rasdag, в файле таких символов не должно быть, вот и ошибка.
Это понятно что не должно быть, но по факту как видите бывает. Так же на такой символ ругается — «*». Неплохо бы дописать в код замену таких символов. А так на УТ 11.2 тоже полет нормальный.
Добрый день! Подскажите ,пожалуйста, как для файловой базы как перенести файлы в тома?
Добрый день!Купила обработку,сделала перенос файлов на том,все прошло,файлы появились в томе,но размер базы не уменьшился,с чем это может быть связано,пожалуйста,подскажите? Тестирование и исправление со всеми галочками делала несколько раз.База файловая.
(18)Добрый день! Как вариант попробовать выгрузить базу в DT, потом загрузить обратно.
(19) Добрый день!Не помогло,есть еще какие-то способы?Заранее благодарю.
Интересно, для комплексной 2.2. подойдет?
(21) К сожалению, у меня нет возможности проверить.
(22) Свою задачу я решил, обработку сам написал… Обсуждение тутhttps://forum.infostart.ru/forum105/topic167472/
Если хотите, могу Вашу проверить на конфе КА2.2. у меня есть копия базы напичканная картинками
(23) А проверьте, было бы неплохо.
(24) Не смог запустить ни в КА2.2, ни в УТ11. Исправил, как написано в (12). Стала открываться, но при запуске ошибка скуль — нет памяти, видимо запрос здоровенный получился или у меня реально база здоровенная ,много слишком мусора
(25) А в каком месте ошибка? При формировании запроса или при переносе файла? Может быть где-то присоединен особо крупный файл?
(26) При выполнении… Доооолго саабражает, вылетает с ошибкой скуль — не хватило памяти… Памяти на тестовом серваке 16 гб, в принципе — не много…
Спасибо. УТ 11.3.4.59 прошло без ошибок
Спасибо автору!
Обработка отработала на ура — за счет переноса файлов в тома уменьшили размер базы в 4 раза.
Конфигурация: ERP для Беларуси