Андрей, спасибо за наводку. А в каком событии лучше использовать этот код?
|
Полная выгрузка? Это крутовато получается.
Я в день обновляю максимум десяток товаров, это занимает секунды. Если каждый раз грузить весь каталог - это час-полтора. Я приведенный выше синтаксис CML подсмотрел в выходных файлах вашего модуля обмена, из 1с. Там как раз СодержитТолькоИзменения="True".
АИ что означает "старый обмен"? (1С не использую, подсовываю битриксу файл по протоколу вручную). В смысле, это он на стороне Битрикса старый? А как это точно узнать (если Битрикс полностью обновленный сейчас)? |
|||
|
|
|
|
Спасибо за ответы, теперь понятно.
Я в будущем (когда с простыми вещами более-менее разберусь) планирую все товары раскидать по видам номенклатуры (аналогично категориям в битриксе) и в каждом виде номенклатуры оставить только тот набор свойств, которые касаются этого вида. Это, к сожалению, вручную делать придется, т.к. помощник импорта весь сайт валит в один вид номенклатуры, и в него же все свойства. |
|
|
|
|
Я никого не обвиняю ни в чем, но, столкнувшись с этим совсем недавно, действительно порой впадаю в ступор от "эффективности" использования ресурсов. А цифры все реальные на 100%. Вы думаете, зачем я то одну опцию включаю, то другую? Просто надеюсь нащупать вариант, который будет быстрее. Неужели Вам меня не жалко - какие-то 3500 товаров импортируются полдня? Представляете, сколько дней такии темпами понадобится, чтобы все отладить? А сколько (десятков) раз процесс выпадал посередине то с ошибкой, то молча? Это какие нервы иметь надо! А Вы говорите "сказки"...
А насчет "виноват-не виноват" - еще раз, чтобы не было конфликта - я не гворю, что виноват модуль, я высказывался об 1С и Битриксе вообще. Понятное дело, гибкость архитектуры и все такое. Но не такой же ценой... Везде в описании Битрикса красной линией идет "родная" интеграция с 1С. Я, честно, очень сильно на это расчитывал, когда выбирал движок магазина. А сейчас выходит, что две недели бьюсь, я только обмен товарами наладить не получается (это я еще зазаказы не брался). И это на моих мизерных 3500 товарах. Что же делать тем, у кого 10000? Буду на днях пытаться на xeone и ssd пробовать, глядишь, может шустрее ворочаться будет. По исправлению в коде, описанному выше, очень хотел Ваше мнение узнать. |
|||||||||
|
|
|
|
1. Через админку сайта сделайте резервную копию, пусть там на сервере лежит. Когда копия будет готова, нажмите рядом с ней меню - получить ссылку для скачивания, сохраните эту ссылку.
2. Скачайте и разверните виртуальную машину Битрикс отсюда - это полностью настроенный веб-сервер, готовый к развертыванию сайта. Если что, про виртуальную машину есть форум, ссылка на той же странице. 3. Залогиньтесь в виртуальную машину, настройте (или просто узнайте) там ip. 4. Далее с любого браузера зайдите на этот ip, откроется мастер установки битрикса. Там выберите опцию восстановления сайта из резервной копии и подсуньте ссылку из первого шага. Все. У Вас полностью рабочая локальная копия сайта, делайте с ней все, что хотите. Возможны, конечно, нюансы настроек хостинга (если предыдущий программер что-то настраивал), но это уже по месту рабираться надо. |
|
|
|
|
|
Свойств 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 гига? |
|
|
|
|
|
В общем за ночь измененный помощник отработал, все загрузилось. У характеристик теперь код 1С такой, как должен - содержит только код предложения.
А вот экспорт из 1С теперь не работает. Падает с ошибкой "Недостаточно памяти". Хотя выгружаю всего один маленький раздел каталога, штук 100 товаров. И выгружаю не на сайт, а в файлы. На машине 2 Гб памяти. Процесс долгое время потребляет около 800 Мб, но за секунду до ошибки потребление резко взлетает, диспетчер задач фиксирует пик в до 1470 Мб. В логе обмена последняя строка "Начало выгрузки пакета 1 каталога: Основной каталог товаров" Что-то руки постепенно опускаются... |
|
|
|
|
Запустил помощник импорта с сайта с исправлением в коде и из любопытства перехватил файлы cml, идущие от Битрикса в 1С. Оказыватеся, уже в cml от Битрикса в ИД торговых предложений светятся 3(!) кода: Код_товара#Код_товара#Код_предложения. Что получится в результате, будет ясно утром. Но тут явно что-то странное происходит. Когда я скармливаю битриксу свой cml, в котором ИД предложения в виде Код_товара#Код_предложения, он так и созраняет в инфоблок код из 2 частей. Зато отдача того же предложения идет уже из 3 частей Код_товара#Код_товара#Код_предложения. Получается, гипотетически, на каждом круге ид прирастает слева на еще один код товара. Битрикс у меня обновленный, без правок ядра, лицензионный и т.п. Интересно, это у всех так же? |
|||
|
|
|
|
В мастере загрузки с сайта в функции ОбработатьЗначениеЭлемента есть такой кусок:
Что-то мне подсказывает, что в последней строке должно быть "=ПраваяЧасть;". |
|||
|
|
|