1. Не выгружаются статусы заказов на сайт (при обмене, статус заказа попадает в свойства). Меняю статус заказа в 1с, но после обмена ничего не происходит, статус "затирается" сайтом в 1с. Наш программист 1с посмотрев код загрузки с сайта выяснил, что при загрузке заказов с сайта затирается изменения которые мы производили в 1с. А когда 1с пытается выгрузить заказы на сайт, она не находит изменений и пишет "ни один заказ не выгружен" (т.к. в нем нет изменений).
2. В каталоге site.ru/var/files/1/exim/1C_25082016 есть 3 файла, которые создаются при обмене:
log_commerceml.txt
import.xml
offers.xml
orders.xml - не создается! Почему?
Но почему то не создается orders.xml
Как настроить обмен статусами 1с <--> Сайт в обе стороны?
Попробуйте в настройках модуля CommerceML выключить настройку "Выгружать статусы заказов", тогда из интернет магазина в 1с не будут выгружаться статусы заказов. CS-Cart и 1С для заказов обновляет только статусы.
Инициатором выгрузки является 1С, последовательность загрузки при обмене заказами следующая: в начале 1С загружает заказы с сайта, затем она должна выгрузить заказы на сайт. Для изменения порядка загрузки необходимо внести изменения на стороне 1С.
Стандартный обмен отрабатывает очень странно. Он всегда выгружает все заказы с сайта, даже если они уже есть в 1С. Соответственно перезаписывает все реквизиты, даже если они менялись на стороне 1С .Нас такое поведение обмена не устраивает и, как мне кажется, не является логичным, потому как работать с этим заказом на стороне 1С становится бесполезным - он же все равно затрётся. Далее обмен проверял, какие документы загрузил с сайта, и эти же документы обратно не выгружал, даже если были изменения в этом заказе.
Я проблему решила несколько иначе: не изменением порядка загрузки, а проверкой на загруженные ранее документы из сайта. Т. е., если документ загружался ранее, то в след. раз он не загружается. Следовательно, заказы не затираются.
+ пришлось добавить в xml файл с заказами информацию о статусе, которое у нас хранится в свойстве.
+ изменить ИД заказа в файле, который формирует 1С. Она ИД формирует как уникальный идентификатор - так не работало. Изменила ИД на номер документа и всё заработало.
Стандартный обмен отрабатывает очень странно. Он всегда выгружает все заказы с сайта, даже если они уже есть в 1С. Соответственно перезаписывает все реквизиты, даже если они менялись на стороне 1С .Нас такое поведение обмена не устраивает и, как мне кажется, не является логичным, потому как работать с этим заказом на стороне 1С становится бесполезным - он же все равно затрётся. Далее обмен проверял, какие документы загрузил с сайта, и эти же документы обратно не выгружал, даже если были изменения в этом заказе.
Я проблему решила несколько иначе: не изменением порядка загрузки, а проверкой на загруженные ранее документы из сайта. Т. е., если документ загружался ранее, то в след. раз он не загружается. Следовательно, заказы не затираются.
+ пришлось добавить в xml файл с заказами информацию о статусе, которое у нас хранится в свойстве.
+ изменить ИД заказа в файле, который формирует 1С. Она ИД формирует как уникальный идентификатор - так не работало. Изменила ИД на номер документа и всё заработало.
4.3.5
я проблему для себя решил тем, что выгружаю только заказы со статусом Открытый и выгружаются по расписанию каждые 5 минут, поэтому сначала меняю статус на принят, потом если надо - какие правки уже в 1С. Обратной выгрузки нет на сайт, посмотрел по коду - там на запрос, где из 1С отправляется информация на сайт - сайт просто отдает в ответ "success".
я проблему для себя решил тем, что выгружаю только заказы со статусом Открытый и выгружаются по расписанию каждые 5 минут, поэтому сначала меняю статус на принят, потом если надо - какие правки уже в 1С. Обратной выгрузки нет на сайт, посмотрел по коду - там на запрос, где из 1С отправляется информация на сайт - сайт просто отдает в ответ "success".
Я нашла, что в процедуре ПолучитьРанееЗагруженныеДокументы(ДеревоДокументов) каждому документу должно присваиваться значение реквизита "ЕстьСсылкиНаРанееЗагруженныйДокумент". По умолчанию это ложь. Как я поняла, если документ уже загружен, то должно присваиваться истина, но там стоит такое условие, которое не присваивает истину, даже если документ уже был загружен в 1с ранее.
А потом выполняется функция "СоздатьОбновитьДокументы", которая как раз по этому реквизиту (ЕстьСсылкиНаРанееЗагруженныйДокумент) проверяет:
Если ложь, то заказ опять выгружается и затирает все изменения, добавляется в массив "МассивЗагруженныхДокументов", потом заказы, которые в этом массиве не выгружаются на сайт.
Если истина, то заказ не выгружается повторно, не попадает в массив "МассивЗагруженныхДокументов" и формируется файл выгрузки с нужными заказами.
Как я писала ранее, то пришлось добавить в файл выгрузки свойство "Статус заказа" и изменить ИД