1b.app
Скопирована ссылка -

передача спецсимволов в названиях продуктов из 1с

Есть необходимость консультации по работе с системой?
Вы всегда можете создать топик на нашем форуме и партнеры-интеграторы с радостью вам помогут! Создать топик на форуме
используем ваш модуль интеграции с 1С
загружаем продукты в бокс из 1С.
в названиях продуктов попадаются спец символы, например &
подскажите, пожалуйста, как передавать такие символы из 1С в 1В так, чтобы это не вызывало ошибки.
если нужно донастроить экранирование на стороне 1с, то как нужно правильно экранировать такие символы, чтобы бокс их различил?

Ответы:

Добрый день. Попробуйте при выгрузке заменить "&" на "&" на стороне 1с
30.12.2020, 12:23

Перегиняк Александр
Oneboxconsulting (интегратор)

Бодяко Дмитрий
Сотрудник писал/а:
Добрый день. Попробуйте при выгрузке заменить "&" на "&" на стороне 1с

вы случаем не опечатались? конструкции не отличаются
мы пробовали
\&
&
не помогло. обновление названия продуктов не происходит, видать скрипт крешится на этих конструкциях
30.12.2020, 12:36

Перегиняк Александр
Oneboxconsulting (интегратор)

Бодяко Дмитрий
Сотрудник писал/а:
Добрый день. Попробуйте при выгрузке заменить "&" на "&" на стороне 1с

аааа. понял. бокс "съедает" часть сообщения. можете скрином дать?
конструкция не сработала
30.12.2020, 12:39

ага, вам нужно "& amp;" без пробела между ними. Форум превращает эту конструкцию просто в &, потому что это конструкция в том числе и для html
30.12.2020, 12:51

Перегиняк Александр
Oneboxconsulting (интегратор)

Бодяко Дмитрий
Сотрудник писал/а:
ага, вам нужно "& amp;" без пробела между ними. Форум превращает эту конструкцию просто в &, потому что это конструкция в том числе и для html

понял. конструкцию "& amp;" пробовали, не помогло. выставлять баг?
30.12.2020, 13:06

попробуйте еще оборачивать значения тегов в CDATA , если это не сработает нужно будет дорабатывать парсер с нашей стороны, чтобы мог ловить CDATA . Но это никак не баг)
30.12.2020, 14:23

Перегиняк Александр
Oneboxconsulting (интегратор)

Бодяко Дмитрий
Сотрудник писал/а:
попробуйте еще оборачивать значения тегов в CDATA , если это не сработает нужно будет дорабатывать парсер с нашей стороны, чтобы мог ловить CDATA . Но это никак не баг)

передаем в xml амперсанд в экранированном виде вот так
в лог-файле вот так , т.е. квадратная скобка появляется
подскажите, это норм, почему так в логах отображается?
если нужна доработка, то оцените, плиз, и желательно не через использование CDATA
на всякий случай прилагаю исходный xml файл, который отправляется в бокс из 1с
31.12.2020, 10:38

если указанные методы не сработали, то нужно парсить значение из CDATA. Т.е. с вашей стороны значение тега нужно оборачивать в CDATA а с нашей парсить соответствующим образом. Для одного апи это займет 1ч доработки.
08.01.2021, 15:59

Перегиняк Александр
Oneboxconsulting (интегратор)

Bilbo Baggins
взломщик писал/а:
если указанные методы не сработали, то нужно парсить значение из CDATA. Т.е. с вашей стороны значение тега нужно оборачивать в CDATA а с нашей парсить соответствующим образом. Для одного апи это займет 1ч доработки.

выставьте счет, пожалуйста!
17.02.2021, 14:26

Перегиняк Александр
Oneboxconsulting (интегратор)

Bilbo Baggins
взломщик писал/а:
если указанные методы не сработали, то нужно парсить значение из CDATA. Т.е. с вашей стороны значение тега нужно оборачивать в CDATA а с нашей парсить соответствующим образом. Для одного апи это займет 1ч доработки.

будет реализовано только для названия продукта или и для других полей?
17.02.2021, 14:30

для всего xml
17.02.2021, 14:37

Перегиняк Александр
Oneboxconsulting (интегратор)

Bilbo Baggins
взломщик писал/а:
для всего xml

супер! выставьте счет
17.02.2021, 17:37

Добрый день. Добавил чтение из CDATA.
28.10.2021, 16:41

Перегиняк Александр
Oneboxconsulting (интегратор)

anonymous duck

OneBox production

Сотрудник писал/а:
Добрый день. Добавил чтение из CDATA.

этот код, сформированный на стороне 1с будет валидным для обработки ?
29.10.2021, 17:20

Именно этот кусочек валиден. Если остальной xml впорядке - все должно быть ок
01.11.2021, 09:52

Перегиняк Александр
Oneboxconsulting (интегратор)

anonymous duck

OneBox production

Сотрудник писал/а:
Именно этот кусочек валиден. Если остальной xml впорядке - все должно быть ок

проверяем. пока не работает. На стороне 1с настроили оборачивание в cdata полей, настроили копирование файла, передаваемого в 1в (см. вложение)
получается что в логах отображается вот так , а в самом файле, отправляемом с сервера вот так . т.е. откуда-то оно массив берет , на том крешится и данные в карточке товара не обновляет. прошу поправить либо помочь разобраться что не так.
01.11.2021, 14:37

Вы можете дать мне curl запрос полный, который вы делаете чтобы я потестил и попринтил сразу у себя? Файлик после обработки к сожалению сразу удаляется, неудобно ловить момент когда он есть или чет принтить в логи.
01.11.2021, 16:29

Перегиняк Александр
Oneboxconsulting (интегратор)

anonymous duck

OneBox production писал/а:
Вы можете дать мне curl запрос полный, который вы делаете чтобы я потестил и попринтил сразу у себя? Файлик после обработки к сожалению сразу удаляется, неудобно ловить момент когда он есть или чет принтить в логи.

смогли сделать следующее...
создали папку на сервере, куда сохраняется файл при каждой выгрузке

сообщите куда прислать доступы
17.11.2021, 08:30

Та просто весь запрос что вы делаете сбросьте мне сюда в виде файлика. Например:
curl -X 'POST' 'https://ххх/1с/product/set/' -H 'accept: application/json' -d 'контент файлика' . Или просто сам файлик приложите в данную тему, я сам сформирую запрос
17.11.2021, 13:04

Перегиняк Александр
Oneboxconsulting (интегратор)

anonymous duck

OneBox production писал/а:
Та просто весь запрос что вы делаете сбросьте мне сюда в виде файлика. Например:
curl -X 'POST' 'https://ххх/1с/product/set/' -H 'accept: application/json' -d 'контент файлика' . Или просто сам файлик приложите в данную тему, я сам сформирую запрос
18.11.2021, 10:08

Перегиняк Александр
Oneboxconsulting (интегратор)

anonymous duck

OneBox production писал/а:
Та просто весь запрос что вы делаете сбросьте мне сюда в виде файлика. Например:
curl -X 'POST' 'https://ххх/1с/product/set/' -H 'accept: application/json' -d 'контент файлика' . Или просто сам файлик приложите в данную тему, я сам сформирую запрос

Файлик прилагаю
18.11.2021, 10:09

Перегиняк Александр
Oneboxconsulting (интегратор)

anonymous duck

OneBox production писал/а:
Та просто весь запрос что вы делаете сбросьте мне сюда в виде файлика. Например:
curl -X 'POST' 'https://ххх/1с/product/set/' -H 'accept: application/json' -d 'контент файлика' . Или просто сам файлик приложите в данную тему, я сам сформирую запрос

файлик предоставил. когда ждать ответ? у клиента аврал из-за этого. остатки не обновляются
23.11.2021, 11:37

Добрый день. Ваш xml невалидный. Проверить вы это можете переименовав файлик в .xml и открыв в браузере.
29.11.2021, 14:02

Добрый день, исправили ошибки, теперь xml валидны, в архиве примеры выгрузок в формате txt и xml, по прежнему полная выгрузка не работает, но работает выборочная.

Протестировали выгрузку отдельных категорий:
1) Точно НЕ выгружаются категории: Акции, Аксессуары;
2) Точно выгружаются категории: Квадрокоптеры, Стедикамы, Проекторы, Смарт-часы, Пылесосы, Промышленные решения;
3) Неизвестно работают ли категории: Услуги, Роботы.

Скидываю архив с примерами выгрузок, в нем:
1) Выгрузка категории Акции (не выгружается);
2) Выгрузка отдельного товара из категории Акции (выгружается);
3) Выгрузка категории Квадрокоптеры (выгружается);
4) Выгрузка всех категорий (не выгружается).

Оставил включенной полную выгрузку.
Товар для тестирования, он находится в категории Аксессуары:
30.11.2021, 12:08

у меня не распаковывается ваш архив. пришлите пожалуйста в другом формате, zip к примеру.
30.11.2021, 12:59

Скидываю .zip
30.11.2021, 13:15

по файликам различий не вижу, тулза их парсит. Попробуйте сейчас сделать запрос с продуктами которые не проходят, я поставил логи. Посмотрим что будет на сервере
30.11.2021, 15:01

Запустил обмен
30.11.2021, 15:07

запустите еще раз
30.11.2021, 15:12

Запустил
30.11.2021, 15:13

Станислав, вы шлете невалидный xml. В нем есть такие строки

<name_ua><![CDATA[Зарядний хаб для CrystalSky "ФР-000345">Распродажа</category>

Сохраните файл перед отправкой себе и посмотрите на продукт с артикулом CP.BX.000230 .
30.11.2021, 15:20

Перепроверил, отправился не тот файл. Сейчас стоит правильная выгрузка. xml читается. У указанного продукта имеется символ "&" в названии, в xml он выглядит так:

Из-за этого может возникать ошибка?
30.11.2021, 15:33

Станислав, ваш новый xml и любой друго который вы слали в последние 10 минут тоже невалидны. Валидность файла проверить очень просто. Нужно сохранить его себе и открыть в баузере, браузер вам укажет место и даже номер строчки косяка, там будет легко понять что не так.
30.11.2021, 15:40

Вот открыл в хроме последнюю выгрузку, ошибок с указанием строки и столбца нет, файл у меня читается:
30.11.2021, 15:47

Пришлите только эту ОДНУ выгрузку сейчас в бокс, я посмотрю. Остальные выгрузки выключите.
30.11.2021, 15:50

Выгрузка происходит автоматически, каждые 10 минут. Одна и таже. Чтобы отключить ее совсем придется привлекать разработчика по 1С, потому что эти настройки закопаны вне пользовательского интерфейса. Это займет время. Мне привлекать разработчика для отключения автоматизации или мы можем провести анализ во время этого 10-минутного окна между выгрузками?
30.11.2021, 15:57

Я посмотрел полный файлик который приходит нам. Он обрывается посередине:
<product>
<category id="ФР-000546">Аксессуары DJI Mini 2</category>
<vidceni>ЦЕНА РРЦ</vidceni>
<barcode>6941565901347</barcode>
<brand>DJI</brand>
<garantiya12>14 дней</garantiya12>
CP.MA.00000295.01
ФР-0005967

<![CDATA[Фірмова міні-сумка DJI Mini (Чорно-Жовта)]]></name_ua>
<naimenovaniedlyapechati36><![CDATA[Фірмова міні-сумка DJI Mini (Чорно-Жовта)]]></naimenovaniedlyapechati36>
<vendorname>DJI Mini Bag (Black Array

соответственно xml не может быть обработан, из за того что оборван. Это может быть из за того что шлют не полный или стоит какой то лимит на сервере на post запрос из-за чего php не может считать полностью запрос. В первом случае может пофиксить 1c программист, во втором - системный администратор увеличив лимиты. Так же вы можете разбить выгрузку на более мелки файлики по 1000 товаров к примеру, тогда должно заходить нормально.
30.11.2021, 17:24

Спасибо, проверяем
30.11.2021, 17:25

Добрый вечер.
Проблему идентифицировал.

В вышеописанном примере, на котором вы показали обрыв передаваемого xml, проблема была на символе "&", он не был обернут в CDATA и в этом месте произошел разрыв. Мы это исправили, обернули это поле в CDATA. Но OneBox по прежнему не обрабатывает товары, у которых есть этот символ.
Я сейчас включил выгрузку исключительно с одним товаром, у которого есть этот символ в названии, остаток по нему не обновляется, прошу проверить что происходит на стороне OneBox
01.12.2021, 17:24

На всякий случай прикреплю xml, который мы сейчас отправляем, с этим одним товаром
01.12.2021, 17:26

Попробуйте заменить & на %26 по всему файлу
02.12.2021, 10:56

Да, все стало работать
02.12.2021, 17:16

рад что смог вам помочь. Хорошего дня.
07.12.2021, 11:07

Пожалуйста, присоединяйтесь к диалогу. Если вам есть что сказать - пожалуйста, напишите комментарий. Для входа потребуется мобильный телефон и смс-код для идентификации. Войти и написать комментарий