Організація найпростішого зовнішнього сховища, прикріплених до документа (елементу довідника

Для вирішення проблеми з непристойним об'ємом бази даних 1C через зберігання в ній прикладених файлів у довіднику типу "СховищеДодатковоїІнформації" і всіх незручностей, таких як величезного розміру вивантаження ІБ і файлу бекапів, було написано наступне. (Це рішення не претендує на заміну вбудованих механізмів зберігання файлів у конфігураціях типу "документообіг" без відповідного доопрацювання, проте ніщо не заважає доопрацювати описаний принцип під конкретні потреби.)

Принцип досить простий:

Розглянемо досить просту та швидку реалізацію задуму на прикладі WAMP:

встановлюємо останню версію web-сервера (припустимо, до папки d:\wamp) Щоб можна було завантажувати файли до 100 мегабайт змінюємо php.ini в d:\wamp\bin\apache\apache_ВЕРСІЯ_\bin\

Щоб сервіс стартував автоматично, запускаємо services.msc, шукаємо wampapache64 (якщо x64) та ставимо тип запуску - "Автоматично"

Далі розпаковуємо в папку d: wamp www змінену вверсію Sabre з github, переходимо в браузері на http://localhost/Sabre1c-master/install/ і налаштовуємо як побажаємо. Створюємо папку для завантажень, яку вказали (за замовчуванням upload) в d:\wamp\www\Sabre1c-master\ переходимо на http://localhost/Sabre1c-master/?CWD=\Тест\123 і завантажуємо будь-який файл, перевіряємо результат у папці d:\wamp\www\Sabre1c-master\upload\Тест\123\ з'явився завантажений файл.

Роботу файл-менеджера перевіряв як на windows, так і на linux web-серверах, проблем із кодуванням імені файлу при завантаженні вдалося запобігти. Пробіли в імені файлу під час завантаження замінюються символами нижньогопідкреслення. Якщо є необхідність заборонити завантажувати файли з розширенням, не включеним до списку дозволених, можна розкоментувати та поправити кілька рядків у файлі core\upload.php:

Тепер йдемо в 1с і розміщуємо на потрібному документі або довіднику Поле HTML документа з аналогічним ім'ям і додаємо в функцію модуля Прі Відкриття () код:

Також можна написати найпростішу обробку, щоб вивантажити всі файли зі сховища в базі до папки на диску.

Все нижчеописане Ви можете повторити для себе, але виключно на свій страх та ризик. Автор не несе відповідальності за виникнення будь-яких проблем.

І видалити вивантажені файли з БД.

Тепер, щоб фактичний розмір БД зменшився після видалення з неї мотлоху, залишилося тільки вивантажити і завантажити ІБ.