Страницы: 1 2 След.
RSS
Сформировать отчет WS-Соединение
 

Добрый день, коллеги. Беда такая. В идеале нужен веб-сервис, которому будут передаваться: код пользователя 1С, наименование отчета и имя настройки отчета пользователя.

Веб сервис должен найти пользователя по наименованию, восстановить настройку отчета по её наименованию, сформировать отчет, результат запихнуть в табличный документ и сохранить во временный файл. Возвращать такой веб-сервис должен временное имя файла.

Создал код и, когда пихаю его во внешнюю обработку, все работает. Если же я дергаю его через веб-сервис, ругается на строку "Отчет.УстановитьНачальныеНастройки();".

Предполагаю, что при WS-соединении, так делать нельзя. Подскажите пожалуйста, как это можно порешать? Или может есть какой-то более красивый способ реализации?

 
Цитата
Андрей написал:
Добрый день, коллеги. Беда такая. В идеале нужен веб-сервис, которому будут передаваться: код пользователя 1С, наименование отчета и имя настройки отчета пользователя.  Веб сервис должен найти пользователя по наименованию, восстановить настройку отчета по её наименованию, сформировать отчет, результат запихнуть в табличный документ и сохранить во временный файл. Возвращать такой веб-сервис должен временное имя файла.  Создал код и, когда пихаю его во внешнюю обработку, все работает. Если же я дергаю его через веб-сервис, ругается на строку "Отчет.УстановитьНачальныеНастройки();".  Предполагаю, что при WS-соединении, так делать нельзя. Подскажите пожалуйста, как это можно порешать? Или может есть какой-то более красивый способ реализации?
А в переменной отчет что? Скорей всего имя отчета кривое передаешь.
 
Цитата
log написал:
Цитата
Андрей написал:
Добрый день, коллеги. Беда такая. В идеале нужен веб-сервис, которому будут передаваться: код пользователя 1С, наименование отчета и имя настройки отчета пользователя.  Веб сервис должен найти пользователя по наименованию, восстановить настройку отчета по её наименованию, сформировать отчет, результат запихнуть в табличный документ и сохранить во временный файл. Возвращать такой веб-сервис должен временное имя файла.  Создал код и, когда пихаю его во внешнюю обработку, все работает. Если же я дергаю его через веб-сервис, ругается на строку "Отчет.УстановитьНачальныеНастройки();".  Предполагаю, что при WS-соединении, так делать нельзя. Подскажите пожалуйста, как это можно порешать? Или может есть какой-то более красивый способ реализации?
А в переменной отчет что? Скорей всего имя отчета кривое передаешь.
Да нет, вроде, вызываю одной и той же строкой и через веб сервис и через внешнюю обработку в одной и той же базе: ПолучитьОтчет("Служебный","ВедомостьДенежныеСредства","Основная").

Параметры перепроверил даже только что, передаю их верно. Пробовал запихнуть этот код в Общий модуль, с галочками "Сервер", перед функцией указать "&НаСервере" и дергать такую функция Web сервисом. Не помогло (

 

Найдите процедуру модуля объекта отчета и посмотрите, что там в коде и перенесите в модуль веб-сервиса. И еще не пойму, зачем "перед функцией указать "&НаСервере""? У вас разве код общего модуля с галкой Сервер, может на клиенте выполниться?

 
Перенести в модуль веб сервиса её довольно тяжело, тоже думал об этом, она дергает довольно много других функций по всей конфигурации(
 
Вообще в БСП есть подсистема рассылки отчетов. Один из вариантов рассылки - сохранение в папку. Настройки отчетов хранятся в вариантах отчетов. Все можно содрать оттуда.
 

Подумал сейчас, так может у вас WS не может к модулю объекта обратиться, а к остальным общим модулям без проблем пройдет? Не знаю насчет вашей конфигурации, но в отчетах УПП УстановитьНачальныеНастройки() находится внутри области "#Если Клиент Тогда ... #КонецЕсли", соответственно внешнее соединение их не видит.

 
Спасибо, буду пробовать. Стандартный механизм формирования отчетов через "Универсальный отчет" в УТП 1.2 дергает еще и методы доступные только на толстом клиенте оказывается. Пол конфы под такую простую задачку ковырять надо будет.
 

Помните, что WS-соединение предназначено для выполнения кода модуля Web-сервиса 1C:Предприятия 8. И возникает WS-соединение в процессе обращения к Web-сервису, опубликованному на веб-сервере.

WS-ссылка является одним из вариантов технологии интеграции с web-сервисами сторонних поставщиков, общим объектом конфигурации в ветке «Общие» → «WS-ссылки».

Если использовать статическую ссылку, то достигается большая скорость работы и это является преимуществом использования статической ссылки перед динамической так как система 1С:Предприятие получит описание Web-сервиса 1С стороннего поставщика всего один раз, только при создании WS-ссылки. А если использовать динамическую ссылку, то в таком случае описание Web-сервиса 1С будет получаться каждый раз при вызове Web-сервиса 1С.

 

Раз разговор пошел о теории, то для того, чтобы добавить новую статическую ссылку на сторонний Web-сервис 1С, необходимо в ветке «Общие» →«WS-ссылки» вызовом контекстного меню выбрать команду «Добавить» или в меню «Действия» нажать на соответствующую кнопку.

Там потом открывается форма и в нее вот необходимо вставить адрес описания URL Web-сервиса 1С, который хотите добавить. При добавлении новой WS-ссылки указывается путь к WSDL описанию Web-сервиса 1C.

При добавлении WS-ссылки помните, что 1С: Предприятие удаляет из введенного URL завершающий символ «/».В результате добавления WS-ссылки будет автоматически создана такая же структура, как при создании Web-сервиса 1C вручную. Дальнейшая работа с такой ссылкой выполняется с помощью встроенного языка.

Страницы: 1 2 След.