Обмен 1 с Не принято

1

Дано

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 комментариев

  • +1
    Михаил Ушенин Михаил Ушенин Webasyst 20 января 2017 15:45 #

    Покажите содержимое строки 53 в файле wa-apps/shop/plugins/cml1c/lib/actions/frontend/shopCml1cPluginFrontend.controller.php. Есть подозрение, что у вас установлена не самая последняя версия плагина 1С (CommerceML). Установите обновления для этого плагина, для магазина и для фреймворка Webasyst, если ещё установлено не всё.

    • +1
      Михаил Михаил 20 января 2017 17:20 #

      Выглядит так

      47 /**
      48        * @var shopCml1cPlugin $plugin
      49         */
      50        $plugin = wa()->getPlugin('cml1c');
      51        $uuid = $plugin->uuid();
      52        if (empty($uuid) || (waRequest::param('hash') != $uuid)) {
      53            throw new waRightsException('1C');
      54        }
      55        $type = waRequest::get('type');
      
    • +1
      Михаил Михаил 20 января 2017 17:26 #

      В Инсталлере написано "Установлена последняя версия «1С (CommerceML)»: 2.2.5.29"

      • +1
        Михаил Ушенин Михаил Ушенин Webasyst 20 января 2017 17:40 #

        Простите, я ошибся с плагином. С кодом всё в порядке. Есть предположение, что на странице настройки обмена данными с "1С" и в самой "1С" указаны разные URL скрипта синхронизации. Возможно, вы выключали/включали автоматический обмен, после чего адрес скрипта синхронизации в настройках плагина обновился, а в "1С" остался сохранённым старый адрес. Обновите его.

        • +1
          Михаил Михаил 20 января 2017 17:45 #

          Ошибку дает только на одном файле, остальные проходят без ошибки.

          • +1
            Михаил Ушенин Михаил Ушенин Webasyst 20 января 2017 17:50 #

            Это у вас происходит именно при ручном импорте файла, полученного из "1С"?

            • +1
              Михаил Михаил 20 января 2017 17:53 #

              нет, это у меня не ручной обмен

              • +1
                Михаил Ушенин Михаил Ушенин Webasyst 20 января 2017 17:57 #

                Вы проверили адрес скрипта синхронизации — он совпадает в обоих местах?

                • +1
                  Михаил Михаил 20 января 2017 17:59 #

                  да, скрипт синхронизации точно совпадает.

                  • +1
                    Михаил Ушенин Михаил Ушенин Webasyst 20 января 2017 18:05 #

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

                    Если это не поможет и вам не удастся самостоятельно устранить проблему, предлагаю вам воспользоваться услугой расширенной диагностики, отправив заявку через Центр заказчика.

                    • +1
                      Михаил Михаил 20 января 2017 19:42 #

                      Михаил, спасибо за содействие.

                      тут еще один момент, 1с у меня выгружает XML с указанием ВерсияСхемы="2.10, может тут что то быть?

                      • +1
                        Михаил Ушенин Михаил Ушенин Webasyst 23 января 2017 10:28 #

                        Если ориентироваться на лог ошибок, который вы привели, не срабатывает именно распознавание адреса скрипта синхронизации. Не думаю, что здесь имеет значение номер версии XML-документа.

                        • +1
                          Михаил Михаил 24 января 2017 19:57 #

                          Михаил, не подскажете насколько коректен такой вид xml файла для загрузки остатков?


                          <ПакетПредложений СодержитТолькоИзменения="true">
                          		<Ид>a48b457d-604c-473e-9521-15726669405d#</Ид>
                          		<Наименование>Пакет предложений (Основной каталог товаров)</Наименование>
                          		<ИдКаталога>a48b457d-604c-473e-9521-15726669405d</ИдКаталога>
                          		<ИдКлассификатора>a48b457d-604c-473e-9521-15726669405d</ИдКлассификатора>
                          		<Предложения>
                          			<Предложение>
                          				<Ид>8fb183ce-f362-11e2-9417-001517a212ca#d677ff1d-6c40-11e2-9913-001517a212ca</Ид>
                          				<Остатки>
                          					<Остаток>
                          						<Склад>
                          							<Ид>bb019814-96c8-11e6-80dc-0cc47a05aa9b</Ид>
                          							<Количество>4</Количество>
                          						</Склад>
                          					</Остаток>
                          					<Остаток>
                          						<Склад>
                          							<Ид>17203cde-03da-11e2-a625-001517a212ca</Ид>
                          							<Количество>11</Количество>
                          						</Склад>
                          					</Остаток>
                          				</Остатки>
                          			</Предложение>
                          • +1
                            Михаил Ушенин Михаил Ушенин Webasyst 25 января 2017 10:19 #

                            Это нужно отправлять разработчикам для анализа. Вообще вы можете экспортировать товары в CommerceML-файл в бекенде магазина с помощью плагина "1С (CommerceML)", посмотреть структуру полученного файла и сравнить её с вашим примером.

                            Заодно сразу вопрос: а почему вы спрашиваете? Вы получили этот файл каким-то нестандартным способом? Каким именно?

                            • +1
                              Михаил Михаил 25 января 2017 10:56 #

                              Этот файл я получаю выгрузкой через установленный в УПП Модуль обмена "Интернет-магазин 1с" версии 6.0.3.4

                              Но ручная загрузка в бекенде магазина с помощью плагина "1С (CommerceML)" этого файла не приводит к нужному результату, остатки по складам не закачиваются. Если я меняю этот кусок на


                              <КоличествоНаСкладах> 
                              <КоличествоНаСкладе> 
                              <ИдСклада>bb019814-96c8-11e6-80dc-0cc47a05aa9b</ИдСклада> 
                              <Количество>10</Количество> 
                              </КоличествоНаСкладе> 
                              <КоличествоНаСкладе> 
                              <ИдСклада>17203cde-03da-11e2-a625-001517a212ca</ИдСклада> 
                              <Количество>15</Количество> 
                              </КоличествоНаСкладе> 
                              
                              </КоличествоНаСкладах> 

                              , то остатки грузятся по складам корректно.

                              Есть подозрение что плагин некорректно отрабатывает xml файлы полученные из этой версии модуля обмена. Может есть информация с какой их этих версией модуля обмена ( http://1c.1c-bitrix.ru/ecommerce/download.php )плагин работает корректно?

                            • +1

                              Поддержку описания остатков по раздельным складам официально добавили в CML 2.08 ОстаткиПоСкладам/ОстатокПоСкладу

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

                              • +1
                                Михаил Михаил 25 января 2017 18:15 #

                                Владислав, плагин в ручном режиме информацию о складах нашел, но вот остатки видеть отказывается. остатки видит только тогда когда я ручками в xml файле заменяю ОстаткиПоСкладам/ОстатокПоСкладу на <КоличествоНаСкладах>/<КоличествоНаСкладе>


                              • +1
                                Михаил Михаил 21 февраля 2017 20:42 #

                                Владислав, подскажите, не знаете никого кто может "допилить" плагин под конкретную интерпретацию многоскладовости?

                                • +1
                                  Владислав Горлов Владислав Горлов Webasyst 22 февраля 2017 14:41 #

                                  Лучше будет, если формируемый XML файл будет максимально соответствовать "стандарту" CommercML 2.08. Но, к сожалению, встречаются самостоятельные решения, которые пошли в массы (через профильные форумы или в виде реализаций от интеграторов-разработчиков) и работают только там, где используются одинаковые решения.

                                  Лучше, если доработку под "диалект" CML сделаем мы — это сохранит возможность обновляться, а так же позволит использовать плагин тем, у кого используется аналогичный формат файла. Исключения — совсем вольная интерпретация стандарта и введение своих тегов и форматов.

                                  • +1
                                    Михаил Михаил 22 февраля 2017 15:01 #

                                    Владислав, модуль обмена я беру на 1с-Битрикс http://1c.1c-bitrix.ru/ecommerce/download.php

                                    Как я понимаю, то моя основная проблема в том, что я для синхронизации использую УПП (Управление Производственным предприятием), которую пользуют не многие ( в основном пользуют УТ). Под УТ плагин и заточен.

                                    Стандартный модуль, который стоит у меня по умолчанию в УПП синхронизирует нормально, но мне в нем не хватает возможности выгрузки остатков по складам, поэтому танцы с бубном и происходят.

                                    Я сейчас по совету Михаила Ушенина отправлю в поддержку файлы, которые выгружаются установленным модулем 1с. Если у вас получится адаптировать плагин под этот формат данных, то вероятнее всего вопрос синхронизации магазина и УПП будет решен. Я смотрел полее поздние модули обмена для УПП от Битрикса, как понимаю там принципиальных отличий в формате нет.

                                    • +1
                                      Михаил Михаил 3 марта 2017 15:46 #

                                      Сегодня после обновления плагина заработали остатки по складам.

                                      Цены пока не загружаются.

                                    • +1
                                      Иван Иван 15 февраля 2017 13:46 #

                                      Несколько советов (после месяца разборок):

                                      1) ИЗ 1с выгружайте ОДНИМ пакетом, разделение на пакеты не делайте

                                      2) Настройте фильтр по складам в отборах, чтоб не выгружались какие то левые позиции

                                      3) Там же, настройте фильтр по типам цен для выгрузки (Розничная и Закупочная)

                                      4) Если что то не заливается - берете файл xml и пролистывая смотрите его на "вдруг косяк увижу" ))

                                      5) Не помог п.4 - открываете phpmyadmin и уже там смотрите какие поля чем заполнены. В моем случае настроили выгрузку пакетов с 1с по 50 единиц и в итоге бОльшая часть товаров не имела категорий. Помог только запрос на MySQL, показавший, что только 50 позиций залились правильно. Дальше было уже всё ясно.

                                      Всем успехов.

                                    • +1
                                      Михаил Михаил 16 марта 2017 17:58 #

                                      Сегодня обновился плагин. Все заработало.

                                      Добавить комментарий

                                      Чтобы добавить комментарий, зарегистрируйтесь или войдите