Имя: Пароль:
1C
1С v8
веб-клиент: сохранение текстового файла
,
0 fimanich
 
26.03.13
16:12
8.2.16 Веб-клиент.
Задача: сформировать и сохранить html-файл и тут же открыть его в новой вкладке браузера. Код примерно такой (на клиенте):
ТД = Новый ТекстовыйДокумент;
ТД.УстановитьТекст(ТекстHTML);
ТД.Записать(ИмяФайла, "windows-1251");
ЗапуститьПриложение(ИмяФайла);

При этом сначала в браузере (Mozilla) появляется вопрос: "Получить файл С:/Temp/Файл1.html с сервера? После того, как нажимаем "Да", появляется сообщение "Неизвестная ошибка: Web.Types.FileContext_prepareSaveParams is not a function"

В тонком клиенте все работает. В СП прочитал, что при вызове метода Записать() текстового документа в веб-клиенте происходит обращение к серверу, но не совсем могу понять, что это значит. На сервере пытается сохранить, что ли? Может кто-подскажет, как победить?
1 fimanich
 
26.03.13
16:14
(0) дополню, имя файла оканчивается на .html, т.к. там html код, который и надо браузером открыть.
2 Юрий Лазаренко
 
26.03.13
16:20
(0) А надо открывать в новой вкладке обязательно НЕ в окне 1С? А то можно просто открывать форму какой-нить обработки с HTML-полем и в нем все показывать.
3 Юрий Лазаренко
 
26.03.13
16:21
(0) Ну или веб-сервис можно замутить, но это надо наверно php ставить на сервер с 1С. Через ЗапуститьПриложение вызываешь страничку php с GET-параметрами, она дергает веб-сервис и выводит нужную инфу в отдельнов не 1Совском окне.
4 fimanich
 
26.03.13
16:25
(2) Да, именно НЕ в 1С. А неужели из веб-клиента нельзя провернуть такую операцию, как запись текстового файла на жесткий диск?
5 Юрий Лазаренко
 
26.03.13
16:30
(4) Наверняка можно, но могут быть траблы типа того, что в (0) описано: всякие доп. вопросы и т.д.
6 Kreont
 
26.03.13
16:31
(4) можно, см. ПолучитьФайл
7 fimanich
 
26.03.13
16:35
(5) доп. вопросы сейчас не главное, лишь бы взлетело как таковое.
(6) спасибо, тоже думал в этом направлении, сейчас буду пробовать через временное хранилище сделать.
8 Юрий Лазаренко
 
26.03.13
16:39
(7) Посмотри как в БСП сделано в подсистеме "Файлы"
9 fimanich
 
26.03.13
16:40
(8) спасибо, гляну.
10 fimanich
 
26.03.13
17:20
по результатам, если кто интересуется.
на сервере выполняем следующий код:
ТД.Записать(ИмяФайлаНаСервере, "windows-1251");
           ДД = Новый ДвоичныеДанные(ИмяФайлаНаСервере);
           Адрес = ПоместитьВоВременноеХранилище(ДД, УникальныйИдентификатор);

на клиенте:
ПолучитьФайл(Адрес, ИмяФайлаПолучение);
при этом ЗапуститьПриложение использовать не надо, потому что в веб-клиенте ПолучитьФайл можно только интерактивно, а при интерактивном получении там как раз предлагается Открыть.
Программист всегда исправляет последнюю ошибку.