8.х 1С:Документооборот. Загрузка файла в карточку документа

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем iPahan, 21 май 2016.

  1. TopicStarter Overlay
    iPahan
    Offline

    iPahan

    Регистрация:
    21 май 2016
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Конфигурация 1С:Документооборот.

    Есть обработка, которая загружает файлы с ПК в карточку документа. Загрузка происходит напрямик в БД.

    Код:
    Функция ДобавитьФайлВКарточкуДокумента(ВладелецФайла, ПутьДоФайла)
        ВыбФайл = Новый Файл(ПутьДоФайла);
        Расширение = СтрЗаменить(ВыбФайл.Расширение, ".", "");
        РазмерФайла = ВыбФайл.Размер();
        ИмяФайлаБезРасширения = ВыбФайл.ИмяБезРасширения;
     
        НовыйФайл = Справочники.Файлы.СоздатьЭлемент();
        НовыйФайл.Наименование = ИмяФайлаБезРасширения;
        НовыйФайл.ПолноеНаименование = ИмяФайлаБезРасширения;
        НовыйФайл.ДатаСоздания = ТекущаяДата();
        НовыйФайл.Автор = Справочники.Пользователи.НайтиПоНаименованию("Администратор");
        НовыйФайл.ВладелецФайла = ВладелецФайла;
        НовыйФайл.Записать();
        //
        НоваяВерсияФайла = Справочники.ВерсииФайлов.СоздатьЭлемент();
        НоваяВерсияФайла.Владелец = НовыйФайл.Ссылка;
        ХЗ = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ПутьДоФайла));
        НоваяВерсияФайла.ФайлХранилище = ХЗ;
        НоваяВерсияФайла.Автор = Справочники.Пользователи.НайтиПоНаименованию("Администратор");
        НоваяВерсияФайла.ДатаСоздания = ТекущаяДата();
        НоваяВерсияФайла.ДатаМодификацииУниверсальная = ТекущаяДата();
        НоваяВерсияФайла.ДатаМодификацииФайла = ТекущаяДата();
        НоваяВерсияФайла.Наименование = ИмяФайлаБезРасширения;
        НоваяВерсияФайла.НомерВерсии = 1;
        НоваяВерсияФайла.Расширение = Расширение;
        НоваяВерсияФайла.Размер = РазмерФайла;
        НоваяВерсияФайла.ТипХраненияФайла=Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе;
        НоваяВерсияФайла.Записать();
        //
        НовыйФайл = НовыйФайл.Ссылка.ПолучитьОбъект();
        НовыйФайл.ТекущаяВерсия = НоваяВерсияФайла.Ссылка;
        НовыйФайл.ТекущаяВерсияДатаМодификацииФайла = ТекущаяДата();
        НовыйФайл.ТекущаяВерсияАвтор = Справочники.Пользователи.НайтиПоНаименованию("Администратор");
        НовыйФайл.ТекущаяВерсияДатаСоздания = ТекущаяДата();
        НовыйФайл.ТекущаяВерсияНомерВерсии = 1;
        НовыйФайл.ТекущаяВерсияРазмер = РазмерФайла;
        НовыйФайл.ТекущаяВерсияРасширение = Расширение;
        НовыйФайл.Записать();
        // 
        МенеджерЗаписи = РегистрыСведений.ХранимыеФайлыВерсий.СоздатьМенеджерЗаписи();
        МенеджерЗаписи.ВерсияФайла   = НоваяВерсияФайла.Ссылка;
        МенеджерЗаписи.ХранимыйФайл = ХЗ;
        МенеджерЗаписи.Записать();
        Возврат НовыйФайл.Ссылка;
    КонецФункции
    Эта штука хороша, когда файлы хранятся в базе.
    Как мне переписать эту обработку, если файлы хранятся не в базе, а в томах на диске?
    Последнее редактирование модератором: 23 май 2016
  2. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Видимо получать адреса в томах
  3. bajiepka
    Offline

    bajiepka Опытный в 1С

    Регистрация:
    26 сен 2014
    Сообщения:
    322
    Симпатии:
    22
    Баллы:
    29
    Справочники.Пользователи.НайтиПоНаименованию("Администратор") - надёжно
    Dem0lisher нравится это.
  4. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    Надежнее не придумаешь. Тут недавно искал пользователя по наименованию и не нашел! Оказывается он был не "Администратор", а "Администратор__________" (тут типа куча пробелов) - это так КА считает, когда добавляешь нового пользователя в базу..
    bajiepka нравится это.
  5. bajiepka
    Offline

    bajiepka Опытный в 1С

    Регистрация:
    26 сен 2014
    Сообщения:
    322
    Симпатии:
    22
    Баллы:
    29
    да, тоже сталкивался с этими пробелами :)
  6. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    Насколько я понимаю - можно вместо вот той тонны кода можно просто использовать
    Код:
    РаботаСФайлами.СоздатьФайлНаОсновеФайлаНаДиске(Владелец, ПутьКФайлуНаДиске)
Похожие темы
  1. Korovay
    Ответов:
    3
    Просмотров:
    814
  2. S.Victor
    Ответов:
    0
    Просмотров:
    189
Загрузка...

Поделиться этой страницей