Это может быть решено только глубокой кастомизацией модуля обмена, причем как на стороне Битрикс, так и на стороне 1С. У меня в блоге можно почитать про похожие кейсы.
Важно! Для версий продукта 14.5.0 и выше перед началом использования скрипта необходимо выполнить следующий код: для обмена заказами: COption::SetOptionString("sale", "secure_1c_exchange", "N"); для обмена товарами: COption::SetOptionString("catalog", "DEFAULT_SKIP_SOURCE_CHECK", "Y" );
Импорт дерева каталога с сайта в 1-с, Как произвести импорт XML
А попробуйте сделать наоборот - чтобы картинки посылал только полный обмен, а тот узел обмена, который только обновляет остатки - пусть идет без картинок.
Это у админа сервера или у техподдержки хостинга спросить надо. В Битриксе в настройках групп пользователей тоже указывается время жизни сессии, но оно не может быть дольше, чем разрешено админом на сервере.
На стороне 1С, их, действительно, нельзя исправить (ну без лишнего геморроя - точно нельзя). А вот после того, как они уже импортированны на сайт, можно непосредственно перед отдачей страницы пользователю генерить для картинки дубликат, хранящийся в специальной отдельной папочке на сервере и генерящийся только если его пока нет, с "нормальным" именем, к-е можно хранить, к примеру, в дополнительном хайлодблоке соответсвий имен.
Тут уже заочно не скажешь - нужно подключить на стороне сайта логирование и посмотреть, что он получает в качестве этого 430го фрагмента. Если обмен идет долго, возможно, за это время - время жизни сессии истекать успевает - как вариант. Еще на сервере может быть ограничение на суммарный размер файла, который может быть передан по протоколу http - у нас так было на проекте одного из клиентов - сделали кастомайз, чтобы сама передача файла шла через ftp.
Импорт дерева каталога с сайта в 1-с, Как произвести импорт XML
А вы это пытаетесь сделать не через помощник импорта каталога из Битрикс в 1С? Попробуйте сделать через Помощник. Там группы загружаются в начале, а товары можно и не загружать, если они там вместе с группами вам не нужны.
Статусы заказов на сайте не меняются при выгрузке из 1С
В соответствие с логикой синхронизации 1С и 1С-Битрикс, статус заказа меняется, если из 1С передались дата оплаты либо дата отгрузки товара. Для того, чтобы эти даты попали в XML-файл, который формируется 1С и передаётся на сайт, нужно сформировать и провести нужные документы:
В 1С УТ зарегистрировать оплату заказа можно путем ввода на основании заказа документов оплаты, таких как "Платежное поручение входящее" и "Приходный кассовый ордер". Отгрузка, как правило, регистрируется вводом на основании заказа документа "Реализация товаров и услуг". Если в регистре "Расчеты с контрагентами" остаток по заказу <= 0, заказ считается оплаченным. Если в регистре "Заказы покупателей" остаток по заказу <= 0, заказ считается отгруженным. У конфигурации УПП принцип тот же.
Статусы, в которые будут переводиться заказы при получении дат оплаты и отгрузки, устанавливаются в настройках модуля интернет-магазина(в Битриксе).
Я раньше тоже чуть что - бежала обмен кастомизировать. Потом на меня снизашло озарение - часто можно просто объяснить клиенту, что так как задумано в логике модуля - так и правильно, и лучше.
Причины возникновения ошибки могут быть следующие:
1. На компьютере, где установлена 1С, имеется файрволл или антивирус, препятствующий корректной передаче файла или блокирующий отправку файла на сервер. 2. Некорректно работает функции расширения ZIP, вследствие чего из архива не распаковываются файлы. Для решения возникшей проблемы рекомендуется: Установить последние стабильные версии обновлений модуля интернет-магазина. На время обмена отключить на локальной машине все блокирующее ПО (антивирус, файрволлы и т.д.) Отключить zip-сжатие в настройках интеграции с 1С.
Анатолий Кирсанов, если 1С-программист - это сотрудник заказчика - я бы вообще не стала доверять тому, что он говорит, тем более, если обмен немного кастомный. Нужно, чтобы систему посмотрел и протестировал кто-то независимый и компетентный.
Анатолий Кирсанов, а в подписках на события - только стандартные обработчики? А то ведь в них все, что угодно может быть - это такой же инструмент расширения функционала 1С, как и события Битрикс.
А во время обмена посмотрите, как себя ведут файлы в папке на сайте /upload/1c_catalog/ - растет ли архив? обрывается ли обмен до того, как он успевает распаковаться? Если распаковывается в ходе обмена нормально, посмотрите, содержит ли он папку с картинками?
На стороне 1С оставляйте по наименованию, на стороне сайта делайте, чтобы в качестве наименования контрагента отдавало ID Не очень удобно будет просматривать список контрагентов на стороне 1С - но это на стороне 1С можно подпилить, чтобы там в табличках выводилось Фио контрагента, а не его уникальное наименование.
На стороне сайта: Магазин - Настройки - Интеграция с 1С - Профили обмена - Физ лицо - что выбрали для идентификации? Что выбрали для юрика? Чтио выбрали в настройках узла обмена на стороне 1С для идентификации контрагента?
Сергей Фролов написал: уже надоело после каждой выгрузки, вручную активировать все товары из первой выгрузки, на это уходит по часу
Можно сделать вам кастомайз, чтобы это действие осуществлялось в автоматическом режиме. На это уйдет не более 3х часов работы программиста (вместе с тестированием). Я думаю, ваша условная экономия будет существенной.
Демо магазин с моими товарами из 1С. Как это реализовать?, Выгрузка товаров из 1С УТ 10.3 в БУС 12.5.10
То же самое нужно сделать, только внимательно. Аккуратно взять коды из вновь созданных инфоблоков и вписать их в старые, затем аккуратно удалить созданные инфоблоки. Если обмен опять пойдет не туда, нужно посмотреть, чем обмену не нравится старый инфоблок - бывает там одно свойство 2 раза заведено или нет возможности создать служебные свойства потому что с таким названием уже есть. тогда нужно привести в порядок и свойства, и внешние коды свойств - сделать как во вновь созданном инфоблоке.
Альтернативный функционал на базе "Бронирование переговорных", Резервирование водителей
Вот этот функционал установки опций COption::GetOptionString('calendar', 'rm_iblock_id', "") позволяет сохрянять в базе не только предустановленные опции, но и свои собственные. Например, можно завести другую опцию COption::SetOptionString('calendar', 'rm_iblock_id2', "") - как-то так. Про это есть в документации по функциям GetOptionString и SetOptionString.
А класс модуля можно наследовать, компоненты, соответсвенно, скопировать в свое пространство имен и кастомизировать - тогда останутся и старый функционал, и новый.
Ошибка обмена: новые заказы из 1С на сайт, не выгружаются новые заказы из 1С на сайт