Имя: Пароль:
1C
1С v8
ВебСервис 8.2 Как передать печатную форму?
0 52996298
 
30.01.12
15:20
Обычное дело - дать возможность сохранить документ в том или ином формате, как?

Что имеем: рабочий веб-сервис, тип возвращаемого значения - строка
Делаю так:
1. Получаю ТабДокумент = Док.Печать()
2. Сохраняю ТабДокумент.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.HTML4)
3. Читаю текст Т = Новый ТекстовыйДокумент; Т.Прочитать(ИмяФайла)
4. Возврат Т.ПолучитьТекст();
Работает, но полнейшее ощущение, что так не правильно

Пробовал PDF, XLS вместо HTML4, говорит "Internal Server Error"
Думаю, что из-за возвращаемого типа строка...но что тогда?

Помогите!
1 52996298
 
30.01.12
23:18
Или единственный путь создавать файл и возвращать ссылку на него?
2 toypaul
 
гуру
30.01.12
23:30
может не единственный, но точно работающий
3 52996298
 
31.01.12
17:08
ПОЛУЧИЛОСЬ! Кому интересно:
Делается простой вебсервис (у меня Print), возвращается строка.
1. Берем любую печатную форму, сохраняем как PDF, например.
2. Создаем двоичные данные ДД = Новый ДвоичныеДанные(ИмяФайла);
3. Возврат Base64Строка(ДД);

Я запрос из php делал, там так
 header("Content-type: application/pdf; charset=UTF-8");
 try {
      $client = new SoapClient("Адрес веб сервиса?wsdl", array("trace" => 0,"exceptions" => 1));
      $result = $client->Print(array("doc"=>'Счет', "number"=>"55555"));
      echo base64_decode($result->return);
     }
 catch (Exception $e)
     {echo $e->getMessage();
      return;
     }
4 Fragster
 
гуру
31.01.12
17:11
передавай двоичныеданные, а внутри - html макет
5 Fragster
 
гуру
31.01.12
17:11
(3) а, ну можно и PDF
6 toypaul
 
гуру
31.01.12
20:55
по-моему в книгу знаний достойно
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.