Имя: Пароль:
1C
 
БПО экранирует кавычку при отправке этикетки на печать
0 pocketbeast
 
30.10.25
16:48
Приветствую всех, кто обратил внимание на этот топик!

Помогите, пожалуйста, разобраться со следующей проблемой. У меня есть Библиотека Подключаемого Оборудования 2.0. В ней есть процедура "МенеджерОборудованияКлиент.НачатьПечатьЭтикеток". В нее подается макет этикетки в формате XML и данные для печати. Сама процедура работает отлично, но проблемы появляются, когда я пытаюсь отправить на нее штрихкод из честного знака. Как известно, в таком штрихкоде может быть символ кавычек ("), но XML экранирует его в &quot ; !!! Честный знак перестает воспринимать такой штрихкод и говорит, что я его якобы подделываю.

Для наглядности вот пример:
Получаю штрихкод из ЧЗ: 0104601071054136215"LpWtsTCsHXN\u001d93xxkz - данный код считывается без проблем
После печати: 0104601071054136215&quot ;LpWtsTCsHXN\u001d93xxkz - ЧЗ ругается, что код подделан

В ПодключаемоеОборудованиеУниверсальныйДрайверКлиент, в методе ПечатьЭтикеток как раз и происходит передача сформированного xml в драйвер принтера. Изменить работу самого драйвера я не могу, потому что это черный ящик, но могу отредактировать передаваемый ему xml. Собственно, именно это я и делаю. Я просто заменяю экранированную кавычку назад на нормальную:

...
ДанныеДляВыгрузки = СтрЗаменить(ДанныеДляВыгрузки, "&quot ;", """");            
Ответ = ОбъектДрайвера.ПечатьЭтикеток(ПараметрыПодключения.ИДУстройства, ДанныеДляВыгрузки, СтатусПакета);
...


Удивительно, но это работает. Внутри драйвера xml все равно корректно считывается и на печать выходит штрихкод, который адекватно распознается честным знаком.

Единственное, что меня беспокоит, так это то, что когда-нибудь этот костыль сломается. Я уже выяснил, что если в тексте две кавычки, то последняя проигнорируется. И не могу даже представить какие еще возможны варианты, при которых мое решение перестанет работать.

Поэтому очень прошу подсказать, есть ли какой-нибудь вариант понадежнее? Если кто работал с принтером этикеток через БПО и честным знаком, то как вы справлялись вот с такой проблемой?
1 pocketbeast
 
30.10.25
15:07
Забыл упомянуть, что пробовал делать то же самое в Бухгалтерии Предприятия 3.0, где у меня стоит БПО по-новее. Но проблема все равно остается.

В целом, ничего удивительно, ведь это не проблема разработчиков БПО, а особенность XML. Но я просто надеялся, что в новой версии использовали бы какой-нибудь формат, который более надежен в плане сериализации.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой