Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как получить макет СКД в веб-сервисе?

Как получить макет СКД в веб-сервисе?
Я
   tciban
 
26.10.20 - 12:14
Это как бы в продолжение темы Подскажите по Вебсервису и XDTO!
Там я спросил как бы мне получить из вебсервиса сразу вместо ссылки строку УИД
Мне посоветовали получать не запросом нужные сведения, а через СКД: https://start1c.blogspot.com/2014/02/blog-post.html на том тему и забыли.
Я попробовал сразу вариант с програмнным формированием схемы СКД. Некоторые затруднения вызвало подставление параметра, ну да нарыл, заработало, получение данных прилично ускорилось.
А теперь меня заинтересовал вариант получения схемы СКД через макет. Ну потому что если запрос достаточно сложный, схему программно формировать довольно долго и муторно, решил сделать схему и вставить в дерево как макет. Но столкнулся со следующей проблемой - метод ПолучитьМакет() есть только у прикладных объектов! А мне схема СКД нужна в модуле. Либо в программном модуле либо в модуле веб-сервиса.

Кто сталкивался - подскажите, как это можно сделать? Заранее благодарен уважаемым коллегам за мудрые советы!

PS: Кстати параметры в схему СКД программно добавил вот так:

    Настройки = СхемаСКД.ВариантыНастроек[0].Настройки;
    СтрПараметр = Настройки.ПараметрыДанных.Элементы.Добавить();
    СтрПараметр.Параметр = Новый ПараметрКомпоновкиДанных("Пользователь");
    СтрПараметр.Значение = Пользователь;
    СтрПараметр.Использование = Истина;

Что скажите?
   zippygrill
 
1 - 26.10.20 - 12:16
его вроде можно в xml не?
   zippygrill
 
2 - 26.10.20 - 12:16
или сериализацию
   tciban
 
3 - 26.10.20 - 12:27
(1) и (2) не совсем про то. Вот смотри - когда ты из отчета или из документа хочешь получить имеющуюся в дереве конфигурации схему СКД ты просто пишешь ПолучитьМакет(<Имя макета>)
А в моем случае что писать? Когда я в програмном модуле просто хочу получить схему CRL? программно ее скомпоновать, получить на выходе ТЗ и отправить это тезе в качестве ответа веб-сервиса. (последнне впрочем не самое определяющее, не важно)
   ДенисЧ
 
4 - 26.10.20 - 12:29
ПолучитьОбщийМакет() пробовал?
   Василий Алибабаевич
 
5 - 26.10.20 - 12:30
(0) "метод ПолучитьМакет() есть только у прикладных объектов!"

ПолучитьОбщийМакет спасет отца...
   tciban
 
6 - 26.10.20 - 12:35
(4) (5) О! Вот стоит спросить умных людей и сразу все станет на свои места :)
   tciban
 
7 - 26.10.20 - 13:29
Теперь бы кто подсказал как установить значение параметра в полученной СКД...
   ДенисЧ
 
8 - 26.10.20 - 13:33
(7) А чем данная схема отличается от той, что получена из объекта?
   tciban
 
9 - 26.10.20 - 13:43
(8) тем что там уже есть параметр, не надо добавлять, надо только значение установить
   ДенисЧ
 
10 - 26.10.20 - 13:46
(9) А в этой схеме нет параметра? Тогда чему значение устанавливать будем? О_о
   tciban
 
11 - 26.10.20 - 13:49
(10) Когда я схему формирую программно - там нет сначала параметра и я его добавляю.
    Настройки = СхемаСКД.ВариантыНастроек[0].Настройки;
    СтрПараметр = Настройки.ПараметрыДанных.Элементы.Добавить();
    СтрПараметр.Параметр = Новый ПараметрКомпоновкиДанных("Пользователь");
    СтрПараметр.Значение = Пользователь;
    СтрПараметр.Использование = Истина; 

Когда я беру схему из макета - там уже есть параметр Пользователь, но мне надо установить его значение
но почему то не прокатывает код
    Настройки = Схема.ВариантыНастроек[0].Настройки;
    СтрПараметр = Настройки.ПараметрыДанных.Элементы.Найти("Пользователь");
    СтрПараметр.Значение = Пользователь;
    СтрПараметр.Использование = Истина;
   tciban
 
12 - 26.10.20 - 14:24
up!
   ДенисЧ
 
13 - 26.10.20 - 14:34
Ну так смотри, с каким вариантом ты выполняешь...
   tciban
 
14 - 26.10.20 - 14:36
(13) Я попробовал подставить Схема.ВариантыНастроек[1] - выругалось, нет такого
   Mankubus
 
15 - 26.10.20 - 14:36
>>Настройки = СхемаСКД.ВариантыНастроек[0].Настройки;
так плохо писать. надо 
Настройки = СхемаСКД.НастройкиПоУмолчанию;
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Пользователь", Пользователь);
   Mankubus
 
16 - 26.10.20 - 14:37
и вопрос почему код не прокатывает? как это понял?
наверное просто дальше не правильно инициализируешь компоновщик
   tciban
 
17 - 26.10.20 - 14:38
(15)
Неполучилось
При вызове веб-сервиса произошла ошибка. Ошибка SOAP сервера:  Неизвестная ошибка. {РасширениеWebServis ОбщийМодуль.ws_ВебСервисы.Модуль(210)}: Ошибка при вызове метода контекста (УстановитьЗначениеПараметра)
по причине:
{РасширениеWebServis ОбщийМодуль.ws_ВебСервисы.Модуль(210)}: Ошибка при вызове метода контекста (УстановитьЗначениеПараметра)
по причине:
Параметр с указанным именем не найден
   tciban
 
18 - 26.10.20 - 14:39
(17) Непроканало потому что Настройки.ПараметрыДанных.Элементы.Найти("Пользователь"); возвращает неопределено
   Вафель
 
19 - 26.10.20 - 14:41
отчеты. мойотчет. получитьмакет
   tciban
 
20 - 26.10.20 - 14:43
(19) Нет у меня отчета :( горюю!
   Mankubus
 
21 - 26.10.20 - 14:45
что-то не так делаешь но не видя макет и весь код можно только угадывать
   tciban
 
22 - 26.10.20 - 14:58
ну код то я легко могу показать, а вот макет...
Сюда как то скриншот вставить можно? Ни разу не делал
   arsik
 
23 - 26.10.20 - 14:58
(22) Закладку параметры в СКД покажи
   tciban
 
24 - 26.10.20 - 15:05
(23) как вставить скриншот?
   arsik
 
25 - 26.10.20 - 15:06
(24) никак. Через картинкообменник
   tciban
 
26 - 26.10.20 - 15:09
Короче в закладке параметры Имя - Пользователь, Ограничение доступности галочка и запрещать незаполненые значения галочка. использование Авто
   ДенисЧ
 
27 - 26.10.20 - 15:14
(24) Кладёшь на pics.rsh.ru, ссылку сюда.
И покажи Настройки.ПараметрыДанных.Элементы в развёрнутом виде из отладчике
   tciban
 
28 - 26.10.20 - 15:22
(27) "И покажи Настройки.ПараметрыДанных.Элементы в развёрнутом виде из отладчике" Вот с этим проблема... Отладку на сервере добро если завтра админы включат :(
Была б отладка - я б может уже разобралсо
   tciban
 
29 - 26.10.20 - 15:25
пишет не нашла такого параметра
   tciban
 
30 - 26.10.20 - 15:28
 
 Рекламное место пустует
   arsik
 
31 - 26.10.20 - 15:30
(30) Эти обе галки сними а соседнюю поставь
   tciban
 
32 - 26.10.20 - 15:38
(31) А код какой для установки параметра?
   arsik
 
33 - 26.10.20 - 15:51
Вот тут еще галку попробуй
https://i.imgur.com/0CLpiQ2.png
(32) как в (15)
   tciban
 
34 - 26.10.20 - 15:56
(33) Ай шаман! Кажись заработало!


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.