Snippets
Created by
Василий Котов
last modified
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | //Используемая схема. Отдельный файл с расширением XSD
<xs:schema xmlns:tns="http://www.test/xdto/sample" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.test/xdto/sample" attributeFormDefault="unqualified" elementFormDefault="qualified">
<xs:complexType name="ListProduct">
<xs:sequence>
<xs:element name="Product" type="tns:Product" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Product">
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="Count" type="xs:float" use="required"/>
</xs:complexType>
</xs:schema>
///////// Конец XSD файла //////////////////////////////////////
&НаСервере
Процедура Команда1НаСервере()
СписокНоменклатуры = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://www.test/xdto/sample", "ListProduct"));
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Товары.Товар КАК Товар,
| Товары.Количество КАК Количество
|ПОМЕСТИТЬ ВТТовары
|ИЗ
| &Товары КАК Товары
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТТовары.Товар КАК Товар,
| ВТТовары.Количество КАК Количество
|ИЗ
| ВТТовары КАК ВТТовары";
Запрос.УстановитьПараметр("Товары", ТЗ());
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Номенклатура = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://www.test/xdto/sample", "Product"));
Номенклатура.Name = ВыборкаДетальныеЗаписи.Товар;
Номенклатура.Count = ВыборкаДетальныеЗаписи.Количество;
СписокНоменклатуры.Product.Добавить(Номенклатура);
КонецЦикла;
ЗаписьJSON = Новый ЗаписьJSON;
ВременныйФайл = ПолучитьИмяВременногоФайла();
// ЗаписьJSON.ОткрытьФайл("D:\1.json"); для тестирования
ЗаписьJSON.ОткрытьФайл(ВременныйФайл, "UTF-8");
ЗаписьJSON.УстановитьСтроку();
ФабрикаXDTO.ЗаписатьJSON(ЗаписьJSON, СписокНоменклатуры);
// Ответ это объект 1С "HTTPСервисОтвет" если это HTTP сервис передается в эту процедуру в виде параметра
Ответ.УстановитьТелоИзСтроки(ЗаписьJSON.Закрыть());
КонецПроцедуры
&НаКлиенте
Процедура Команда1(Команда)
Команда1НаСервере();
КонецПроцедуры
&НаСервере
Функция ТЗ()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ""Рубашка"" КАК Товар,
| 1000 КАК Количество
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ""Брюки"",
| 5000.99
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ""Носки"",
| 199
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ""Ботинки"",
| 1999
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ""Шапка"",
| 19999
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ""Трусы"",
| 99
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ""Шарф"",
| 999";
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
Возврат РезультатЗапроса;
КонецФункции
|
Comments (0)
You can clone a snippet to your computer for local editing. Learn more.