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

Импорт объектов в каталог

27.06.2012, 13:15
Гость
Гость

При импорте объектов в каталог в модуле Интернет-магазин получаю такую ошибку:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 61 bytes) in /home/u42545/test.bearing-service.ru/www/netcat/modules/netshop/import/nc_netshop_cml2parser.class.php on line 1324

Пробовал выставить ini_set('memory_limit', '64M'); в указанном файле - не помогает. Как можно разрешить проблему? файл выгрузки из 1c import.xml весит около 300 Мб.
28.06.2012, 12:27
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Для начала я бы вам посоветовал выгрузить маленький набор данных, чтобы размер файла был мал и посмотреть работает ли импорт вообще.

Если работает, то тут два варианта:
1. Увеличивать ресурсы вашего хостинга в плане оперативки.
2. Переделывать модуль импорта таким образом, чтобы инфу из файла он читал маленькими порциями, чтобы не превышать лимиты по памяти. Тут оч. много гемороя, ибо если использовать готовые xml парсеры, то им нужен файл с полной валидной xml структурой, а не порционной.

зы. Я штатным модулем интеграции никогда не пользуюсь, я сделал свой, т.е. написана "внешняя обработка" для 1С 7.7, 8.0, 8.1, 8.2, которая выгружает из 1С только те данные, которые реально надо передать на сайт и мой модуль импорта все это парсит и запихивает в неткет. При таком раскладе я избегаю "лишнего мусора" в штатных xml файлах формата CommerceML.

Temet nosce...
28.08.2012, 13:44
Руслан Густокашин
Студия Вэлпис

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

А почему вы делаете memory_limit 64 мегабайта, когда размер файла у вас 300 Мб?
Поставьте лимит хотя бы 386 Mb, тогда должно начать грузиться.
Но по-хорошему, раз у вас такой большой файл, нужно писать самодельный парсер, который обрабатывает файлы, не загружая файл целиком в память.
198 196 2012-08-28 13:44:12 12407
Описание проекта