|
УФ : Проблема при добавлении строки XML в ТЧ &НаКлиенте
lucky_, lEvGl, bvb, maxab72, proger2021, runuts, asady, Hawk_1c, программистище, Сти, Доминошник, Fish, Галахад, Широкий, formista2000, Волшебник, sikuda, Fedor-1971, lubitelxml, Crusher, АгентБезопаснойНацио, Мультук, Prog_man, BalBess, denk32, Vstur, Hmster, Михаил Козлов, Лирик, maxar, petr_ivanov, arsik, Timon1405, Ненавижу 1С, DimR_71, skafandr, kir-g, shuhard, laeg, bolder
| ☑ |
0
bvb
05.05.25
✎
10:34
|
Доброго дня всем
Добавляю КИЗ сканированием в табличную часть документа
Дело происходит в методе &НаКлиенте
При передаче из процедуры ПолученыШтрихкоды () кодирую / декодирую его в Base64 :
&НаКлиенте
Функция ЗаполнитьПоДаннымШтрихкодов(ДанныеШтрихкодов)
Для каждого ТекШтрихкод Из…
НоваяСтрока = Объект.Запасы.Добавить();
НоваяСтрока .КИЗ = ПреобразоватьBase64ВСтроку(ТекШтрихкод.СканированныйШтрихкод);
Строчка добавляется, сканированный код отображается, но при сканировании следующего кода возникает ошибка : «Текст XML содержит недопустимый символ в позиции 31»
Если тот же код ввести в поле методом ручного ввода (копированием), то ошибки при последующем сканировании не происходит.
Дело именно в XML – если НЕ преобразовывать из Base64ВСтрокуXML , а добавлять просто строку Base64, все работает нормально.
В чем загвоздка ?
Помогите пожалуйста.
ЗЫ :
Как я понимаю данные из контекста формы нужно принудительно передать на сервер
|
|
1
Волшебник
05.05.25
✎
10:39
|
бессмысленный поток сознания
|
|
2
bvb
05.05.25
✎
13:32
|
(0) Все решил.
Дело было не в бобине (не в клиенте и не в сервере)
Нужно просто убрать паразитный символ, который вставляет сканер.
Походу и преобразование в Base64 не нужно
КИЗ = СтрЗаменить(КИЗ,Символ(29),"");
|
|
3
asady
05.05.25
✎
13:43
|
(0) это не паразитный символ
Это GS1
|
|
4
asady
05.05.25
✎
13:45
|
Используй эксранированный символ GS1
// Функция возвращает разделитель GS1.
//
Функция РазделительGS1() Экспорт;
Возврат Символ(29); // Dec 29
КонецФункции
// Функция возвращает экранированный символ GS1.
//
Функция ЭкранированныйСимволGS1() Экспорт;
Возврат "\x1d"; // Используется для экранирования символа GS1.
КонецФункции
|
|
5
asady
05.05.25
✎
14:49
|
(0)
КИЗ = СтрЗаменить(КИЗ,МенеджерОборудованияКлиентСервер.РазделительGS1, МенеджерОборудованияКлиентСервер.ЭкранированныйСимволGS1());
|
|
6
bvb
05.05.25
✎
14:55
|
(5)Спасибо большое
Чего то я тороплюсь и не замечаю очевидного.
Как я понимаю GS1 может встречаться в ЧЗ не один раз ?
|
|