0. Dorosh 139 11.12.16 18:17 Сейчас в теме

Использование REST web-сервисов в "1C:Предприятии 8". Личный опыт. Часть 2.

Запись документов и справочников.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. kiv1c 541 12.12.16 10:56 Сейчас в теме
хмм, а как вы тестировали? В данном случае вы в REST уже отправляете готовый элемент справочника в виде xml, никакой сложной обработки.
если в веб-сервисе не писать никакой логики, а только с помощью десериализации из xml (по-моему с помощью СериализаторXDTO.ПрочитатьXML) создать элемент справочника, то откуда берется такая большая разница по скорости в 3-10 раз?
2. Fragster 958 12.12.16 12:36 Сейчас в теме
Формирование XML через конкатенацию - отвратительно. Можно очень просто сломать.
speshuric; spogo; charushkin; +3 Ответить
3. Dorosh 139 12.12.16 14:03 Сейчас в теме
(2) Согласен, но деваться некуда, другого способа нет. Еще один минус в сторону REST.
4. Fragster 958 12.12.16 15:44 Сейчас в теме
(3) начиная от ЗаписьXML и заканчивая СериализаторXDTO
charushkin; +1 Ответить
5. Dorosh 139 12.12.16 19:15 Сейчас в теме
(4) И как с их помощью можно составить текст запроса для REST?
6. charushkin 13.12.16 10:33 Сейчас в теме
(5) Полагаю, как то так (накидал пример на коленке):
Запись = Новый ЗаписьXML;
Запись.УстановитьСтроку("UTF-8");

Запись.ЗаписатьОбъявлениеXML();

Запись.ЗаписатьНачалоЭлемента("entry");
Запись.ЗаписатьАтрибут("xmlns"			, "http://www.w3.org/2005/Atom");
Запись.ЗаписатьАтрибут("xmlns:d"		, "http://schemas.microsoft.com/ado/2007/08/dataservices");
Запись.ЗаписатьАтрибут("xmlns:m"		, "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata");
Запись.ЗаписатьАтрибут("xmlns:georss"	, "http://www.georss.org/georss");
Запись.ЗаписатьАтрибут("xmlns:gml"		, "http://www.opengis.net/gml");

Запись.ЗаписатьНачалоЭлемента("content");
Запись.ЗаписатьАтрибут("type", "application/xml");

Запись.ЗаписатьНачалоЭлемента("m:properties");

	Запись.ЗаписатьНачалоЭлемента("d:Ref_Key");
	Запись.ЗаписатьТекст(Строка(Новый УникальныйИдентификатор));
	Запись.ЗаписатьКонецЭлемента();

	Запись.ЗаписатьНачалоЭлемента("d:Code");
	Запись.ЗаписатьТекст("0001");
	Запись.ЗаписатьКонецЭлемента();
	
	Запись.ЗаписатьНачалоЭлемента("d:Description");
	Запись.ЗаписатьТекст("Ромашка, ООО");
	Запись.ЗаписатьКонецЭлемента();
	
	Запись.ЗаписатьНачалоЭлемента("d:INN");
	Запись.ЗаписатьТекст("1234567890");
	Запись.ЗаписатьКонецЭлемента();

Запись.ЗаписатьКонецЭлемента(); // m:properties

Запись.ЗаписатьКонецЭлемента(); // content

Запись.ЗаписатьКонецЭлемента(); // entry

СтрокаXML = Запись.Закрыть();
Показать


Получим что типа такого:
<?xml version="1.0" encoding="UTF-8"?>
<entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
	<content type="application/xml">
		<m:properties>
			<d:Ref_Key>286353be-14d9-4b5e-8bbd-3e8b641e9ef7</d:Ref_Key>
			<d:Code>0001</d:Code>
			<d:Description>Ромашка, ООО</d:Description>
			<d:INN>1234567890</d:INN>
		</m:properties>
	</content>
</entry>
Показать
7. Serginio 805 13.12.16 11:00 Сейчас в теме
(3) Вообще то ODATA создаваласть для интеграции с любыми системами. А там как раз используют объекты
Linq to ODATA
8. Трактор 1196 14.12.16 09:58 Сейчас в теме
Не SOUP, а SOAP поправь опечатку.
VasilVtoroy; GreenDragon; +2 Ответить
9. vandalsvq 1139 15.12.16 07:20 Сейчас в теме
А почему не использовать JSON? По мне так он намного проще. По времени записи наверняка xml не уступает.
user833509; izidakg; Rif_md; shmellevich; artbear; BigB; VasilVtoroy; +7 Ответить
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Ведущий программист 1С (с функцией наставничества)
Екатеринбург
зарплата от 100 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 80 000 руб. до 120 000 руб.
Полный день

Консультант по 1С:Документооборот
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Программист по 1С:Бухгалтерии
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Программист по 1С:ЗУП
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день