Имя: Пароль:
1C
1С v8
1С Веб Сервис: Как можно передать таблицу из трех колонок?
,
0 fierylions
 
25.06.14
12:23
Добрый день коллеги!

Стоит такая задача:

Создать веб сервис который будет возвращать таблицу из трех колонок

УИД Товара | УИД Магазина| Булево (по факту присутствует данный товар в магазине или нет)

Знаю что можно передавать список строк. Или структуру со списком строк.
А вот как предать таблицу составляющею из нескольких колонок к сожалению не знаю.

Прошу поделиться опытом..
1 mikecool
 
25.06.14
12:27
определяешь - какой тип тебе нужен на выходе
смотришь - поддерживает ли этот тип 1с
делаешь вывод
2 Лодырь
 
25.06.14
12:28
XDTO пакет
3 SUA
 
25.06.14
12:29
список структур из 3 колонок
легко
или 3 списка
4 fierylions
 
25.06.14
12:29
(2) Логично что XTDO не могу найти там такого типа... Максимум что там можно это структура из массива строк но этой не подойдет...
5 SUA
 
25.06.14
12:30
или если для 1С-1С ЗначениеВСтрокуВнутр()
6 fierylions
 
25.06.14
12:31
(3) Списком можно только строки делать. Другими словами я могу сделать 3 списка но они не как не будут между собой связаны...
7 fierylions
 
25.06.14
12:32
(5) обмен 1С и PHP сайт
8 Лодырь
 
25.06.14
12:33
(4) Вы должно быть шутите? А как оно у нас работает? Мы обычно используем внешнюю обертку с полями аля "дата формирования, количество строк" и ресурсом data содержащим массив объектов представляющих дефакто строку таблицы.
9 fierylions
 
25.06.14
12:34
В крайний случай хочу конечно закинуть значение трех колонок в одну строку разделенную символами и списком передать... но это крайний случай и довольно кривой вариант т.к даже не представляю как прогеры сайта будут там нарезать строку...
10 fierylions
 
25.06.14
12:37
(8) можете привести пример
11 fierylions
 
25.06.14
12:39
Я так понимаю конкретно таблицу как тип передать нельзя?
12 SUA
 
25.06.14
12:40
(6) Не только
пилится свой XDTO
в нем свой первый тип - структура, 3 строки
и второй тип - список, этой структуры
13 thezos
 
25.06.14
12:41
(0) Если суть задачи на стороне 1С получить инфу о присутствии товара в магазине, то можно обойтись без таблицы, а возвращать только есть или нет. А список товаров и магазинов пусть передают со стороны сайта во входящих параметрах.
14 dj_serega
 
25.06.14
12:42
(11) Можно.
Нужно создать XDTO-пакет в 1С.
И этот тип выбрать в качестве типа возвращаемого значения.
15 dj_serega
 
25.06.14
12:44
+ (14) а можно тупо сериализировать ТЗ в xdto и передать как xml.
16 fierylions
 
25.06.14
12:45
(15) можете привести конкретный пример?
17 fierylions
 
25.06.14
12:46
(16) она только для 1С
18 fierylions
 
25.06.14
12:47
Всем спасибо. Буду думать.
19 Лодырь
 
25.06.14
12:48
(10)
http://screencast.com/t/3lkpbNZTE1

Три связанных пакета. DataSet в Specifications это по сути массив "Спецификации", а "Composition" в "спецификации" это массив "СтрокаСпецификаций"
20 dj_serega
 
25.06.14
12:50
(16)
Дерево = Новый ДеревоЗначений();

    // В этой переменной храним параметры для выполнения фонового задания
    СтруктураПараметров = Новый Структура;
    СтруктураПараметров.Вставить("Дерево",                    ДеревоОбъект);
    СтруктураПараметров.Вставить("ОтборНачалоПериода",        Объект.НачалоПериода);
    СтруктураПараметров.Вставить("ОтборКонецПериода",        Объект.КонецПериода);
    
    // Помещаем данные параметров в хранилище значения и пакуем их в XML строку.
    XMLСтруктура = XMLСтрока(Новый ХранилищеЗначения(СтруктураПараметров, Новый СжатиеДанных(9)));


или

ТЗXML = XMLСтрока(Новый ХранилищеЗначения(Дерево));


Работает отлично :)
21 Serginio1
 
25.06.14
14:08
Можешь передать и таблицу значений ввиде ValueStorage


v8: Операция web-сервиса не возвращает значение типа structure