У меня в 1С будет настроено два разных обмена: - оба обмена будут выгружать товары на один и тот же сайт, но в разные каталоги. - 1С общая.
Будет ли нормально работать выгрузка изменений по расписанию. В Битриксе используется общая временная таблица для этих задач. Я боюсь, что стандартными средствами без изменения компонента не получится сделать.
Может быть 1С сама не даст запустить два обмена одновременно. Или все-таки запускает?
Юлия, Вы описывали и дали ссылку на обмен с разными 1С, а здесь 1С общая. Кастомизировать компонент на сайте в этом случае, как мне кажется, не нужно. А вот "поделить" планы обмена на стороне 1С придется. Теоретически, это можно сделать через "Узел обмена товарами". А практически, надо смотреть свяжется ли расписание, узел обмена и настройка каталогов в одно целое. Если да - хорошо, если нет - нужно будет колдовать в 1С.
Артемий Зайцев пишет: У меня в 1С будет настроено два разных обмена: - оба обмена будут выгружать товары на один и тот же сайт, но в разные каталоги. - 1С общая.
А можно скрин настроек на разные каталоги? Что-то мне подсказывает, что, вообще, ничего делать не надо
Alexey Andreev пишет: Юлия, Вы описывали и дали ссылку на обмен с разными 1С, а здесь 1С общая.
А Битриксу на самом деле разницы нет - одна информационная база 1С или несколько. Если, к примеру, 1С-ники на своей стороне захотят и сделают, чтобы из одной ИБ 2 обмена одновременно шли - то компонент импорта на стороне сайта, кастомизированный так, как я описала - их без проблем примет.
Теоретически 1С в серверном варианте вполне себе может выполнять несколько обменов с одним и тем же сайтом одновременно. Но при этом, даже если товары грузятся в разные каталоги, стандартный компонент импорта не примет данные корректно, потому что по-умолчанию использует одну и ту же временную таблицу для хранения промежуточных данных. Поэтому я и предлагаю кастомизировать компонент на стороне сайта, как указано по ссылке выше, чтобы, в принципе, исключить подобные проблемы.
Русский язык настолько велик и могуч, что под словом "одновременно" можно понимать: - запуск действительно двух разных выгрузок в один и тот же момент. Тогда Ваш вариант. Правда, не понятно, зачем искушать судьбу столь преднамеренно:) - выгрузка в два разных каталога одновременно в один и тот же файл. В этом случае ничего делать не надо.
То, что на скрине - это стандарт, не требующий кастомизаций. Посмотрим, это ли имел в виду автор темы или что-то другое.
Нет не так. Я имел ввиду реально два разных обмена
Так как на скриншоте я естественно предполагал, но не получится.
Должно быть так:
- Выгружаем всю номенклатуру в один инфоблок.с одними настройками отбора для выгрузки на сайт (по остаткам и цене) - Выгружаем всю номенклатуру в другой инфоблок на сайт с другими настройками отбора (по остаткам и цене)
1С общая, обмена два, инфоблока два.
Товары не получится разделить по группам номенклатуры или по видам номенклатуры стандартными средствами. Должны быть пересечения.
- Выгружаем всю номенклатуру в один инфоблок.с одними настройками отбора для выгрузки на сайт (по остаткам и цене) - Выгружаем всю номенклатуру в другой инфоблок на сайт с другими настройками отбора (по остаткам и цене)
в один момент времени или можно по очереди? например, с задержкой 10 минут?
Я бы хотел, чтобы 1С не запускала второй обмен пока идет первый (из-за косяка битрикса с единственной временной таблицей).
Если я тупо настрою расписание: 1 обмен в 00 минут 2 обмен в 30 минут,
то я могу нарваться на частую ситуацию, когда почему-то изменилось много товаров и запустился большой обмен длиннее, чем 30 минут.
Думаю, можно ли в 1С настроить, чтобы обмены не запускались одновременно? Либо воспользуюсь советом Юлии и модифицирую стандартный компонент, там несложно.
Артемий Зайцев пишет: из-за косяка битрикса с единственной временной таблицей
По-моему, не совсем корректно вот так писать, что "косяк в битриксе". В Битриксе - в ядре нет никакого косяка.
Есть класс CIBlockCMLImport. У него есть 2 конструктора.
1й конструктор - по умолчанию - без параметров (и в нем прописано имя временной таблицы по-умолчаниюb_xml_tree), второй конструктор - с параметрами (и в нем можно задать любое имя для этой таблицы - то есть сделать, чтобы для разных обменов оно было разным - эта возможность нам битриксоидами оставлена).
Артемий Зайцев пишет: Я бы хотел, чтобы 1С не запускала второй обмен пока идет первый
Я-бы сделал в 1С константу, например, "ИдетОбмен", если true - не запускать, отодвинуть по времени, пока не станет false Запустился первый обмен - true, закончился - false Есть только один нюанс: если произойдет ошибка, останется false Но и это тоже решаемо без участия эникейщика