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

Ошибка при синхронизации с 1C

21.08.2017, 15:04
fishtag
Fishtag

Зарегистрирован:
1970-01-01
Сообщений: 3

Ребят, совсем отчаялись, помогите кто знает. Суть проблемы такова:
Имеем интернет магазин на версии 5.6 E-commerce. Настроена и синхронизация с 1С и модуль оплаты и в общем-то все работает как задумано, но есть проблема. Не проходит импорт из 1С. Проблема тянется с 2015 года, прям с момента разработки сайта. Ранее обращались в ТП, ничего не разрешилось. Как все происходит...
В админке настроен источник, в 1С настроено все остальное. Все первоначальные настройки были сделаны очень давно и все было замечательно сначала. Товары выгружались из 1С и все данные на сайте обновлялись без проблем. Спустя какое-то время после сдачи сайта заказчику он обратился с сообщением, что обмен данными с сайтом не работает. Копали, искали причину, ничего не нашли, ошибок в логах нет, файлы из 1С все замечательно выгружаются на сайт и лежат во временной директории /netcat/tmp/ Почистим логи, поизучаем проблему, посоветуем заказчику более качественный интернет канал найти, он запустит синхронизацию - все хорошо. Успокоится, через неделю снова сообщает о подобной проблеме. В общем, успокоим его, отпишем в ТП с вопросами, проведем ручной импорт и все замечательно. И как-то позабыли про это, прошел год, заказчик снова нам сообщает об этой проблеме.
Т.е., то автоматический импорт работает, то не работает. Логи такие:
Файл /netcat/tmp/1c8.log - последние строки
2017-08-21 10:39:56 - [catalog] save file "catalog-599a8d34dc12c-import_files/fd/fda6b561-3716-11e4-84c1-d02788776ffb_fda6b564-3716-11e4-84c1-d02788776ffb.jpeg"
2017-08-21 10:39:56 - [catalog] 11370 saved
2017-08-21 10:39:56 - [catalog] save file "catalog-599a8d34dc12c-import_files/fd/fda6b565-3716-11e4-84c1-d02788776ffb_fda6b567-3716-11e4-84c1-d02788776ffb.jpeg"
2017-08-21 10:39:56 - [catalog] 16571 saved
2017-08-21 10:39:57 - [catalog] save file "catalog-599a8d34dc12c-import_files/ff/ff59eaa6-a00e-11e1-97fa-d02788776ffb_3c7cff90-1e68-11e2-9cd3-d02788776ffb.jpeg"
2017-08-21 10:39:57 - [catalog] 44362 saved
2017-08-21 10:39:57 - [catalog] save file "catalog-599a8d34dc12c-import_files/ff/ff59eaa8-a00e-11e1-97fa-d02788776ffb_db556f5c-2d57-11e2-9a3e-d02788776ffb.jpeg"
2017-08-21 10:39:57 - [catalog] 97263 saved
2017-08-21 10:39:57 - [catalog] process "import.xml"
2017-08-21 10:39:57 - [catalog] classifier "a51b17bf-d697-48e5-b533-9f92af1f3d17"
2017-08-21 10:39:57 - [catalog] catalog "a51b17bf-d697-48e5-b533-9f92af1f3d17"
2017-08-21 10:39:57 - [catalog] source "1C"
Файл access.log - логи в это же время:
91.107.96.146 - z_netcat [21/Aug/2017:10:39:55 +0300] "POST /netcat/modules/netshop/import/10/1c8.php?type=catalog&mode=file&filename=import_files/fd/fda6b54a-3716-11e4-84c1-d02788776ffb_fda6b54d-3716-11e4-84c1-d02788776ffb.jpeg HTTP/1.1" 200 7 "-" "1C+Enterprise/8.2"
91.107.96.146 - z_netcat [21/Aug/2017:10:39:56 +0300] "POST /netcat/modules/netshop/import/10/1c8.php?type=catalog&mode=file&filename=import_files/fd/fda6b55d-3716-11e4-84c1-d02788776ffb_fda6b55f-3716-11e4-84c1-d02788776ffb.jpeg HTTP/1.1" 200 7 "-" "1C+Enterprise/8.2"
91.107.96.146 - z_netcat [21/Aug/2017:10:39:56 +0300] "POST /netcat/modules/netshop/import/10/1c8.php?type=catalog&mode=file&filename=import_files/fd/fda6b561-3716-11e4-84c1-d02788776ffb_fda6b564-3716-11e4-84c1-d02788776ffb.jpeg HTTP/1.1" 200 7 "-" "1C+Enterprise/8.2"
91.107.96.146 - z_netcat [21/Aug/2017:10:39:56 +0300] "POST /netcat/modules/netshop/import/10/1c8.php?type=catalog&mode=file&filename=import_files/fd/fda6b565-3716-11e4-84c1-d02788776ffb_fda6b567-3716-11e4-84c1-d02788776ffb.jpeg HTTP/1.1" 200 7 "-" "1C+Enterprise/8.2"
91.107.96.146 - z_netcat [21/Aug/2017:10:39:56 +0300] "POST /netcat/modules/netshop/import/10/1c8.php?type=catalog&mode=file&filename=import_files/ff/ff59eaa6-a00e-11e1-97fa-d02788776ffb_3c7cff90-1e68-11e2-9cd3-d02788776ffb.jpeg HTTP/1.1" 200 7 "-" "1C+Enterprise/8.2"
91.107.96.146 - z_netcat [21/Aug/2017:10:39:57 +0300] "POST /netcat/modules/netshop/import/10/1c8.php?type=catalog&mode=file&filename=import_files/ff/ff59eaa8-a00e-11e1-97fa-d02788776ffb_db556f5c-2d57-11e2-9a3e-d02788776ffb.jpeg HTTP/1.1" 200 7 "-" "1C+Enterprise/8.2"
91.107.96.146 - z_netcat [21/Aug/2017:10:39:57 +0300] "GET /netcat/modules/netshop/import/10/1c8.php?type=catalog&mode=import&filename=import.xml HTTP/1.1" 200 - "-" "1C+Enterprise/8.2"

В логе ошибок все пусто, все замечательно. Свиду, загрузка всех файлов на сайт происходи успешно и запускается импортирование файла import.xml, а вот offers.xml никак не стартует. Ответа с сайта никакого не приходит и в итоге в 1С валится ошибка: http://take.ms/1jX3v
Почему offers.xml не стартует, неизвестно. Может кто-нибудь сталкивался с подобной проблемой или у кого-то имеются предположения что может быть?
21.08.2017, 17:33
Руслан Густокашин
Студия Вэлпис

Зарегистрирован:
2012-02-06
Сообщений: 962

Проблема знакомая, сталкивались с подобным.
Предположений два:
1.Поскольку у вас netcat версии 5.6, в нем есть ошибка, из-за которой при определенных ситуациях портится таблица Netshop_ImportSources - слетает идентификатор источника. Но в этом случае в логах должна была быть ошибка про неизвестный источник. Когда у вас произойдет сбой - посмотрите, прописан ли в этой таблице идентификатор? Он должен быть двойной, через пробел.
2. Также в этой версии нетката была ошибка с ценовыми полями и их маппингом. В Netshop_ImportMap либо задваивалась, либо исчезала привязка ценового поля (Price) к соответствующему полю в offers-файле. Система не находила ни одной привязки и поэтому даже не пыталась обработать offers.
Когда добьетесь сбоя, сделайте такой запрос: select * from Netshop_ImportMap where type="price" и посмотрите, отобразится ли привязка.
Если первое или второе подтвердится, то обновляйте систему до свежей версии netcat, там эти баги 1С уже исправлены.
Но бывают еще экзотические баги, конечно: нехватка в настройках PHP переменной max_input_vars (пользователь пытается через админку привязать новые поля при ручном импорте, сохраняет неполный POST-массив, и все портится) и некорректно настроенные параметры типа upload_max_filesize и т.п.
Ну и еще один момент - если у вас виртуальный (не VPS) хостинг, то там еще может срабатывать защита от перегрузка по кол-ву MySQL запросов в единицу времени. Тут выход уже только переезд на vps или выделенный сервер.
Такие вещи поймать бывает непросто за руку, надо дебаг делать.
Пишите, если не осилите - разберемся.
p.s. а места на сервере достаточно? ;-)
21.08.2017, 18:56
fishtag
Fishtag

Зарегистрирован:
1970-01-01
Сообщений: 3

Вот спасибо за ответ! Подсказали в каком направлении двигаться.
1 и 2 пункты не подтвердились. С этим все таки все хорошо.
Правда, в первом пункте не соответствие:
>> Он должен быть двойной, через пробел.
Он не двойной, просто id источника. Добавление нового источника это подтвердило. Да и в таблице у этого поле соответсвующий формат, исключающий пробел. Возможно понял вас не верно.
А вот напоминание про PHP переменные заставило заглянуть нас в .htaccess, который мы в свое время правили, добавляя и выкручивая некоторые значения на максимум. После переноса сайта на новый VDS, почему то все эти переменные закоментировали и успешно забыли. Будем завтра тестировать, смотреть повлияло изменение значений этих переменных. Спасибо за помощь!
22.08.2017, 04:59
Руслан Густокашин
Студия Вэлпис

Зарегистрирован:
2012-02-06
Сообщений: 962

Да, я немного неверно выразился. Под идентификатором источника я имел в виду не source_id, а external_id. Он имеет примерно такой формат: "fb31a80d-c999-11e0-85d3-0018f309ee55 fb31a80d-c999-11e0-85d3-0018f309ee55" - то есть 1Совский идентификатор каталога два раза через пробел.
Насчет .htaccess - да, поэкспериментируйте. Только я не совсем понимаю, как экспериментировать, если баг у вас исчезает при любом ручном импорте (если я вас верно понял). Или он у вас вылезает гарантированно при следующем же автоматическом импорте?
А вообще ручной импорт всегда успешно проходит? Задаются ли какие-нибудь вопросы при ручном импорте? (например, предложение еще раз сопоставить какие-то разделы, ценовые поля или склады)
Вообще, все-таки, очень желательно обновиться, как минимум, до версии 5.7, если это возможно (т.е. если у вас в самодельных участках кода не используются функции с mysql_* префиксом). Хоть первые два предположения и не подтвердились, в версии 5.6 эти баги были и рано или поздно вы на них, мне кажется, все равно попадетесь.
198 196 2017-08-22 04:59:41 14822
Описание проекта