Так скажем это не доработка ЧПУ, надо копировать шаблон комплексного каталога и добавлять проверки наличия раздела/элемента и бросать самому 404 ошибку.
VK-19, ну проблема точно на стороне 1с в такой ситуации. Так как битрикс ведет себя как и должен. Проверьте файлы которые выгружаются при автообмене из 1с, возможно все таки не полная выгрузка идет. Сравните их с выгрузкой при ручном запуске. Ну и давайте в студию информацию о версии 1с и модуле обмена!
Могу предположить, что при авто обмене идет не полная выгрузка, а при нажатии на кнопку полная. В настройках в 1с есть варианты выгружать все или только изменения. Далее, в самом битриксе в настройках обмена (Магазин->Настройки->Интеграция с 1С) есть опция "Что делать с группами, отсутствующими в файле импорта" и там стоит деактивировать разделы.
Есть такой скриптик bx_1c_import.php, там вроде есть такая возможность. Только учтите скрипт дырявый держать на рабочем сайте нельзя! А так частенько выручал.
Ни как переключать нельзя, в битриксе может быть много сайтов, но база, многие настройки и админка одна
Если у вас чего то в "Контенте" нет, то это нужно создавать.
И лучше прикладывать скрины и писать подробнее, а то вопрос из разряда "найди то, не знаю что"
Иван Антонов, это вы походу костыль сделали, в ядре покопавшись, причем забравшись в самую глубь этих джунглей, но вот прилетит обновление и все затрет. Если не обновляться, имеет право на жизнь, но мой вариант не трогая ядро. ))
ViktorGuerro, к этому вопросу это уже не имеет отношения. А так проверяйте шаблон какой подключается в компонент и как сам компонент подключили. Быстрее всего вы воткнули его с дефолтным шаблоном а на сайте есть кастомизированный
ViktorGuerro, название GET переменной не забудьте поменять, так как она там от балды в качестве примера написана, укажите как в комплексном компоненте передается ID заказа
Примечание: на странице обязательно размещается и настраивается компонент, отображающий детальную информацию по заказу. Например, это может быть компонент "Подробная информация о заказе" или комплексный компонент "Заказы пользователя".
То есть создаете папки personal/orders там в index.php пихаете компонент sale.personal.order
Александр, Ярослав кстати вам ссылку правильную дал, и мыслит он в правильном направлении, вот только выражает ее кратко, что сразу не понять.
Вообщем то все просто вы сохраняете элемент в админке:
Идет вызов CIBlockElement::Update вместе со всеми свойствами и соответственно срабатывает ваше событие OnAfterIBlockElementUpdate
Но дальше админка сохраняет и цену! Она же в админке в форме тоже присутствует и в этой форме старое значение цены.
Как результат цена не изменилась. Точнее она сначала сменилась на новую, но потом вернулось старое значение из формы.
Решение в вашем случае, убрать обработку события OnAfterIBlockElementUpdate
Вешаемся на события OnBeforePriceUpdate, оно тоже будет вызываться при сохранении в админке (читаем выше, цена тоже сохраняется), а там уже дергаем ваше свойство, на его основе пересчитываем цену и подменяем.
Первое, битрикс умеет хранить цены в одной валюте, а показывать в другой по курсу установленному для этих валют.
Второе, OnAfterIBlockElementUpdate вызывается только при вызове CIBlockElement::Update
если у вас свойство обновляется другим методом, как пример CIBlockElement::SetPropertyValuesEx то это событие вызываться не будет
Третье, для отладки используйте xdebug, больше половины простых вопросов снялось бы с Тостера если бы люди использовали средства отладки. Не настроено окружение? Ну так используйте хотя бы битриксовскую функцию AddMessage2Log, проверяйте срабатывает ли событие
Константин, Ну как бы разве из 1с не возвращается новая цена на каждую позицию?
Если в 1с цена меняется, должны обновляться и цены в корзине. И как бы вообще зачем скидку считать два раза на сайте и в 1с?
ЗЫ Если уж сильно вам нужен "костыль", работайте с таблицей напрямую через ORM, там точно ни чего пересчитываться не будет. Вот так генерируется класс для b_sale_order https://dev.1c-bitrix.ru/learning/course/index.php...
Ну а после используете OrderTable