Ошибка при выполнение файловой операции exchange

Перешел по http://dev.super-master.pro/exchange/
Он у меня открыл документацию…

Все верно, там и есть документация.

Database Exception – yiidbException could not find driver

Для документации, там используется sqlite драйвер, проверь, подключен ли он у тебя, в любом случае, там тоже самое, что и в README, только структурированное

Ошибка при выполнении файловой операции ‘1c_exchange.php?type=catalog&mode=file&filename=v8_1A25_210.zip&’

Вот тут уже нужно смотреть в логи, что именно за ошибка

Привет! У заказчика в выходные слетели все разделы на сайте, а выгрузку они делали через 1с. Из всего, что было сделано до этого — очищена папка кэша.
Логи выдают ошибку

Обработка.ОбменССайтом.МодульОбъекта(322)}: Ошибка при вызове метода контекста (ОтправитьДляОбработки): Ошибка при выполнении файловой операции ‘export/exchange1c.php?type=catalog&mode=file&filename=import_files/b4/b49ad4f0-28a3-11e6-8869-0019214abfbe_b49ad4f3-28a3-11e6-8869-0019214abfbe.jpeg’: Ошибка работы с Интернет: неверный формат ответа шлюзу (502).

Как это можно решить?


  • Вопрос задан

    более трёх лет назад

  • 1136 просмотров

Пригласить эксперта

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

У заказчика в выходные слетели все разделы на сайте — как понимаю в настройке модуля на стороне Opencart выставлено сбрасывать категории и т.д. при загрузке из 1С. думаю поэтому категории «слетели», а новые не создались т.к. выгрузка не прошла корректно! по причине что сервер WWW выдает 502 и связь с 1С обрывается!
пробуйте грузить без фото из 1С для начала … а дальше по ситуации!

как вариант!
1) очистите всю папку с картинками по пути «корень_сайта/image/import_files» через FTP,
2) далее сделайте полную выгрузку из 1С — картинки по новой загрузятся.

Хотя тут индивидуально!


  • Показать ещё
    Загружается…

14 июн. 2023, в 01:02

5000 руб./за проект

13 июн. 2023, в 23:37

1000 руб./в час

13 июн. 2023, в 23:22

15000 руб./за проект

Минуточку внимания

Среда

Битрикс 12
1С: УТ Версия конфигурации 1С: 2.3.18.1 Управление торговлей для Украины

Ситуация

Обновили модуль интеграции до версии «1С 8.2 УТ 10.3.16.1 ред 2.9.16»

Пытаемся провести выгрузку заказов. Система считает, что все заказы нужно изменять.
Делает большой файл (порядка 18 Мб и пытается заслать его на сервер).
Выгрузка заканчивается с ошибкой 500.

Как диагностировал

1С-ка диагностирует ошибку так

Выгружено заказов: 1 726 Ошибка при вызове метода контекста (ОтправитьДляОбработки): Ошибка при выполнении файловой операции ‘bitrix/admin/1c_exchange.php?type=sale&mode=file&filename=v8_253F_66.zip’: Ошибка работы с Интернет: внутренняя ошибка сервера (500) Internal Server Error.
Произошла ошибка: . По причине: Произошла ошибка на стороне сервера. Не получен статус завершения операции

Залез в логи сервера
(на моем хостинге 1gb — они доступны по ftp в папке logs фалй с именем error…<дата>.log)
Ошибка из логов выглядит так

[warn] [client XX.XX.XX.XXX] mod_fcgid: read data timeout in 150 seconds
[Tue Jun 04 16:05:42 2013] [error] [client XX.XX.XX.XXX] Premature end of script headers: 1c_exchange.php

Что пробовал

(в моем случае не помогло, но может помочь в Вашем)

Настройки среды PHP

Если позволяет хостинг, попробуйте увеличить лимиты среды php

max_execution_time = 600
max_input_time = 600
memory_limit = 256M
post_max_size = 256M

Это настройки из файла php.ini

Настройки сервера 

В ходе общения со службой поддержки и гугления вышли на еще одни настройки.
Параметры такие:

FcgidIOTimeout/IPCCommTimeout

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

в логах-такое

[Thu Jun 06 18:38:57 2013] [warn] [client XX.XX.XX.XXX] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
[Thu Jun 06 18:38:57 2013] [error] [client XX.XX.XX.XXX]  Premature end of script headers: 1c_exchange.php

Потом я дал службе поддержки удаленный доступ к 1с, чтобы они сами смогли проинициировать выгрузку. Ребята из поддержки позанимались еще несколько дней и выдали неутешительный вердикт.

В конце концов служба поддержки хостинга дала такой ответ

Увы, в Вашем случае достигается лимит в 300 секунд процессорного времени на один процесс (т.е. процесс подгрузки на протяжении 5 минут создаёт процессорную нагрузку в 100%). Этот лимит у нас, к сожалению, обойти нельзя.
Вам нужно либо как-то «дробить» процесс импорта на части, чтобы он «помещался» в этот лимит, либо же переносить сайт на VDS — там таких лимитов нет.

На VDS переходить не хотелось.

Я переслал ответ поддержки хостинга в Битрикс — получил ответ, который и помог с выгрузкой заказов

Решение, которое помогло

Тут цитирую ответ службы поддержки Битрикса, после того как все возможные варианты решения со службой поддержки хостинга мы уже испробовали

В модуле обмена с сайтом существует режим принудительной полной выгрузки. Этот режим включается автоматически при любом изменении настройки обмена. В режиме принудительной полной выгрузки изменения заказов 1С игнорируются, происходит полная выгрузка заказов. Режим принудительной полной выгрузки отключается автоматически после первого удачного сеанса обмена. 

Режим принудительной полной выгрузки, при необходимости, может быть отключен вручную. Для этого необходимо через меню «Операции» открыть регистр сведений «Настройки обмена с сайтом с принудительной полной выгрузкой» и удалить в нем записи, относящиеся к используемой настройке обмена.


Действия на будущее

Попросил у Битрикса-1С — разбивать файлы заказов на части, как это делается с товарами

Благодарности

Спасибо большое специалистам службы поддержки хостинга http://1gb.ua за участие в решении вопроса

См.также

Если это решение оказалось не вашим случаем, есть еще одно описание проблемной ситуации при выгрузке и её решение
Решение еще одной проблемы с выгрузкой заказов с ошибкой «Не получен статус заврешения операции»

#1

Отправлено 05 Октябрь 2018 — 14:03

Здравствуйте. Я пытаюсь реализовать выгрузки списков товаров, их цен, свойств и количества на сайт.

Есть документация для обмена https://dev.1c-bitri…ata_2_site.php

На этапе
Выгрузка файлов на сайт 
1C отправляет запрос на сайт такого типа
http://site.com/1c_e…505.xml&sessid

И тут я застрял.

Пишу в Laravel.

Вот мой кусок скритпа обработчика запросов от 1С

public function exchange(Request $request)

    {

        $cookieName = config(‘session.cookie’);

        $cookieID = Session::getId();

        $csrf = csrf_token();

        $date = date(‘Y-m-d H:m:s’);

        if($request->get(‘type’) == ‘catalog’)

        {

            switch ($request->mode)

            {

                case ‘checkauth’:

                    $user = $_SERVER[‘PHP_AUTH_USER’];

                    $pass = $_SERVER[‘PHP_AUTH_PW’];

                    if(Auth::attempt([’email’ => $user, ‘password’ => $pass]))

                    {

                        return response(«successn$cookieNamen$cookieIDn$csrfn$date»)

                            ->header(«Content-Type» ,»text/plane; charset=UTF-8″);

                    };

                case ‘init’:

                    return response(«nonfile_limit=100000000000nsessid=$cookieIDnversion=3.1»)

                        ->header(«Content-Type» ,»text/plane; charset=UTF-8″);

                case ‘file’:

                    $filename = $request->get(‘filename’);

                    $file_content = file_get_contents($filename);

                    dump($file_content);

            }

        }

    }

В лога 1С есть 2 

{ОбщийМодуль.Б_ОбменССайтомСервер.Модуль(1363)}: Ошибка при вызове метода контекста (ОтправитьДляОбработки)

        HTTPОтвет = Соединение.ОтправитьДляОбработки(ПолноеИмяФайла, СокрЛП(ПараметрыЗапроса), ИмяФайлаОтвета, СокрЛП(Заголовки));

по причине:

Ошибка при выполнении файловой операции  ‘1c_exchange.php?type=catalog&mode=file&filename=import___b6d53766-7251-4935-b0ba-d9b1400196e6.xml&hvxlSKZQ7vAv2NfO7DHiO6TJvx0IUfkWH9C155vC’

по причине:

Ошибка работы с Интернет:  неизвестная ошибка http (419)

Page Expired

Произошла ошибка на стороне сервера. Не получен статус завершения операции. Файл не отправлен (C:UsersadminAppDataLocalTemp2 834 996 404webdata00000002import___b6d53766-7251-4935-b0ba-d9b1400196e6.xml).

Ответ сервера:

Page Expired

Я заглянул в логи запросов Apache и увидел, что запрос на передачу файл не GET а POST

127.0.0.1 [05/Oct/2018:13:47:29 +0600] «POST /1c_exchange.php?type=catalog&mode=file&filename=import___b6d53766-7251-4935-b0ba-d9b1400196e6.xml&eRKmew20qIq1SH4K8ph0MjQofYfFfDjvOb8znTWP HTTP/1.1» 419 1508 «-» «1C+Enterprise/8.3»

Собственно вопрос, как мне принять файлы если формат запроса GET а Apache видит POST?

Буду рад любому совету.

Сообщение отредактировал mad_nad: 28 Июль 2019 — 11:57

форматирование, убраны пустые строки

  • Наверх

#2

AlexMx

AlexMx

  • Человеки
  • Cообщений: 6 054
  • Регистрация: 11-01-2005
  • Предупреждения: 0

Отправлено 09 Октябрь 2018 — 20:07

попробуйте читать поток

file_get_contents('php://input');

Сообщение отредактировал AlexMx: 09 Октябрь 2018 — 20:09

  • Наверх

#3

mad_nad

Отправлено 09 Октябрь 2018 — 20:52

Спасибо! Разобрался. Кстати именно так, но один нюанс. Laravel всегда ожидает в POST запросах csrf_token, который 1С не передавал и выдавал мне ошибку. Осталось разобраться с кодом 1С и попробовать как-то передать токен
Еще раз спасибо.

  • Наверх

  • Назад
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • Вперёд
  • Страница 167 из 205  

Рекомендованные сообщения

Dmytro85

Collaborator

    • Поделиться

Только что, 26rus сказал:

в этом файле все исправления также содержат от gmp ????

Да.

Ссылка на комментарий
Поделиться на других сайтах

1

  • Ответы
    5,1k
  • Создано
    6 г
  • Последний ответ
    1 дн

Лучшие авторы в этой теме

  • IronMann

    244

  • Kirillove

    737

  • Dmytro85

    220

  • 26rus

    139

Опубликованные изображения

tim21701

Mentor

    • Поделиться

9 часов назад, Demon85 сказал:

Заказы находятся в файле orders.xml  . 

offers.xml  —  остатки и цены

Да, я не правильно выразился, именно про orders.xml и идёт речь.

Соединиться получилось) 
Лог выгрузки из 1С:

Выгружено товаров: 6 101
Выгружено картинок: 2 475
Выгружено файлов: 1
Выгружено предложений: 6 101
Получен расширенный статус успешного завершения сеанса
Ответ сервера:
Successfully import catalog 

Получен расширенный статус успешного завершения сеанса
Ответ сервера:
Successfully import catalog 

Получен расширенный статус успешного завершения сеанса
Ответ сервера:
Successfully import catalog 

Произошла ошибка на стороне сервера.
Обмен не выполнен
Ответ сервера:
ERROR: 3001

Выгрузка товаров завершена с ошибками!!!
Успешно получено и обработано документов: 1
Список обработанных документов: 
  Заказ покупателя БУЧВ-000001 от 01.12.2020 20:28:27
В том числе:
  создано новых: 1
Не выгружен ни один заказ.
Обмен заказами успешно завершен

На папку exchange1c права 755
Ну и естественно товары не обновились, как было до этого 6125 «Связей с товарами» (вкладка Информация в модуле) так и остались. 

А Заказ в 1С загрузился, ура товарищи!!!)))

Эм… Возможно ли изменить «аббревиатуру» у номера Заказа??? Этот БУЧВ-ХХХХХХ просто режет глаза)))
Ну и заодно текст в строке «Комментарии» у заказа. Сейчас там пишется номер заказа (как на сайте) и

два раза

домен зачем то. 
Как то написать для продавцов что это «Заказ из интернет-магазина«, или типа того…  Просто из общей массы всех Заказов в 1С он сейчас вообще никак не выделяется.

Ссылка на комментарий
Поделиться на других сайтах

1

26rus

Experienced

    • Поделиться

22 минуты назад, tim21701 сказал:

Да, я не правильно выразился, именно про orders.xml и идёт речь.

Соединиться получилось) 
Лог выгрузки из 1С:

Выгружено товаров: 6 101
Выгружено картинок: 2 475
Выгружено файлов: 1
Выгружено предложений: 6 101
Получен расширенный статус успешного завершения сеанса
Ответ сервера:
Successfully import catalog 

Получен расширенный статус успешного завершения сеанса
Ответ сервера:
Successfully import catalog 

Получен расширенный статус успешного завершения сеанса
Ответ сервера:
Successfully import catalog 

Произошла ошибка на стороне сервера.
Обмен не выполнен
Ответ сервера:
ERROR: 3001

Выгрузка товаров завершена с ошибками!!!
Успешно получено и обработано документов: 1
Список обработанных документов: 
  Заказ покупателя БУЧВ-000001 от 01.12.2020 20:28:27
В том числе:
  создано новых: 1
Не выгружен ни один заказ.
Обмен заказами успешно завершен

На папку exchange1c права 755
Ну и естественно товары не обновились, как было до этого 6125 «Связей с товарами» (вкладка Информация в модуле) так и остались. 

А Заказ в 1С загрузился, ура товарищи!!!)))

Эм… Возможно ли изменить «аббревиатуру» у номера Заказа??? Этот БУЧВ-ХХХХХХ просто режет глаза)))
Ну и заодно текст в строке «Комментарии» у заказа. Сейчас там пишется номер заказа (как на сайте) и

два раза

домен зачем то. 
Как то написать для продавцов что это «Заказ из интернет-магазина«, или типа того…  Просто из общей массы всех Заказов в 1С он сейчас вообще никак не выделяется.

Как решил , делись :) чтобы другие знали )

Ссылка на комментарий
Поделиться на других сайтах

tim21701

Mentor

    • Поделиться

1 час назад, 26rus сказал:

Как решил


Решил — что именно? Пока ничего не решилось, только соединиться удалось и загрузить в 1С Заказы.
Полная выгрузка сваливается в ошибку 

3001 - Файл не был загружен на сайт, проверьте права на запись в папке /system/storage/cache/exchange1c.

Спойлер

error_3001.png.442ca7caa52291ccd15f8b2e0ce96869.png


Хотя с правами всё Ок.
И файлы там появляются (см. скрин), но при выгрузке из 1С третьей части архива — ERROR: 3001
Хз что ему не нравится. :wacko:
 

Спойлер

uploads_zips.png.b8f50eb0166e7b6c9485deb1f2876d66.png

Ссылка на комментарий
Поделиться на других сайтах

1

Dmytro85

Collaborator

    • Поделиться

42 минуты назад, tim21701 сказал:

И файлы там появляются (см. скрин), но при выгрузке из 1С третьей части архива — ERROR: 3001

Может поможет.  

И ставь Максимальный размер файла: 50M

Ну а вообще , попробуй отключи выгрузку архивами и очисти папку . 

system/storage/cache/exchange1c.


Изменено 2 декабря 2020 пользователем Demon85

Ссылка на комментарий
Поделиться на других сайтах

1

tim21701

Mentor

    • Поделиться

2 часа назад, Demon85 сказал:

И ставь Максимальный размер файла: 50M


Уже пробовал, и в настройках модуля и в .htaccess
Всё равно 3001:
 

Спойлер

Выгружено товаров: 6 101
Выгружено картинок: 2 475
Выгружено файлов: 1
Выгружено предложений: 6 101
Получен расширенный статус успешного завершения сеанса
Ответ сервера:
Successfully import catalog 

Получен расширенный статус успешного завершения сеанса
Ответ сервера:
Successfully import catalog 

Получен расширенный статус успешного завершения сеанса
Ответ сервера:
Successfully import catalog 

Получен расширенный статус успешного завершения сеанса
Ответ сервера:
Successfully import catalog 

Получен расширенный статус успешного завершения сеанса
Ответ сервера:
Successfully import catalog 

Получен расширенный статус успешного завершения сеанса
Ответ сервера:
Successfully import catalog 

Получен расширенный статус успешного завершения сеанса
Ответ сервера:
Successfully import catalog 

Получен расширенный статус успешного завершения сеанса
Ответ сервера:
Successfully import catalog 

Произошла ошибка на стороне сервера.
Обмен не выполнен
Ответ сервера:
ERROR: 3001

Выгрузка товаров завершена с ошибками!!!
Выгружено заказов: 1
Получен расширенный статус успешного завершения сеанса
Ответ сервера:
modeFileSale(): Successfully processed orders

Обмен заказами успешно завершен

2 часа назад, Demon85 сказал:


Уж не знаю чем предложенная строка:

$filesize = file_put_contents($uplod_file, $data, LOCK_EX);

отличается от:

$filesize = file_put_contents($upload_file, $data, LOCK_EX);

кроме, разве что правильно написанного слова upload (так как FILE_APPEND в ней уже нет)
но результата это не дало никакого. (естественно что чистил cache, обновлял модификаторы, …)

Изменения только в логах выгрузки))

Спойлер

Выгружено товаров: 6 101
Выгружено картинок: 2 475
Выгружено файлов: 1
Выгружено предложений: 6 101
Произошла ошибка на стороне сервера. Не получен статус завершения операции. 
Файл не отправлен (C:UsersАдминистраторAppDataLocalTempv8_BCF5_363c.zip.1).
Обмен не выполнен
Ответ сервера:
modeFile(): Error create filesuccess
Successfully import catalog 

Выгрузка товаров завершена с ошибками!!!
Выгружено заказов: 1
Произошла ошибка на стороне сервера. Не получен статус завершения операции. 
Файл не отправлен (C:UsersАдминистраторAppDataLocalTempv8_BCF5_3643.zip).
Обмен не выполнен
Ответ сервера:
modeFile(): Error create filefailure
modeFileSale(): no XML files

Обмен заказами завершен с ошибками!!!


Есть еще какие нибудь идеи как побороть ERROR: 3001?

Ссылка на комментарий
Поделиться на других сайтах

1

tim21701

Mentor

    • Поделиться

В общем, выгрузка никак не хочет работать.

Если в 1С выбрать «Полная выгрузка» — получаю ERROR: 3001
Если выбираю «Только изменения» — то вообще 502 Bad Gateway.

 
лог ошибки:

Спойлер

Выгружено товаров: 6 101
Выгружено картинок: 2 475
Выгружено файлов: 1
Выгружено предложений: 6 101

Получен расширенный статус успешного завершения сеанса
Ответ сервера:
Successfully import catalog 

{Обработка.ОбменССайтом.МодульОбъекта(322)}: Ошибка при вызове метода контекста (ОтправитьДляОбработки): Ошибка при выполнении файловой операции  'export/exchange1c.php?type=catalog&mode=file&filename=import_files/99/99d3387e-4a97-11e6-b9b8-9062440d3c5e_3b47aa85-94dc-11ea-ae5f-bc5ff48596dc.jpeg': Ошибка работы с Интернет:  неверный формат ответа шлюзу (502). <html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx</center>
</body>
</html>
 : Ошибка работы с Интернет:  неверный формат ответа шлюзу (502) 
Произошла ошибка: . По причине: 

Произошла ошибка на стороне сервера. Не получен статус завершения операции. Файл не отправлен (C:UsersАдминистраторAppDataLocalTemp1cbitriximport_files9999d3387e-4a97-11e6-b9b8-9062440d3c5e_3b47aa85-94dc-11ea-ae5f-bc5ff48596dc.jpeg).
Обмен не выполнен
Ответ сервера:
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx</center>
</body>
</html>

Выгрузка товаров завершена с ошибками!!!
Выгружено заказов: 1
Произошла ошибка на стороне сервера. Файл не отправлен (C:UsersАдминистраторAppDataLocalTemp1cbitrix1cbitrix-8a93ccf2-b85c-4d55-bb5a-686401b217c3.xml).
Обмен не выполнен
Ответ сервера:
modeFileSale(): no XML files

Обмен заказами завершен с ошибками!!!

при этом файл 1cbitrix-8a93ccf2-b85c-4d55-bb5a-686401b217c3.xml загружается и остаётся в exchange1c
(в нём 1 Заказ покупателя, который ранее был успешно выгружен из ИМ)

 
Пробовал «Загружать файлы в ZIP:» и Да и Нет — без разницы.
В файле admin/controller/extension/module/exchange1c.php прописана строка:

$filesize = file_put_contents($upload_file, $data, LOCK_EX);

Ограничения php_value upload_max_filesize 50M и в .htaccess и в настройках модуля уже пробовал.

На всё попытки — 3001 или 502 Bad Gateway

.
Но если с 502 еще понятно… то с 3001 хрень какая то. 0755 на exchange1c есть, даже полные выдавал — без разницы.

Выгрузка корректно работает только в ручном режиме: /export/exchange1c.php?module=cronImport
Как подружить «прямую связь» 1С с ИМ — не понятно ((:sad:

Ребят, помогите кто нибудь разобраться :cry:

Ссылка на комментарий
Поделиться на других сайтах

1

AlektroNik

Experienced

    • Поделиться

3 часа назад, tim21701 сказал:

В общем, выгрузка никак не хочет работать.

Если в 1С выбрать «Полная выгрузка» — получаю ERROR: 3001
Если выбираю «Только изменения» — то вообще 502 Bad Gateway.

 
лог ошибки:

  Показать контент

Выгружено товаров: 6 101
Выгружено картинок: 2 475
Выгружено файлов: 1
Выгружено предложений: 6 101

Получен расширенный статус успешного завершения сеанса
Ответ сервера:
Successfully import catalog 

{Обработка.ОбменССайтом.МодульОбъекта(322)}: Ошибка при вызове метода контекста (ОтправитьДляОбработки): Ошибка при выполнении файловой операции  'export/exchange1c.php?type=catalog&mode=file&filename=import_files/99/99d3387e-4a97-11e6-b9b8-9062440d3c5e_3b47aa85-94dc-11ea-ae5f-bc5ff48596dc.jpeg': Ошибка работы с Интернет:  неверный формат ответа шлюзу (502). <html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx</center>
</body>
</html>
 : Ошибка работы с Интернет:  неверный формат ответа шлюзу (502) 
Произошла ошибка: . По причине: 

Произошла ошибка на стороне сервера. Не получен статус завершения операции. Файл не отправлен (C:UsersАдминистраторAppDataLocalTemp1cbitriximport_files9999d3387e-4a97-11e6-b9b8-9062440d3c5e_3b47aa85-94dc-11ea-ae5f-bc5ff48596dc.jpeg).
Обмен не выполнен
Ответ сервера:
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx</center>
</body>
</html>

Выгрузка товаров завершена с ошибками!!!
Выгружено заказов: 1
Произошла ошибка на стороне сервера. Файл не отправлен (C:UsersАдминистраторAppDataLocalTemp1cbitrix1cbitrix-8a93ccf2-b85c-4d55-bb5a-686401b217c3.xml).
Обмен не выполнен
Ответ сервера:
modeFileSale(): no XML files

Обмен заказами завершен с ошибками!!!

при этом файл 1cbitrix-8a93ccf2-b85c-4d55-bb5a-686401b217c3.xml загружается и остаётся в exchange1c
(в нём 1 Заказ покупателя, который ранее был успешно выгружен из ИМ)

 
Пробовал «Загружать файлы в ZIP:» и Да и Нет — без разницы.
В файле admin/controller/extension/module/exchange1c.php прописана строка:

$filesize = file_put_contents($upload_file, $data, LOCK_EX);

Ограничения php_value upload_max_filesize 50M и в .htaccess и в настройках модуля уже пробовал.

На всё попытки — 3001 или 502 Bad Gateway

.
Но если с 502 еще понятно… то с 3001 хрень какая то. 0755 на exchange1c есть, даже полные выдавал — без разницы.

Выгрузка корректно работает только в ручном режиме: /export/exchange1c.php?module=cronImport
Как подружить «прямую связь» 1С с ИМ — не понятно ((:sad:

Ребят, помогите кто нибудь разобраться :cry:

Попробуйте настроить выгрузку частями.

Скорее всего у Вас скрипт падает из-за слишклм долгих партий импорта.

Ссылка на комментарий
Поделиться на других сайтах

Dmytro85

Collaborator

    • Поделиться

10 часов назад, tim21701 сказал:

Уж не знаю чем предложенная строка:

$filesize = file_put_contents($uplod_file, $data, LOCK_EX);

отличается от:

В файле admin/controller/extension/module/exchange1c.php

$filesize = file_put_contents($upload_file, $data, FILE_APPEND | LOCK_EX);

Ссылка на комментарий
Поделиться на других сайтах

1

Dmytro85

Collaborator

    • Поделиться

Если загружать архивами частями , то вам нужна именно такая функция . Так как она склеивает все части архива в один . 

Ссылка на комментарий
Поделиться на других сайтах

1

Dmytro85

Collaborator

    • Поделиться

19 часов назад, tim21701 сказал:

И почему на вашем скрине эти данные в файле проставляются а у меня нет?

Потому-что у меня файл был выгружен из самой 1С и там правильная структура XML CommerceML  .  А ваш файл вы выгрузили в ручную с сайта и как я вижу там нарушена структура XML CommerceML . Я раньше не пользовался ручной выгрузкой заказов и не замечал , что файл формируется не правильно (хотя автор давно писал ,что файл валидный). Наверное проще добиться автоматической выгрузки.


Изменено 3 декабря 2020 пользователем Demon85

Ссылка на комментарий
Поделиться на других сайтах

1

tim21701

Mentor

    • Поделиться

@Demon85 Я вас понял, спасибо.
Но, у меня всё равно при выгрузке ошибка 3001
и как от неё избавится непонятно…

Ссылка на комментарий
Поделиться на других сайтах

1

Dmytro85

Collaborator

    • Поделиться

16 часов назад, tim21701 сказал:

Но, у меня всё равно при выгрузке ошибка 3001
и как от неё избавится непонятно…

Значит , как я помню у вас чистый ocStore 2.3.0.2.3 и архив от @Gmp  версия 1.6.4.8 ? 

Тогда давайте посмотрим на лог отладки от модуля обмена . 

Установите настройки для отладки как на скрине ниже и сделайте синхронизацию из 1С с Opencart . После ошибки 3001 скиньте этот лог файл сюда . Он будет лежать в systemstoragelogs .


Изменено 4 декабря 2020 пользователем Demon85

Ссылка на комментарий
Поделиться на других сайтах

1

tim21701

Mentor

    • Поделиться

10 часов назад, Demon85 сказал:

как я помню у вас

Всё верно. установлен ocStore 2.3.0.2.3, архив залит 1.6.4.8 от @Gmp.

В 1С запускаю выгрузку, формируется архив и отправляется на сервер:
upload_max_filesize установлено 500M — чтоб на части не разбивал.

Спойлер

950927955_exchange1c.jpg.bbaaa12fa9d836ef045a5cfab9650445.jpg


На сервере архив появляется
как собственно и папка exchange1c если её не было (если чистишь cache она удаляется)
 

Спойлер

2045295410_exchange1c.jpg.c826ccb504ddc05be67290f8fa9ac3b3.jpg


Но судя по всему, ошибка возникает при распаковке файла:
Какая временная папка используется для распаковки, эта же — exchange1c? Тогда совсем не понятно
 

Спойлер

29016629_3001.jpg.1b93de09568e38a5cd480e83d08f75ff.jpg


Если выгрузка частями — происходит тоже самое, ошибка на последнем архиве:
 

Спойлер

Выгружено товаров: 6 105
Выгружено картинок: 2 543
Выгружено файлов: 3
Выгружено предложений: 6 105
Получен расширенный статус успешного завершения сеанса
Ответ сервера:
Successfully import catalog 

Получен расширенный статус успешного завершения сеанса
Ответ сервера:
Successfully import catalog 

Получен расширенный статус успешного завершения сеанса
Ответ сервера:
Successfully import catalog 

Произошла ошибка на стороне сервера.
Обмен не выполнен
Ответ сервера:
ERROR: 3001

Выгрузка товаров завершена с ошибками!!!

10 часов назад, Demon85 сказал:

После ошибки 3001 скиньте этот лог

Ссылка на комментарий
Поделиться на других сайтах

1

abumuxsin

Enthusiast

    • Поделиться

В 02.12.2020 в 16:28, Demon85 сказал:

Думаю лучше скачайте и замените старые файлы на эти . Это последняя не официальная сборка от @Gmp версия 1.6.4.8 . Много исправлений .

Сборка от @Gmp

Потом можно дальше с вами разбираться .

обновил

без изменений

Ссылка на комментарий
Поделиться на других сайтах

tim21701

Mentor

    • Поделиться

Еще заметил такую «особенность» в модуле, или даже глюк — не знаю.
В общем, все товары которые загружаются с сайта обязательно должны быть расположены в какой нибудь категории. Если есть хоть один товар, который не привязан ни к одной из них (в корне магазина) — то генерация ЧПУ для него не работает.
И вот тут начинается самое интересное… При выгрузке из 1С, новые товары (которых ранее не было в базе) сваливаются именно в корень — они почему то не попадают в категорию — как в 1С. И естественно для всех этих «новинок» ЧПУ не генерируется.
А если зайти в модуль и нажать «Сформировать SEO» — получаем ошибку duplicate entry, так как первая попавшаяся группа (по id) переименовывается в один из новых товаров. Полный трындец… ))

no_meta.png.cb79826d74b8fac48e4c4bbafa279389.png

Так и не могу понять — как сделать чтоб новый товар (которого раньше не было в базе) попадал в свою категорию и при этом не ломал структуру категорий созданных в ИМ.

В настройках модуля на вкладке Товар > Основные:

Не изменять категории товара - Да

На вкладке Категории:

Не загружать категории: Нет
Не создавать новые категории: Да

Делаю выгрузку из 1С и на сайте появляется точная копия категорий. Да какого… :evil:
Пробовал по разному все три варианта — либо новый товар появляется без категорий, либо структура категорий становится как в 1С

Может кто подскажет решение? Или это тоже в модуле не работает?

Ссылка на комментарий
Поделиться на других сайтах

1

tim21701

Mentor

    • Поделиться

Отвечу на вопрос сам себе
 

В 04.12.2020 в 22:01, tim21701 сказал:

Какая временная папка используется для распаковки


Файл с сервера error.log:
 

Спойлер

2020/12/06 04:45:28 [warn] 14202#14202: 
*4699767 a client request body is buffered to a temporary file /tmp/nginx_body_temp/0000091652, request: 
"POST /export/exchange1c.php?type=catalog&mode=file&filename=v8_120C_5bd9.zip HTTP/1.1"
2020/12/06 04:45:41 [warn] 14202#14202: 
*4699767 a client request body is buffered to a temporary file /tmp/nginx_body_temp/0000091657, request: 
"POST /export/exchange1c.php?type=catalog&mode=file&filename=v8_120C_5bd9.zip HTTP/1.1"
2020/12/06 04:45:54 [warn] 14202#14202: 
*4699767 a client request body is buffered to a temporary file /tmp/nginx_body_temp/0000091664, request: 
"POST /export/exchange1c.php?type=catalog&mode=file&filename=v8_120C_5bd9.zip HTTP/1.1"

v8_120C_5bd9.jpg.d4fddeee7c88e39e453adadd30b6bacc.jpg

В общем, от ошибки 3001 никак не избавиться(

Ссылка на комментарий
Поделиться на других сайтах

1

tim21701

Mentor

    • Поделиться

С ошибкой 3001 разобрался. :-o 
Прописал в php.ini свою временную папку (upload_tmp_dir =) и всё заработало.

Осталась только одна проблема,

как сделать чтоб новый товар привязывался к своей категории

(не ломая при этом структуру каталогов). Сейчас весь новый товар тупо сваливается в корень (без привязки к своей категории указанной в 1С).

Подскажите решение, плиз!

Ссылка на комментарий
Поделиться на других сайтах

1

Dmytro85

Collaborator

    • Поделиться

5 часов назад, tim21701 сказал:

Прописал в php.ini свою временную папку (upload_tmp_dir =) и всё заработало.

Странные у вас дела . 

В 05.12.2020 в 20:02, tim21701 сказал:

В настройках модуля на вкладке Товар > Основные:

Не изменять категории товара - Да

У меня стоит — Нет 

Ссылка на комментарий
Поделиться на других сайтах

1

Dmytro85

Collaborator

    • Поделиться

В 05.12.2020 в 20:02, tim21701 сказал:

Пробовал по разному все три варианта — либо новый товар появляется без категорий, либо структура категорий становится как в 1С

Вы хотите разную структуру категорий ? Не так как в 1С ? У меня при первой выгрузке из 1С создаётся категория и в неё уже падает товар . 

Ссылка на комментарий
Поделиться на других сайтах

1

Dmytro85

Collaborator

    • Поделиться
Ссылка на комментарий
Поделиться на других сайтах

1

tim21701

Mentor

    • Поделиться

6 часов назад, Demon85 сказал:

Вы хотите разную структуру категорий ?

Всё верно.
В 1С структура каталогов сделана для удобства продавцов, плюс всякие пометки в названиях категорий. Если в таком виде её выгрузить на сайт — это будет полный ахтунг… Поэтому всё поменял, раскидал товар по понятным названиям, типа:
Электрика,
Сантехника,
Бытовая техника,
Всё для дома,
Сад и огород,

и т.д……….
Но если пришел новый товар которого раньше никогда не было, то они все без привязки к категориям.
Пробовал поменять эти галочки — всё тоже самое… Либо новый товар без категорий — либо ломается вся структура и становится как в 1С :cry:

Как это побороть?
Неужели теперь придётся каждый раз после выгрузки «нового» товара — заходить в админку и раскидывать их по своим категориям??? Ну это ж бред(((

Ссылка на комментарий
Поделиться на других сайтах

1

kosta686

Apprentice

    • Поделиться

53 минуты назад, tim21701 сказал:


Всё верно.
В 1С структура каталогов сделана для удобства продавцов, плюс всякие пометки в названиях категорий. Если в таком виде её выгрузить на сайт — это будет полный ахтунг… Поэтому всё поменял, раскидал товар по понятным названиям, типа:
 

Здравствуйте! А где поменяли? Чтобы структура сохранялась, ее нужно настраивать в 1С:

1. Создать нужную иерархию в справочнике «Вид номенклатуры» — аналогично необходимой структуре каталога/категорий на сайте.

2. Задать всем товарам, подлежащим выгрузке на сайт «Вид номенклатуры» в соответствии со значением нужной категории.

3. В табличной части самого обмена — на вкладке «Выгрузка товаров» — Таблица каталогов (соответствие видов номенклатуры каталогам на сайте) — простроить соответствующую структуру категорий сайта первого уровня-что-то вроде таблицы соответствия.

И тогда новый товар будет попадать в свою категорию/подкатегорию.

И обновление каталога желательно делать по ИД (GUID).

Ссылка на комментарий
Поделиться на других сайтах

tim21701

Mentor

    • Поделиться

1 час назад, kosta686 сказал:

1. Создать нужную иерархию в справочнике «Вид номенклатуры» — аналогично необходимой структуре каталога/категорий на сайте.

Это у вас юмор такой?) 
База с 2008 года, там товаров столько — что для их сортировки нужно отдельного пару человек выделять, при чем сразу — месяца на два))) 

В более поздних версиях модуля обмена у 1С уже реализовали «Дерево групп» для выгрузки:

Спойлер

catalog2.jpg.5f7c97671a8aff7dab8ab013f1a075ff.jpg


Где можно свои Категории указать — какие выгружать и как именно:
 

Но моя версия 1С 8.3 (УТ 10.3) на столько древняя (и модуль обмена 2.1.7), что там этого просто нет.
Поэтому я на сайте сделал свои Категории, потому что в 1С с ними полный бардак…

Есть в планах с 1-го января обноситься на 11 версию, где всё это (на фотках выше) доступно уже из коробки. 
Но сейчас то что делать, до Нового года весь новый товар ручками раскидывать???)) :-D

Очень странно что автор не подумал об этом и не реализовал подобное,
особенно если учесть, что модуль он выложил почти 5 лет назад.

Сегодня от поставщика товар пришел, 32 новых наименования! После выгрузки, минут 40 сидел их раскидывал по категориям… ((

Ссылка на комментарий
Поделиться на других сайтах

1

Dmytro85

Collaborator

    • Поделиться

17 часов назад, tim21701 сказал:

Но если пришел новый товар которого раньше никогда не было, то они все без привязки к категориям.

Не понимаю как вы себе представляете такую реализацию при выгрузке из 1С . Как модулю на сайте понимать какой товар к какой категории привязывать, если структура была изменена . 

15 часов назад, tim21701 сказал:

Очень странно что автор не подумал об этом и не реализовал подобное,

Автор много о чём подумал , но реализовать ВСЁ просто не хватило не сил не времени . 

Ссылка на комментарий
Поделиться на других сайтах

1

  • 1 г

    dinox изменил заголовок на Модуль обмена для opencart v2.3 с учетной системой по стандарту CommerceML [Поддержка]

  • Назад
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • Вперёд
  • Страница 167 из 205  

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Понравилась статья? Поделить с друзьями:
  • Ошибка при выполнении запроса post к ресурсу e1cib dlist
  • Ошибка при выполнение модуля завершить
  • Ошибка при выполнении запроса get к ресурсу e1cib logform
  • Ошибка при выполнении запроса post к ресурсу e1cib call
  • Ошибка при выполнение компонента help