Имя: Пароль:
1C
1С v8
ЧЗ - метод предварительной проверки УПД
0 Double_Medved
 
09.12.24
16:49
Добрый понедельник, форумчане.
Не кидайте сильно камнями, уже глаза в кучку.

Как известно нам, в ЧЗ попадает куча УПД через ЭДО.
Но ЧЗ решил еще устроить "дополнительную предварительную проверку"

Смысл в том, чтобы весь склад ждал пока ЧЗ скажет "норм ли ему УПД", и только потом можно отправлять УПД в ЭДО

Есть у них значит 2 метода: отправить УПД на проверку и запросить результат

Вот значит отправка:

	ТелоЗапроса = Новый Структура;
	ТелоЗапроса.Вставить("id", ИдентификаторДокумента);
	ТелоЗапроса.Вставить("content", УПДBase64);
	ТелоЗапроса.Вставить("documentType", "UPD");
	ТелоЗапроса.Вставить("documentFormat", "XML");
	
	URLЗапроса = "api/v3/true-api/doc/validator/create";


Ну в общем отправляется, но когда спрашиваю "ну че там, как тебе?"

Конечно ЧЗ недоволен

{"status":"NOT_VALID","description":"Обработан с ошибкой","errors":[{"description":"Illegal base64 character d"}]}


Я понимаю что неверно формирую ему УПДBase64, но подскажите пожалуйста, что ему тут надо то?
В описании API
"Документ, закодированный в base64"


Ему надо строку в двоичные данные, и потом в base64?
Или ему целый именно файл xml с диска кодировать?
Или как ему надо?
1 MWWRuza
 
09.12.24
16:34
(0) Или ему целый именно файл xml с диска кодировать?

Не знаю, как именно здесь, но во всех других местах именно так.
2 Double_Medved
 
09.12.24
16:42
(1) Так, с 78й-попытки прошло без ошибок, уж сам не пойму почему
3 trad
 
10.12.24
11:22
(2) переносы строк убрал?
4 MWWRuza
 
10.12.24
15:07
+(3) Ага, вполне может быть. Я обычно в запрос пихаю XML через DOM сформированную, а там она одной строкой идет, без форматирования "лесенкой".
5 ptiz
 
10.12.24
18:49
Я пробовал этот метод - мне ЧЗ выдавал ОК в ответ на любую галиматью
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший