В другой теме ситуация была другая - у них были нестандартные внешние коды для элементов номенклатуры в старой конфе (я так поняла), и даже если они после обновления снова внесут модификации в конфу, коды сгенерируются составные, но уже не совпадут с теми, что были сгенерированы раньше. Поэтому им я посоветовала откатить обновления. А у вас может быть и другой выход - главное саму проблему локализовать.
Сделайте выгрузку до переименования свойства. Сделайте выгрузку после переименования свойства. Просмотрите их при помощи какой-нибудь программы сравнения файлов вроде winmerge - нужно узнать, что конкретно изменятся при этом - похоже что внешний код свойства.
Нет, нельзя. В стандартной УТ, в принципе, нельзя прикрепить картинку к характеристике - картинка прикрепляется к товару. Обходят 2мя методами: 1) Делают в 1С, что товары разного цвета - это разные товары, и тогда каждому из них - своя картинка, импорт кастомизируют на стороне сайта. 2) Пишут серилизованную строку с признаками принадлежности в поле "описание файла" для каждой прикрепленной к товару картинки. На стороне сайта - анализируют эту строку либо при импорте, либо непосредственно при визуализации каталога.
Это те методы, к-ми можно решить задачу без программирования в 1С Предприятии (или с минимальным программированием в случае метода 2)
Проблема явно на стороне 1С. Битрикс тут вообще не при чем. Попробуйте обменяться с тем же сайтом из демонстрационной конфигурации УТ, а потом припомните, чем ваша конфигурация отличается от демонстрационной - стандартной.
Mobelis пишет: Я реализовал следующим образом. При импорте создаю дополнительное свойство у товара Старая цена и скидка. И добавляю значения взятые из файл импорта. И вывожу на сайте. Но подумываю переделать как у Вас с небольшими доработками.
Как по мне, не важно какой алгоритм выбран. Главное тут - не навешивать это на события - очень много лишних ресурсов будет сжираться при импорте. В моем же методе с наследованием класса - запросов к базе добавляется самый минимум, самый минимум из всех возможных вариантов.
Mobelis пишет: Интересный подход но при удалении позиции товара на которую ссылалась скидка удаляется лишь связь между скидкой и товаром. Для удаления скидки вместе с товаром необходимо дополнительная обработка в момент события OnBeforeIBlockElementDelete .
Если скидку для товаров создавать стандартными средствами, и если потом товары, на которые распространялась скидка будут удалены, то эта скидка тоже останется в системе. Я бы не стала вешать обработчик на событие OnBeforeIBlockElementDelete - это слишком ресурсоемко (процент товаров, у которых есть скидки - мал, а обработчик будет отрабатывать для абсолютно каждого удаляемого товара и проверять есть у него скидка и надо ли ее удалять). По мне более эффективный вариант - либо расширить функционал класса импорта и удалять скидки при импорте в том же блоке, где удаляются/деактивируются товары, либо вешать какой-то скрипт на крон, к-й раз в неделю - а чаще точно не надо чистит хвосты.
На вопрос "почему" - там может быть много причин: какое-то новое поле в 1С добавилось, либо на сайте в инфоблоке удалилось, либо настройки обмена кто-то сбил, либо на 1С обновления накатили. Нужно каждое свойство в старом и в новом инфоблоке открыть в режиме редактирования и сразу будет видно, что к чему
Дело в том, что мало просто изменить внешний код инфоблока каталога. Нужно еще и внешние коды свойств инфоблока каталога заменить на те, к-е формируются в новом инфоблоке.
Не то чтобы настроить - дописать. Я, к примеру, вот так делала как написано в этом моем посте http://dev.1c-bitrix.ru/community/webdev/user/30123/blog/7408/ в конце, правда, это не самый удачный метод ведения лога - я торопилась, но ошибку на стороне 1С мы успешно выловили.
Думаю, вам на стороне сайта нужно завести лог запросов, к-е приходят из 1С. Скорее всего какой-то запрос приходит не в том формате, как должно быть по протоколу обмена.
Нужно посмотреть, что принимает сайт от 1С. У меня тоже был случай недавно с переписанной УТ (и ошибка была примерно как у вас) - 1С-программист писал, что ид сессии передается, я сделала, чтобы на стороне сайта велся лог - оказалось, что все же от 1С ид сессии не приходит по причине того, что после последнего обновления платформы у них там что-то в функциях поменялось, и когда мы это выявили, 1С-ник смог подправить. Вам тоже нужен лог на стороне сайта.
А вместе с этим запросом bitrix/admin/1c_exchange.php?type=catalog&mode=import&filename=import.xml 1С-ка не забывает ID сессии передавать? У вас типовая УТ или переписанная?
В инфоблоках в настройках все настраивается - индексировать ли разделы, индексировать ли элементы, индексировать ли то или иное дополнительное свойство. Галочки все проверьте, а потом просто запустите полную переиндексацию поиска.
А вы запустите сначала конфигуратор, а потом предприятие в режиме отладки и поставьте точку останова там где-нибудь в начале выгрузки - потом поиграйте с точками останова - сразу все станет ясно.
По-моему это вообще не проблема - вы можете этот код задать сами как на стороне 1С в настройках обмена, так и на стороне сайта в настройках инфоблока. Все, что вам нужно - это привести коды к единообразию - чтобы код в 1С соответсвовал внешнему коду инфоблока.
По символьным кодам там все настраивается. В админке в Магазине на странице Интеграция с 1С можно настроить, изменять ли символьные коды при обновлении - я всегда ставлю, чтобы при обновлении они не менялись, а генерировались только при добавлении. Это хорошо для сео, потому что один и тот же товар или раздел не должен впоследствии переезжать на другой url. А в настройках инфоблока тоже есть блок, отвечающий за генерацию кодов - где непосредственно уже можно играть с опциями их генерации.
Я думаю - это может быть серверной проблемой. Подобное поведение обмена может наблюдаться, если на хостинге время создания сессии велико. И, в общем то, как раз в этом случае ошибка может проявляться не регулярно. Вообще 500я ошибка - это внутренняя ошибка сервера - сам сервер отклоняет соединение. Думаю, если обмен типовой - тут нужно обратиться в техподдержку битрикс и в техподдержку хостинга.