Нет, не ругается.
18.09.2014 19:56:13
Полная выгрузка? Это крутовато получается.
Я в день обновляю максимум десяток товаров, это занимает секунды. Если каждый раз грузить весь каталог - это час-полтора. Я приведенный выше синтаксис CML подсмотрел в выходных файлах вашего модуля обмена, из 1с. Там как раз СодержитТолькоИзменения="True".
АИ что означает "старый обмен"? (1С не использую, подсовываю битриксу файл по протоколу вручную). В смысле, это он на стороне Битрикса старый? А как это точно узнать (если Битрикс полностью обновленный сейчас)? |
|||
|
18.09.2014 19:06:32
Ситуация.
Обмен идет НЕ из 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</ПометкаУдаления> </Предложение> </Предложения> </ПакетПредложений> </КоммерческаяИнформация> ======================== В результате работы скрипта получаю несколько пустых шагов. Шаг 1: Временные таблицы удалены. (1 сек.) Шаг 2: Временные таблицы созданы. (0 сек.) Шаг 3: Файл импорта прочитан. (0 сек.) Шаг 4: Временные таблицы проиндексированы. (0 сек.) Шаг 5: Метаданные импортированы успешно. (0 сек.) Шаг 6: Группы импортированы. (0 сек.) Шаг 7: Деактивация/удаление групп завершено. (0 сек.) Шаг 8: Обработано 1 из 1 элементов. (0 сек.) Шаг 9: Загрузка элементов завершена. (0 сек.) Шаг 10: Обработано 0 из 1 элементов. (11 сек.) Шаг 11: Обработано 0 из 1 элементов. (11 сек.) Шаг 12: Обработано 0 из 1 элементов. (11 сек.) Шаг 13: Обработано 0 из 1 элементов. (9 сек.) Шаг 14: Обработано 0 из 1 элементов. (11 сек.) Шаг 15: Обработано 0 из 1 элементов. (6 сек.) Шаг 16: Обработано 0 из 1 элементов. (6 сек.) Шаг 17: Деактивация/Удаление элементов завершены. (0 сек.) Шаг 18: Импорт успешно завершен. (2 сек.) В результате УДАЛЯЮТСЯ ВСЕ ПРЕДЛОЖЕНИЯ данного товара (с кодом 5484bff7-6844-465c-a084-6b5193003503), а не единственное предложение, указанное в файле. Пробовал вместо <ПометкаУдаления> использовать <Предложение Статус="удален"> - тот же результат. Битрикс актуальный, коробочный. Вопрос не относится к модулю 1С, но все равно прошу помочь. То ли я что-то неправильно в файле пишу (наиболее вероятно), то ли 1c_exchange.php дурит. |
|
|
08.09.2014 15:36:08
Спасибо за ответы, теперь понятно.
Я в будущем (когда с простыми вещами более-менее разберусь) планирую все товары раскидать по видам номенклатуры (аналогично категориям в битриксе) и в каждом виде номенклатуры оставить только тот набор свойств, которые касаются этого вида. Это, к сожалению, вручную делать придется, т.к. помощник импорта весь сайт валит в один вид номенклатуры, и в него же все свойства. |
|
|
08.09.2014 12:42:57
Я никого не обвиняю ни в чем, но, столкнувшись с этим совсем недавно, действительно порой впадаю в ступор от "эффективности" использования ресурсов. А цифры все реальные на 100%. Вы думаете, зачем я то одну опцию включаю, то другую? Просто надеюсь нащупать вариант, который будет быстрее. Неужели Вам меня не жалко - какие-то 3500 товаров импортируются полдня? Представляете, сколько дней такии темпами понадобится, чтобы все отладить? А сколько (десятков) раз процесс выпадал посередине то с ошибкой, то молча? Это какие нервы иметь надо! А Вы говорите "сказки"...
А насчет "виноват-не виноват" - еще раз, чтобы не было конфликта - я не гворю, что виноват модуль, я высказывался об 1С и Битриксе вообще. Понятное дело, гибкость архитектуры и все такое. Но не такой же ценой... Везде в описании Битрикса красной линией идет "родная" интеграция с 1С. Я, честно, очень сильно на это расчитывал, когда выбирал движок магазина. А сейчас выходит, что две недели бьюсь, я только обмен товарами наладить не получается (это я еще зазаказы не брался). И это на моих мизерных 3500 товарах. Что же делать тем, у кого 10000? Буду на днях пытаться на xeone и ssd пробовать, глядишь, может шустрее ворочаться будет. По исправлению в коде, описанному выше, очень хотел Ваше мнение узнать. |
|||||||||
|
06.09.2014 22:40:56
1. Через админку сайта сделайте резервную копию, пусть там на сервере лежит. Когда копия будет готова, нажмите рядом с ней меню - получить ссылку для скачивания, сохраните эту ссылку.
2. Скачайте и разверните виртуальную машину Битрикс отсюда 3. Залогиньтесь в виртуальную машину, настройте (или просто узнайте) там ip. 4. Далее с любого браузера зайдите на этот ip, откроется мастер установки битрикса. Там выберите опцию восстановления сайта из резервной копии и подсуньте ссылку из первого шага. Все. У Вас полностью рабочая локальная копия сайта, делайте с ней все, что хотите. Возможны, конечно, нюансы настроек хостинга (если предыдущий программер что-то настраивал), но это уже по месту рабираться надо. |
|
|
05.09.2014 18:42:12
Свойств 430 штук. Но они все нужные. Причем в выгружаемой группе используются не более 10 из них, и стоит галочка "выгружать только используемые". Но это сейчас, для экономии времени. А вот когда будет выгружаться весь каталог...
Я повнимательней посмотрел номенклатуру и выяснил, что вчера, когда делал новый импорт с сайта, в виде номенклатуры поствил характеристики "Общие для вида номенклатуры". Сегодня поставил, как раньше - индивидуальные для номенклатуры (не помню, как они точно называются), сейчас идет импорт, посмотрю, поможет ли. Но вообще все как-то странно в мире 1С/Битрикс. Моя самописная прога, которая генерит cml полного каталога из моей базы (размер конечных файлов 30Мб), потребляет не более 100 Мб памяти, и еще 190 Мб потребляет MS SQL Server, затрачивая на это 32 секунды. Импорт этих файлов Битриксом занимает 50-70 минут, и ему с трудом хватает 512 Мб памяти (иногда падал, пока лимит не подняли). Импорт того же каталога из битрикса в 1С занимает уже 5,5 часов, потребляет 1 гиг и иногда валится по нехватке памяти. Экспорт 1/30 этого каталога из 1С в cml файлы требует минимум 7 минут на то, чтобы сожрать 1,5 гиг и упасть. Нда. Что-то в консерватории неладное творится... Интересно, если поставить 64-битную платформу, 1С будет использовать всю доступную память, по-прежнему только 1,5 гига? |
|
|
05.09.2014 13:05:00
В общем за ночь измененный помощник отработал, все загрузилось. У характеристик теперь код 1С такой, как должен - содержит только код предложения.
А вот экспорт из 1С теперь не работает. Падает с ошибкой "Недостаточно памяти". Хотя выгружаю всего один маленький раздел каталога, штук 100 товаров. И выгружаю не на сайт, а в файлы. На машине 2 Гб памяти. Процесс долгое время потребляет около 800 Мб, но за секунду до ошибки потребление резко взлетает, диспетчер задач фиксирует пик в до 1470 Мб. В логе обмена последняя строка "Начало выгрузки пакета 1 каталога: Основной каталог товаров" Что-то руки постепенно опускаются... |
|
|
04.09.2014 20:46:41
Запустил помощник импорта с сайта с исправлением в коде и из любопытства перехватил файлы cml, идущие от Битрикса в 1С. Оказыватеся, уже в cml от Битрикса в ИД торговых предложений светятся 3(!) кода: Код_товара#Код_товара#Код_предложения. Что получится в результате, будет ясно утром. Но тут явно что-то странное происходит. Когда я скармливаю битриксу свой cml, в котором ИД предложения в виде Код_товара#Код_предложения, он так и созраняет в инфоблок код из 2 частей. Зато отдача того же предложения идет уже из 3 частей Код_товара#Код_товара#Код_предложения. Получается, гипотетически, на каждом круге ид прирастает слева на еще один код товара. Битрикс у меня обновленный, без правок ядра, лицензионный и т.п. Интересно, это у всех так же? |
|||
|
04.09.2014 18:21:53
В мастере загрузки с сайта в функции ОбработатьЗначениеЭлемента есть такой кусок:
Что-то мне подсказывает, что в последней строке должно быть "=ПраваяЧасть;". |
|||
|
02.09.2014 16:46:38
Одна проблема - я не программист 1С Потому и прошу помощи. |
|||
|