Дано
1. Управление производственным предприятием, редакция 1.3 (1.3.85.2)
2. Модуль обмена "Интернет-магазин 1с" версии 6.0.3.4
Склады синхронизированы при ручном обмене с анализом
При загрузке выдает ошибку
Процес выполнения обмена: success
prices___16cbebce-1670-4760-b5a9-7a003670ff1a.xml: Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
Ответ сервера:
{"ready":true,"processId":"5880dca0c188e"}
Ответ сервера: {"ready":true,"processId":"5880dca0c188e"}
остальные файла обрабатывает нормально
В логах выдает следующее
Uncaught exception waRightsException:
1C (403)
## /home/httpd/vhosts/shop.eshipilova.com/httpdocs/wa-apps/shop/plugins/cml1c/lib/actions/frontend/shopCml1cPluginFrontend.controller.php(53)
#0 /home/httpd/vhosts/shop.eshipilova.com/httpdocs/wa-system/controller/waController.class.php(21): shopCml1cPluginFrontendController->execute()
#1 /home/httpd/vhosts/shop.eshipilova.com/httpdocs/wa-system/controller/waFrontController.class.php(227): waController->run(NULL)
#2 /home/httpd/vhosts/shop.eshipilova.com/httpdocs/wa-system/controller/waFrontController.class.php(162): waFrontController->runController(Object(shopCml1cPluginFrontendController), NULL)
#3 /home/httpd/vhosts/shop.eshipilova.com/httpdocs/wa-system/controller/waFrontController.class.php(58): waFrontController->execute('cml1c', 'frontend', NULL)
#4 /home/httpd/vhosts/shop.eshipilova.com/httpdocs/wa-system/waSystem.class.php(683): waFrontController->dispatch()
#5 /home/httpd/vhosts/shop.eshipilova.com/httpdocs/wa-system/waSystem.class.php(478): waSystem->dispatchFrontend('cml1c/52095c5f-...')
#6 /home/httpd/vhosts/shop.eshipilova.com/httpdocs/index.php(7): waSystem->dispatch()
#7 {main}
Не обновляет Цены и остатки по складам
В каком месте искать засаду?
До этого использовали старый модуль обмена в УПП( в принципе он сейчас и работает), но он не выдает остатки по складам.
30 комментариев
Покажите содержимое строки 53 в файле wa-apps/shop/plugins/cml1c/lib/actions/frontend/shopCml1cPluginFrontend.controller.php. Есть подозрение, что у вас установлена не самая последняя версия плагина 1С (CommerceML). Установите обновления для этого плагина, для магазина и для фреймворка Webasyst, если ещё установлено не всё.
Выглядит так
В Инсталлере написано "Установлена последняя версия «1С (CommerceML)»: 2.2.5.29"
Простите, я ошибся с плагином. С кодом всё в порядке. Есть предположение, что на странице настройки обмена данными с "1С" и в самой "1С" указаны разные URL скрипта синхронизации. Возможно, вы выключали/включали автоматический обмен, после чего адрес скрипта синхронизации в настройках плагина обновился, а в "1С" остался сохранённым старый адрес. Обновите его.
Ошибку дает только на одном файле, остальные проходят без ошибки.
Это у вас происходит именно при ручном импорте файла, полученного из "1С"?
нет, это у меня не ручной обмен
Вы проверили адрес скрипта синхронизации — он совпадает в обоих местах?
да, скрипт синхронизации точно совпадает.
На всякий случай предложу вам очистить кеш в Инсталлере. Иногда это помогает избавиться от странных проблем.
Если это не поможет и вам не удастся самостоятельно устранить проблему, предлагаю вам воспользоваться услугой расширенной диагностики, отправив заявку через Центр заказчика.
Михаил, спасибо за содействие.
тут еще один момент, 1с у меня выгружает XML с указанием ВерсияСхемы="2.10, может тут что то быть?
Если ориентироваться на лог ошибок, который вы привели, не срабатывает именно распознавание адреса скрипта синхронизации. Не думаю, что здесь имеет значение номер версии XML-документа.
Михаил, не подскажете насколько коректен такой вид xml файла для загрузки остатков?
Это нужно отправлять разработчикам для анализа. Вообще вы можете экспортировать товары в CommerceML-файл в бекенде магазина с помощью плагина "1С (CommerceML)", посмотреть структуру полученного файла и сравнить её с вашим примером.
Заодно сразу вопрос: а почему вы спрашиваете? Вы получили этот файл каким-то нестандартным способом? Каким именно?
Этот файл я получаю выгрузкой через установленный в УПП Модуль обмена "Интернет-магазин 1с" версии 6.0.3.4
Но ручная загрузка в бекенде магазина с помощью плагина "1С (CommerceML)" этого файла не приводит к нужному результату, остатки по складам не закачиваются. Если я меняю этот кусок на
, то остатки грузятся по складам корректно.
Есть подозрение что плагин некорректно отрабатывает xml файлы полученные из этой версии модуля обмена. Может есть информация с какой их этих версией модуля обмена ( http://1c.1c-bitrix.ru/ecommerce/download.php )плагин работает корректно?
В инструкции по настройке интеграции у нас написано:
Я думаю, что вам стоит ориентироваться на эту информацию как проверенную многими пользователями.
Сформулирую вопрос по другому, с какой версией модуля интеграции из представленных http://1c.1c-bitrix.ru/ecommerce/download.php?sect... корректно работает плагин "1С (CommerceML)"
Поддержку описания остатков по раздельным складам официально добавили в CML 2.08 ОстаткиПоСкладам/ОстатокПоСкладу
Но при этом в каждой отдельной реализации 1С встречается свой собственный вариант интерпретации многоскладовости. Плагин поддерживается несколько вариантов описания остатков и самый быстрый способ проверить - загрузить файл в режиме анализа в ручном режиме и убедиться, что плагин нашел в файле информацию о складах.
Владислав, плагин в ручном режиме информацию о складах нашел, но вот остатки видеть отказывается. остатки видит только тогда когда я ручками в xml файле заменяю ОстаткиПоСкладам/ОстатокПоСкладу на <КоличествоНаСкладах>/<КоличествоНаСкладе>
Пришлите свой вариант файла в службу поддержки — проверим и по возможности добавим поддержку вашего формата.
Владислав, подскажите, не знаете никого кто может "допилить" плагин под конкретную интерпретацию многоскладовости?
Лучше будет, если формируемый XML файл будет максимально соответствовать "стандарту" CommercML 2.08. Но, к сожалению, встречаются самостоятельные решения, которые пошли в массы (через профильные форумы или в виде реализаций от интеграторов-разработчиков) и работают только там, где используются одинаковые решения.
Лучше, если доработку под "диалект" CML сделаем мы — это сохранит возможность обновляться, а так же позволит использовать плагин тем, у кого используется аналогичный формат файла. Исключения — совсем вольная интерпретация стандарта и введение своих тегов и форматов.
Владислав, модуль обмена я беру на 1с-Битрикс http://1c.1c-bitrix.ru/ecommerce/download.php
Как я понимаю, то моя основная проблема в том, что я для синхронизации использую УПП (Управление Производственным предприятием), которую пользуют не многие ( в основном пользуют УТ). Под УТ плагин и заточен.
Стандартный модуль, который стоит у меня по умолчанию в УПП синхронизирует нормально, но мне в нем не хватает возможности выгрузки остатков по складам, поэтому танцы с бубном и происходят.
Я сейчас по совету Михаила Ушенина отправлю в поддержку файлы, которые выгружаются установленным модулем 1с. Если у вас получится адаптировать плагин под этот формат данных, то вероятнее всего вопрос синхронизации магазина и УПП будет решен. Я смотрел полее поздние модули обмена для УПП от Битрикса, как понимаю там принципиальных отличий в формате нет.
Сегодня после обновления плагина заработали остатки по складам.
Цены пока не загружаются.
Обновитесь еще раз :)
Что то не помогло
В режиме анализа импортировать общий файл import___8b2e02f3-ae5a-41a6-908d-b641cd2bfcc1.xml выбрать соответствие цен, а после prices*.xml. Так же в настройках обмена основная валюта плагина должна быть RUB и код валюты руб для вашего случая.
Все вроде проверил, не срабатывает :-(
остатки по складам грузит, цены не хочет
Несколько советов (после месяца разборок):
1) ИЗ 1с выгружайте ОДНИМ пакетом, разделение на пакеты не делайте
2) Настройте фильтр по складам в отборах, чтоб не выгружались какие то левые позиции
3) Там же, настройте фильтр по типам цен для выгрузки (Розничная и Закупочная)
4) Если что то не заливается - берете файл xml и пролистывая смотрите его на "вдруг косяк увижу" ))
5) Не помог п.4 - открываете phpmyadmin и уже там смотрите какие поля чем заполнены. В моем случае настроили выгрузку пакетов с 1с по 50 единиц и в итоге бОльшая часть товаров не имела категорий. Помог только запрос на MySQL, показавший, что только 50 позиций залились правильно. Дальше было уже всё ясно.
Всем успехов.
Сегодня обновился плагин. Все заработало.