PHP работатет как FastCGI. Насчет прав доступа к PHP binary не понял, о чем речь. Все остальное работает, в т.ч. и сам скрипт вываливается только на 8 шаге, предыдущие шаги (в т.ч. чтение файла и работу с группами) выполняет нормально.
Ошибка 1c_exchange.php Premature end of script headers., Возникает после перехода на PHP 5.5 + OPcache, хостинг Рег.ру.
После окончания поддержки Битриксом eAccelerator пришлось перейти c PHP 5.3 на PHP 5.5 + OPcache. Хостинг Рег.ру. Сайт вроде работает нормально, но скрпит 1с_exchange.php при импорте каталога (import.xml) на сайт стал вываливаться на шаге 8 (начало обработки товаров) с ошибкой Premature end of script headers. Ошибка появляется вне зависимости от количества товаров в CML файле (даже при 1). После отката на PHP 5.3 ошибка не возникает. У хостера есть еще конфиг PHP5.4 + XCache, на нем ошибки тоже нет, но работает медленнее. Подскажите, пожалуйста, что с этим можно сделать.
Только что выснилось, что вчера после загрузки вышеприведенного файла удалились ВООБЩЕ ВСЕ предложения, ане только предложения товара (я не заметил другие товары из-за кешировния). Гружу весь каталог заново. Блин.
Полная выгрузка? Это крутовато получается. Я в день обновляю максимум десяток товаров, это занимает секунды. Если каждый раз грузить весь каталог - это час-полтора.
Я приведенный выше синтаксис CML подсмотрел в выходных файлах вашего модуля обмена, из 1с. Там как раз СодержитТолькоИзменения="True".
Цитата
Александр Денисюк пишет: Если у вас <ПакетПредложений СодержитТолькоИзменения="True"> , тогда вообще ничего не будет удаляться.
Но ведь по факту удаляется. Только удаляются все предложения текущего товара, вместо одного.
АИ что означает "старый обмен"? (1С не использую, подсовываю битриксу файл по протоколу вручную). В смысле, это он на стороне Битрикса старый? А как это точно узнать (если Битрикс полностью обновленный сейчас)?
Ситуация. Обмен идет НЕ из 1с, но при помощи 1c_exchange.php. Описан тут Мне необходимо удалять неиспользуемые торговые предложения на сайте. Т.е. нужно перечислить их в CML, чтобы Битрикс при импорте файлов удалил эти предложения. Загружаю тестовый CML файл следующего содержания: ======================== <КоммерческаяИнформация> <ПакетПредложений СодержитТолькоИзменения="True"> <Ид>5484bff7-6844-465c-a084-6b5190000002</Ид> <Наименование>Цены для сайта</Наименование> <ИдКаталога>5484bff7-6844-465c-a084-6b5190000000</ИдКаталога> <ИдКлассификатора>5484bff7-6844-465c-a084-6b5190000008</ИдКлассификатора> <ТипыЦен> <ТипЦены> <Ид>5484bff7-6844-465c-a084-6b5190000010</Ид> <Наименование>Розничная</Наименование> <Валюта>RUB</Валюта> <Налог> <Наименование>НДС</Наименование> <УчтеноВСумме>true</УчтеноВСумме> </Налог> </ТипЦены> </ТипыЦен> <Предложения> <Предложение> <Ид>5484bff7-6844-465c-a084-6b5193003503#5484bff7-6844-465c-a084-6b5194005881</Ид> <ПометкаУдаления>true</ПометкаУдаления> </Предложение> </Предложения> </ПакетПредложений> </КоммерческаяИнформация> ========================
В результате работы скрипта получаю несколько пустых шагов.
В результате УДАЛЯЮТСЯ ВСЕ ПРЕДЛОЖЕНИЯ данного товара (с кодом 5484bff7-6844-465c-a084-6b5193003503), а не единственное предложение, указанное в файле. Пробовал вместо <ПометкаУдаления> использовать <Предложение Статус="удален"> - тот же результат. Битрикс актуальный, коробочный.
Вопрос не относится к модулю 1С, но все равно прошу помочь. То ли я что-то неправильно в файле пишу (наиболее вероятно), то ли 1c_exchange.php дурит.
Полный импорт с сайта в УТ, Выдает ошибку "Рабочее наименованиене уникально"
На уже имеющейся базе: 1. Пройтись по дереву групп, создать одноименные виды номенклатуры 2. Для каждого вида номенклатуры расшарить все имеющиеся реквизиты 3. Для каждого товара сменить вид номенклатуры согласно группе, в которой он лежит 4. Для каждого вида номенклатуры и каждого реквизита - пройтись по всем товарам данного вида. Если ни у одного не заполнен реквизит - удалить реквизит из списка реквизитов данного вида номенклатуры.
Эх, если бы все лежало в реляционной БД, это действительно полчаса, средствами одного лишь T-SQL Или даже простым перебором можно было бы на любом языке.