Перенос присоединенных файлов во внешние тома




Обработка по переносу хранимых файлов из  базы в тома (файлы на диск)

При начале учета не верно оценил интересы руководства  и пользователей в удобстве хранения файлов для объектов, таких как номенклатура, документы поступления и реализации, входящая эл.почта. При начале ведения учета настроил  хранения файлов в базе, а зря. И так получилось что за 3 месяца работы размер базы ООООчень сильно вырос. Принял решение перенести все файлы  в тома. Поискав на в сети ничего не нашел кроме обработки Перенос присоединенных файлов номенклатуры во внешние тома , но файлы номенклатуры  это только малая часть. Так что ее то я взял за основу и немного переработав сделал для себя обработку по переносу всех «присоединенных файлов» в тома.

 Возможности:

Выбор справочника присоединенных файлов .

Индикатор =)

 

 

!!!! Перед началом работы с обработкой необходимо настроить правила хранения файлов

После можно работать с обработкой.

 

После переноса файлов необходимо сжать информационную базу.

 

Обработка тестировалась на УТ 11 и документообороте.

 

Отдельное спасибо dima-1c 

 

23 Comments

  1. kapustinag

    Правильное решение.

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

    Reply
  2. Рамзес

    (1) Достаточно внести изменения в модуль формы «Форма списка файлов и изображений» справочника «Хранилище дополнительной информации».

    Reply
  3. deniskot

    не работает на Документообороте КОРП 1,2,6,1

    {Форма.Форма.Форма(59)}: Ошибка при вызове метода контекста (Выполнить)

    Возврат Запрос.Выполнить().Выгрузить()[0][0];

    по причине:

    {(1, 71)}: Таблица не найдена «Справочник.000000001»

    Выбрать Сумма(Количество) из (Выбрать Количество(*) как Количество Из <<?>>Справочник.000000001

    Reply
  4. damontut

    В документообороте есть штатная обработка.

    Reply
  5. dihlam

    Добрый день.

    1С:Предприятие 8.2 (8.2.18.82)

    Управление торговлей, редакция 11.1

    Ошибка:

    Метод объекта не обнаружен(ДобавитьНаДиск)

    Reply
  6. kuza_87

    Спасибо тебе огромное! Классная обработка, к тому же универсальная. Я её маленько под себя ещё переделал, сделал отбор по периоду. А то у меня памяти не хватало чтобы хотя бы один справочник выгрузить

    Reply
  7. cowboy121

    Добрый день!

    Не очищается база после сжатия таблиц информационной базы. В чем может быть проблема?

    Reply
  8. eugensn

    (2) Рамзес, Какие именно изменения в модуле формы позволят обойти данное ограничение УПП?

    Reply
  9. Рамзес
    Reply
  10. DimanYa

    Для бухгалтерии может подойди?

    Или не пойдёт, но можно немного поменять в названиях процедур?

    Структура хранения одинаковая по идее должна быть и в Ут 11 и в БП 3.0

    Reply
  11. DimanYa

    Извиняюсь, нашёл типовую обработку

    Reply
  12. zayav

    как быть ?

    Не удалось добавить файл: «0002.jpg». Обратитесь к администратору системы.

    в журнале:

    Не удалось добавить файл ни на один из томов. Список ошибок:

    Ошибка при добавлении файла на том: img (\serverg1CImage20140325): {ОбщийМодуль.ФайловыеФункции.Модуль(289)}: Неверный тип данных для добавления на том

    ВызватьИсключение(СтрокаИсключения);

    1С:Предприятие 8.2 (8.2.14.540)

    УТ 11.0 (11.0.7.8)

    Reply
  13. banco

    (5) dihlam,

    вместо ФайловыеФункции.ДобавитьНаДиск

    написать ФайловыеФункцииСлужебный.ДобавитьНаДиск

    Reply
  14. 1977

    Жалко, что версии 1с КА не будет томов…….

    Reply
  15. dima_kystym

    1С:Предприятие 8.3 (8.3.6.1977)Управление торговлей, редакция 11.1 (11.1.10.138)

    Ошибка:

    Метод объекта не обнаружен(ДобавитьНаДиск)

    в чем может быть ошибка

    Reply
  16. dima_kystym

    «Метод объекта не обнаружен(ДобавитьНаДиск)» эту ошибку победил сейчас ошибка слишком много фактических параметров, может по дате можно отфильтровать присрединенные файлы?

    Reply
  17. Rustam10

    (17) dima_kystym, решение у №15 смотри.

    Reply
  18. ben_art

    Подскажите пожалуйста , как перенести файл из базы на внешний том , но при этом чтоб сохранилась ссылкав объекте на файл

    Reply
  19. riofrost

    (15) yaneev, (17) dima_kystym,

    чтобы работало на конфигурациях построенных на БСП 2.2.5 (это УТ 11.1 и УНФ 1.5 к примеру), надо заменить код

    ФайловыеФункцииСлужебный.ДобавитьНаДиск(ДвоичныеДанные, ПрисоединенныйФайл.ПутьКФайлу, ПрисоединенныйФайл.Том, ТекущаяДата(), «»,
    ПрисоединенныйФайл.Наименование, ПрисоединенныйФайл.Расширение, ПрисоединенныйФайл.Размер, ПрисоединенныйФайл.Зашифрован);
    

    на следующий:

     СведенияОФайле = ФайловыеФункцииСлужебный.ДобавитьФайлВТом(ДвоичныеДанные, ПрисоединенныйФайл.ДатаМодификацииУниверсальная,
    ПрисоединенныйФайл.Наименование, ПрисоединенныйФайл.Расширение, , ПрисоединенныйФайл.Зашифрован,
    ПрисоединенныйФайл.ДатаМодификацииУниверсальная);
    ПрисоединенныйФайл.Том = СведенияОФайле.Том;
    ПрисоединенныйФайл.ПутьКФайлу = СведенияОФайле.ПутьКФайлу;
    ПрисоединенныйФайл.ФайлХранилище = Новый ХранилищеЗначения(«»);
    ПрисоединенныйФайл.ДополнительныеСвойства.Вставить(«ЗаписьПодписанногоОбъекта», Истина);
    

    То есть, обязательно надо обновить данные в справочнике присоединенных файлов.

    Ну и еще, для правильной индикации счетчик файлов стоит внести в цикл:

    //…..
    н = н + СтруктураПорции.РазмерПорции — СтруктураПорции.КоличествоОшибок;
    КонецЦикла;
    
    Индикатор  = н;
    
    Reply
  20. realEvgenius

    Народ, кто пользовал? в КА2.2. работает, нет? Стоит брать?

    Reply
  21. maXon777

    (22)

    Юзал в СРМ 3.0 — с мелкими доработками из пункта 15 работает из коробки

    Reply
  22. user962204

    Добрый день!

    Конфа УТ 11.4.8.92

    Платформа 8.3.15.1565

    Вылезает ошибка «Поле объекта не обнаружен (Присоединенные файлы)»

    РегистрСведений Присоединенный 1с переименовал как УдалитьПрисоединенныеФайлы.

    Надо его поменять его на что то..

    Кто то сталкивался?

    Reply
  23. ActionBlog

    Спасибо за обработку!

    Наткнулся на интересную ситуацию — у нас в базе все файлы называются одинаково «Pictures1». В этом случае программа начинает плодить подпапки и в них записывать файлы с одинаковыми наименованиями, плодит-плодит и в определенный момент выдает ошибку, что больше не может плодить подпапки 🙂

    Для решения этой ситуации я рандомно переименовываю прикрепленные файлы.

    Добавил в обработку функцию, которая генерит рандомное число

    Функция Рандом() Экспорт
    UID=Новый УникальныйИдентификатор();
    UID = СтрЗаменить(UID,»-«,»»);
    Значение = «»;
    Для Н=1 По СтрДлина(UID) Цикл
    Симв = Сред(UID,Н,1);
    Значение = Значение+Прав(КодСимвола(Симв),1);
    КонецЦикла;
    Возврат Значение;
    КонецФункции

    Показать

    И после строки кода

    ПрисоединенныйФайл = Выборка.ПолучитьОбъект();

    Добавил строку

    ПрисоединенныйФайл.Наименование = Рандом();
    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *