OData Передать в запросе POST значение перечисления

1. barm 07.12.18 15:04 Сейчас в теме
Доброго дня!
Подскажите кто знает, или может идея у кого появиться.
Через запрос POST записываю документ по протоколу OData в базу. Конфигурации баз различные(ут, упп), но значения перечисления одинаковые. Необходимо в табличной части установить ставку НДС.

| <d:Количество>"+СтрЗаменить(Строка(Формат(СтрокаН.Количество,"ЧГ=0")),",",".")+"</d:Количество>
| <d:СтавкаНДС>"+Метаданные.Перечисления.СтавкиНДС.ЗначенияПеречисления[Перечисления.СтавкиНДС.Индекс(СтрокаН.СтавкаНДС)].Имя+"</d:СтавкаНДС>
//| <d:СтавкаНДС>НДС10</d:СтавкаНДС>
| <d:Сумма>"+СтрЗаменить(Строка(Формат(СтрокаН.Сумма,"ЧГ=0")),",",".")+"</d:Сумма>

В данном варианте ставка устанавливается Без НДС.
Как правильно передать значение перечисления через запрос POST по OData?
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. DJDUH 17 07.12.18 15:16 Сейчас в теме
(1)А когда передать значение, а не имя, что на выходе!?
ну например:
<d:СтавкаНДС>"+Перечисления.СтавкиНДС.НДС10+"</d:СтавкаНДС> 

Или
<d:СтавкаНДС>"+ПредопределенноеЗначение(Перечисления.СтавкиНДС.НДС10)+"</d:СтавкаНДС> 
3. oleg-x 26 07.12.18 15:24 Сейчас в теме
(1) Проверьте порядок перечислений, если одинаковый, то синхронизируйте по порядковому номеру. Главное, что бы его потом не поменяли :-)
5. barm 07.12.18 15:34 Сейчас в теме
(3) Олег, порядок одинаковый. Как реализовать синхронизацию в запросе POST в формате xml?
8. oleg-x 26 07.12.18 15:44 Сейчас в теме
(5)
Функция ПолучитьПорядокСтавки(Перечисление)
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	СтавкиНДС.Порядок КАК Порядок
		|ИЗ
		|	Перечисление.СтавкиНДС КАК СтавкиНДС
		|ГДЕ
		|	СтавкиНДС.Ссылка = &Ссылка";
	
	Запрос.УстановитьПараметр("Ссылка", Перечисление);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Если ВыборкаДетальныеЗаписи.Следующий() Тогда
		Возврат ВыборкаДетальныеЗаписи.Порядок;
	КонецЕсли;
КонецФункции
Показать
4. barm 07.12.18 15:27 Сейчас в теме
В первом случае в запросе получается:
<d:СтавкаНДС>10%</d:СтавкаНДС>

В ответе:
<m:message>Перечисление 'СтавкиНДС' не содержит элемент '10%'.</m:message>


Во втором:
ПредопределенноеЗначение возвращает ссылку. Точно не подойдет. И ругается на несоответствие параметров.
6. barm 07.12.18 15:37 Сейчас в теме
(4) DJDUH, благодарю за идеи. Проверил - не подошли.)
7. DJDUH 17 07.12.18 15:38 Сейчас в теме
(4) ок, а как передаёте номенклатуру - можно пример?
10. barm 07.12.18 17:39 Сейчас в теме
(7) Номенклатура не передается. Она должна быть в базе приемнике. По артикулу через GET запрос находится ее УникальныйИдентификатор и уже в POST передается он.

| <d:Номенклатура_Key>"+СтрокаН.УнИд+"</d:Номенклатура_Key>

В запросе:

<d:element m:type="StandardODATA.Document_ЗаказПокупателя_Товары_RowType">
<d:Номенклатура_Key>8flka1d8-8e77-11e7-a96b-e41f1345t942</d:Номенклатура_Key>
12. barm 07.12.18 17:57 Сейчас в теме
(7)
(10)
GET передает так:
<d:СтавкаНДС>НДС10</d:СтавкаНДС>

Но через POST не принимает в таком же формате.
13. oleg-x 26 07.12.18 18:17 Сейчас в теме
(12) Ни разу не работал с oData, я так понимаю с другой стороны обработка идет согласно какому то алгоритму, в который вы не можете вмешиваться?
Пошел читать, что за зверь этот оData
9. oleg-x 26 07.12.18 15:45 Сейчас в теме
Порядок доступен только в запросе, так что делать через запрос.
У меня сделано подобным образом через ComОбъект.
11. barm 07.12.18 17:50 Сейчас в теме
(9) Олег, проверил.

OData не понимает. В запросе:

<d:СтавкаНДС>2</d:СтавкаНДС>

В ответе:
<m:message>Перечисление 'СтавкиНДС' не содержит элемент '2'.</m:message>
14. barm 10.12.18 16:32 Сейчас в теме
Все нормально.
Перечисление передается.
| <d:СтавкаНДС>НДС10</d:СтавкаНДС>

Проблема была в другом. Не передавал реквизит "УчитыватьНДС" .
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

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

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)