8.х Запись в файл из реквизита типа ХранилищеЗначения

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

  1. TopicStarter Overlay
    skv_79
    Offline

    skv_79 Опытный в 1С

    Регистрация:
    10 июл 2013
    Сообщения:
    371
    Симпатии:
    4
    Баллы:
    29
    Здравствуйте!
    В справочнике есть реквизит с типом ХранилищеЗначения, там сохранен файл pdf. Нужно сохранить его на диске на сервере. Не пойму как получить из реквизита двоичные данные и записать это все на диск.

    Код:
        Картинка = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "ДанныеКартинки");
       
        Каталог = "C:\inetpub\wwwroot\";
        Файл = "temp.pdf";
        
    ЗначениеВФайл(Каталог+Файл, Картинка);
    
    Тут, походу записывается навигационная ссылка, как строка в файл. А можно как-то по навигационной ссылке получить двоичные данные, чтобы это уже записать в файл на сервере?
  2. 1с-ник
    Offline

    1с-ник Профессионал в 1С Заблокирован

    Регистрация:
    5 окт 2014
    Сообщения:
    998
    Симпатии:
    162
    Баллы:
    104
    А чем тебе этот код не подходит?
    Или через православный Двоичныеданные.Записать(<ПолныйПуть>)?
    skv_79 нравится это.
  3. TopicStarter Overlay
    skv_79
    Offline

    skv_79 Опытный в 1С

    Регистрация:
    10 июл 2013
    Сообщения:
    371
    Симпатии:
    4
    Баллы:
    29
    Мне нужно не ссылку а уже двоичные данные. И чтобы это на сервере отрабатывало. Т.е. чтобы на сервере в определенную директорию скопировать файл из базы. Есть ПолучитьФайл(<Адрес>, <ИмяФайла>, <Интерактивно>) но это только на клиенте... а мне нужно на сервере.
    --- Объединение сообщений, 7 мар 2017 ---
    Чтобы двоичные данные записать, их сначала нужно получить из ХЗ. Что-то не пойму как это сделать правильно...
  4. 1с-ник
    Offline

    1с-ник Профессионал в 1С Заблокирован

    Регистрация:
    5 окт 2014
    Сообщения:
    998
    Симпатии:
    162
    Баллы:
    104
    Ну так получи ты их из хранилища значений, у тебя же там двоичные данные, а потом запиши туда, куда тебе нужно.
    Код:
    мДанные = ТвойСправочник.РеквизитТипаХранилищеЗначений.Получить();
  5. TopicStarter Overlay
    skv_79
    Offline

    skv_79 Опытный в 1С

    Регистрация:
    10 июл 2013
    Сообщения:
    371
    Симпатии:
    4
    Баллы:
    29
    Ага, уже понял, что это через объект от ссылки :)
  6. TopicStarter Overlay
    skv_79
    Offline

    skv_79 Опытный в 1С

    Регистрация:
    10 июл 2013
    Сообщения:
    371
    Симпатии:
    4
    Баллы:
    29
    Записываю ДвоичныеДанные на диск, в итоге возникает такая ошибка, хотя точно сохранял в ИБ нормальный pdf.
    Код:
    ДвоичныеДанные = Объект.Ссылка.ПолучитьОбъект().ДанныеКартинки.Получить();
    ЗначениеВФайл("C:\temp.pdf", ДвоичныеДанные);
    Через клиентский метод ПолучитьФайл() все отрабатывает и сохраняется. Значит что-то делаю не так...
    Screenshot_1.jpg
    --- Объединение сообщений, 7 мар 2017 ---
    Может что-то с декодированием действительно...
  7. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.408
    Симпатии:
    973
    Баллы:
    204
    Да что за ересь-то.....

    В хранилище значения - двоичные данные уже должны быть.
    ДвоичныеДанные = СсылкаНаОбъект.ДанныеКартинки.Получить();
    ДвоичныеДанные.Записать("C:\Temp.pdf");
    skv_79 нравится это.
  8. TopicStarter Overlay
    skv_79
    Offline

    skv_79 Опытный в 1С

    Регистрация:
    10 июл 2013
    Сообщения:
    371
    Симпатии:
    4
    Баллы:
    29
    Да, что-то ппц голова не соображает уже, ДвоичныеДанные.Записать() помогло.

    От ссылки ведь сначала Объект нужно получить...
  9. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.408
    Симпатии:
    973
    Баллы:
    204
    Для чего получать объект, если ты не собираешься его менять?
  10. 1с-ник
    Offline

    1с-ник Профессионал в 1С Заблокирован

    Регистрация:
    5 окт 2014
    Сообщения:
    998
    Симпатии:
    162
    Баллы:
    104
    8 марта сказалось чтоль?

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