Ошибка 404

#
Ошибка 404
Просмотрев существующие темы, не нашел ответ с решением проблемы.

Есть сайт с работающим модулем интернет-магазина. В структуре сайта есть раздел для обмена с 1С, созданный и настроенный в соответствии с документацией.
Этот раздел перестал работать, при попытке доступа к нему возвращается ошибка 404. Если попытаться войти в него через браузер - ошибка 404.

На момент разработки сайта его исходники размещались на одном веб-сервере, а после сдачи проекта были переданы на хостинг заказчика. Там сайт в целом, и раздел обмена с 1С в частности, работали исправно и без нареканий. И вот начиная с 3 июня перестал работать раздел обмена сайта с 1С.

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

Попробую потом удалить раздел и создать его вновь, но это потом. Сейчас хотелось бы понять причину сбоя, и на чьей стороне он произошел. Что посоветуете?
Модератор
#
Re: Ошибка 404
lezhenkin,
ошибка 404 наша или сервера?
#
Re: Ошибка 404
hostcms, ошибка наша. То есть сайт отвечает ошибкой 404.

То есть именно сайт отображает страницу Ошибка 404 с подключенным для этого макетом. И это странно, так как этим страдает только этот раздел. Ну, пока что найдена проблема только с этим разделом.

Теперь вторая часть проблемы, которую я только сейчас обнаружил.

Перелив обратно к себе на веб-сервер исходные данные сайта и его базу данных, я увидел громадный размер этой базы. Товаров в ней около 1500 шт, а вот размер просто громадный.

В самой базе около 10 млн. записей в таблицах shop_warehouse_inventory_items, shop_warehouse_entries, shop_price_setting_items,   shop_price_entries. У владельца сайта обмен 1С с сайтом происходит по расписанию каждые 15 минут. По расчетам получается, при каждом обмене 1С с сайтом в перечисленные таблицы просто добавляются новые значения независимо от того, были ли они изменены. Например, случайно выбранный товар на проверку имеет несколько тысяч записей в таблице `shop_price_entries` с одинаковым значением цены.

Я просмотрел контроллер обмена Shop_Item_Import_Cml_Controller. Дошел до строки 1753
$oShop_Price_Setting = $this->getPrices();


И понимаю, что при обмене с 1С не отрабатывает как надо вот этот кусок кода, идущий после строки 1753.
$old_price = !is_null($oShop_Item_Price)
      ? $oShop_Item_Price->value
      : $oShopItem->price;


Ибо...


Получается, что при обмене с 1С сама 1С не передает идентификатор цены, по которому её можно было найти в базе данных, HostCMS сохраняет эту цену как новую, и база разрастается?
И в итоге, возможно, это и приводит к 404 ошибке?
Модератор
#
Re: Ошибка 404
lezhenkin, давайте договоримся, разные вопросы - в разных темах.

lezhenkin писал(а):
То есть сайт отвечает ошибкой 404.

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

Что касается таблиц, то при каждом обмене создается соответствующая инвентаризация с установкой цен. В версии 6.9.3 было внесено два дополнения:

  1. В магазине реализована свёртка цен и остатков на складах https://www.hostcms.ru/documentation/modules/shop/convolution/
  2. Внесены изменения в импорт товаров и проводку документов: если цена или остаток не менялись, то проводка создаваться не будет.


соответственно вам нужно свернуть базу цен и остатков (это делается отдельно) на определенную дату, например, 1 июня и удалить из корзины все помещенную туда документы.
#
Re: Ошибка 404
hostcms писал(а):
Страница 1С должна спрашивать авторизацию, если она не спрашивает, то вероятно наличие каких-то ваших хуков, которые меняют логику работы.

Страница 1С данные авторизации не спрашивает, так как вместо её на экране страница Ошибка 404.

Никакие пользовательские хуки не добавлялись. С этой точки зрения всё стандартно.
Модератор
#
Re: Ошибка 404
lezhenkin,
тогда только на месте смотреть, присылайте в поддержку адрес и данные с описанием проблемы.
#
Re: Ошибка 404
hostcms писал(а):
тогда только на месте смотреть, присылайте в поддержку адрес и данные с описанием проблемы.

Это HostCMS Халява. У неё есть подобного рода поддержка?
#
Re: Ошибка 404
Итак, перелив файлы сайта и базу данных обратно к себе на веб-сервер я убедился в том, что все работает. Ошибки 404 нет. Мой веб-сервер, мягко говоря, превосходит по характеристикам то, что выделено хостингом reg.ru.

Громадные размеры таблиц shop_warehouse_inventory_items, shop_warehouse_entries, shop_price_setting_items,   shop_price_entries, в которых было почти по 10 млн записей, не мешали работе сайта и автоматическому обмену с 1С.

Я обновил систему до последней на текущий момент версии, выполнил свертку цен и остаткой на вчерашний день. Количество записей в перечисленных выше таблицах свелось к адекватному. Ошибки 404 у раздела автоматического обмена с сайтом больше не возникло даже на виртуальном хостинге REG.ru

Получается, что сбоила служба MySQL на виртуальном хостинге? Так, что ли? И это приводило к тому, что не работал конкретный раздел сайта, а сам сайт работал?

К сожалению отсутствует возможность просмотра журналов ошибок на хостинге REG.ru.
Модератор
#
Re: Ошибка 404
lezhenkin,
простое открытие раздела /1c/ должно вызывать HTTP-авторизацию, а после нее - белое окно. Если так не происходит, то до обмена и таблиц дело даже не доходит, в чем причина была нам сложно сказать, так как данных доступа выслано в поддержку не было.
#
Re: Ошибка 404
hostcms, понял. Сейчас пришлю. На текущий момент сайт восстановлен до состояния неработающего раздела автоматического обмена с 1С.
Авторизация