Дмитрий Стрекалов написал: Коллеги подскажите чтобы выгружать свойства частично, можно ли как то настроить на закладке "Свойства" (логично было бы иметь колонку "Выгружать"да нет.) Или только через отбор настраивается ?
Уважаемые разработчики модуля выгрузки из 1С. Под рукой модуль 6.0.3.4 и УТ 11.2, смотрю код выгрузки. Заметил оочень странную штуку:
Например, пошла выгрузка общей информации (Операция = "ОбщаяИнформация"). Процедура ФормированиеФайловXMLОбменаДанных(....), далее ниже по коду, для строки каталога:
//Получаем МассивДанных из регистра МассивДанных = ПолучитьДанныеИзРегистраПакетов(ПараметрыОбмена, СтрокаТаблицыКаталогов.ИдентификаторКаталога);
//Передаем в процедуру ВыгрузитьОбщуюИнформацию(...) ВыгрузитьОбщуюИнформацию(ПараметрыОбмена, МассивДанных, Операция, СтрокаТаблицыКаталогов, СтрокаКаталога);
Захожу в данную процедуру и вижу снова: МассивДанных = ПолучитьДанныеИзРегистраПакетов(ПараметрыОбмена, СтрокаТаблицыКаталогов.ИдентификаторКаталога);
Что за прикол? При этом почти для каждой операции (Товары,Свойства и тд) так.
Если в конце обмена 1С отсылает запрос на деактивацию не выгруженных товаров - значит полная.
У нас другая проблема:
При использовании нового модуля деактивируются все товары, которых нет в пакете. Например, делается полная выгрузка состоящая из трех пакетов по пять товаров, при этом на сайте уже есть эти пятнадцать товаров(то есть повторная полная выгрузка).
Выгрузился первый пакет, в котором 5 товаров - деактивируются остальные десять. Выгрузился второй пакет, в котором 5 товаров - деактивируются остальные десять, в том числе пять предыдущих. Выгрузился третий пакет, в котором 5 товаров - деактивируются остальные десять, то есть все предыдущие.
В итоге на сайте 5 активных товаров и 10 не активных(деактивация выставлена в настройках "Интеграции с 1С").
В коде /bitrix/components/bitrix/catalog.import.1c видно, что на восьмом шаге $NS["STEP"] == 8 импорта происходит дективация товаров:
Код
$obCatalog = new CIBlockCMLImport;
$obCatalog->Init($NS);
$result = $obCatalog->DeactivateElement($arParams["ELEMENT_ACTION"], $start_time, $arParams["INTERVAL"]);
Насколько я понимаю, эта логика используется для поддержки старого модуля обмена.
При этом есть дективация здесь, видимо для нового модуля:
То есть получается что в нашем случае работает логика для старого модуля и для нового.
Как исправить проблему? Как сайта "понимает", что не нужно на восьмом шаге импорта деактивировать товары?
Столкнулся с подобной проблемой! УПП, модуль последний. Выгружается 2 пакета, так вот товары из 1 пакета при полной обмене деактивируются (галка стоит - деактивировать при полном обмене), на сайте только товары 2-го пакета видимы. Как исправить?
Ирек Ахметшин написал: Добрый день! Как можно сделать чтобы номеклатуры с типом Услуга не выгружались в торговый каталог. Все таки это не товар, хотя можно и предлагать в интернет-магине. Только это надо делать в другом инфоблоке, а не на ряду с обычными товарами. Услуги не имееют количества, нет фото (как правило), нужно согласовывать с мастером, за частую не возможно сделать доставку и т.д.
Раиса Попова написал: Добрый день. Присоединяюсь к данному обществу. Может кто подскажет, как дописать модуль ОбменССайтом. База УТ 10.3.36,1, Обмен 6.0.3.4. Вообще не обнаружила перенос остатков.
Какая у вас проблема? С выгрузкой остатков для УТ 10.3 модуль 6.0.3.4 нет ничего сложного. Какая у вас проблема? Какие настройки? В настройках можно указать общий отбор по остаткам и можно указать галкой для выгрузки предложений (что выгружаем только те, что больше 0).
Владимир Матлай написал: 1. Этой строчки там нет (Функция НайтиРеглЗаданиеПоПараметру()), есть "попытка", но и она не помогает. 2. Пробовал прикрутить УстановитьПривилегированныйРежим(Истина) - не помогает! 3. Помогло вынесение кода получения регламентного задания в привилегированный общий модуль. Но и с ним потом вылезла другая ошибка, которую не поборол. Полученное регламентное задание почему-то не хотело перезаписываться. Вообщем наделил Б_Роль правами администрирования, но это совсем не хорошо!
Илья написал: Все нашел ответ. Вот здесь http://dev.1c-bitrix.ru/support/forum/forum26/topic33647/ Смысл в том, что в offers.xml (если фото различаются по товарным предложениям) или в import.xml (если не различаются) добавить несколько элементов <Картинка> то они загружаются в базу первая фото - это основная, остальные загрузятся в MORE_PHOTO кажется так свойство называется
Я делал так:
В import, где товары свойства так выглядят, при этом ИД - CML2_PICTURES:
Александр Денисюк написал: Перед этой строкой разве нет: УстановитьПривилегированныйРежим(Истина)
? По идеи, пока привилегированный режим - проверка прав не происходит.
1. Этой строчки там нет (Функция НайтиРеглЗаданиеПоПараметру()), есть "попытка", но и она не помогает. 2. Пробовал прикрутить УстановитьПривилегированныйРежим(Истина) - не помогает! 3. Помогло вынесение кода получения регламентного задания в привилегированный общий модуль. Но и с ним потом вылезла другая ошибка, которую не поборол. Полученное регламентное задание почему-то не хотело перезаписываться. Вообщем наделил Б_Роль правами администрирования, но это совсем не хорошо!
Доброго всем времечка! УПП, модуль последний. Включил и настроил расписание регламентного задания по обмену, теперь пользователь не с админскими правами не может открыть настройку обмена: "Нарушение прав доступа". Смотрю,что при открытии вызывается строка: РегламентныеЗадания.НайтиПоУникальномуИдентификатору(...), так данный метод доступен только для администратора. Придётся для Б_Роль давать права администрирования? Нелогично как-то...
Модуль версии 6.0.3.4, УПП 1.3. Очень неприятная особенность заполнения дерева групп каталога. При начальном заполнении этого и не заметишь, но когда заполнили полностью дерево (несколько десятков групп и чуть более 2000 позиций) открытие формы заполнения дерева групп стало очень тормозить. К слову, список номенклатуры заполнялся исключительно позициями (без групп). Анализ проблемы выявил, что основное время затрачено на обновление кэша номенклатуры (Процедура: ОбновитьКэшНоменклатуры), а точнее процедура: ДобавитьСсылкуНоменклатурыВКэш, там получение реквизита ЭтоГруппа через точку (НоменклатураСсылка.ЭтоГруппа) сжирает невероятное количество времени. В нашем случае, как я говорил группы не используются. Это дело я закомментировал, поставил заглушку, чтобы не было возможности добавлять группы (на всякий случай) и стало гораздо легче дышать.
И ещё "Отчет по номенклатуре дерева групп" - это что-то.. При таком дереве (описано выше) это просто неработоспособный отчет, кнопку нажал и повис навсегда..
UPD: Также при выгрузке замечено падение производительности, при формировании списка дерева групп и добавлении товаров в регистр пакета (Когда Операция <> "Свойства" и мКлассифицироватьПоДеревуГрупп):
При этом не зависит полная или частичная выгрузка. И вызывается процедура не один раз. На моих данных (несколько десятков групп и чуть более 2000 позиций в дереве, порядка 15 позиций в выгрузке) результат лога при совершенно одинаковых выгрузках получился следующим: ДО: Начало выгрузки 16:24:23 Конец 16:36:46 ПОСЛЕ: Начало выгрузки 16:52:35 Конец 16:53:45
ДО - означает до внесения изменений в типовой код формирования выгрузки.