Как из 1С деактивировать(удалить) товары раздела в Битриксе
УТ10.3 Модуль интеграции с Битрикс 5. В 1с товары разложены по папкам Брендам. При выгрузки в Битрикс накладывается отбор по группе брендов(или одному бренду), выгружаются только изменения. При этом товары, которых нет в выгрузке все равно остаются на сайте, хотелось бы деактивировать(или удалить) такие товары, или например, сначала деактивировать раздел - соответствующий бренду а потом загружать. При полной выгрузки товары на сайте, которых нет в файле деактивируются, но полная выгрузка идет очень долго много позиций. В настройках Битрикса установлено Что делать с товарами, отсутствующими в файле импорта - Ничего Что делать с группами, отсутствующими в файле импорта - Ничего Деактивация при полной выгрузки идет http запросом по дате "ПараметрЗапросаHTTP_ДеактивацияДанныхПоДате" , "&mode=deactivate", а как сделать по разделу?
Найденные решения
Стандартно "деактивация" товара в каталоге Битрикс происходит, когда в 1С ставится отметка удаления на товаре. Я поборол это так: в товар добавил свойство "Показывать в каталоге сайта" (тип булево) и первоначально всем товарам поставил этот признак = Истина. Когда пользователь убирает галку с этого свойства, то система автоматически регистрирует, что произошли изменения в карточке товара. Следовательно товар будет в следующей выгрузке на сайт. А вот теперь надо немного подправить "Модуль интеграции с Битрикс 5" Признак активации товара ставится не по тому, стоит или не стоит пометка удаления, а по моему новому признаку "Показывать в каталоге сайта"
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) kn, речь идет о справочнике номенклатура?
Как написали в (3) активность справочника на сайте по умолчанию определяется пометкой на удаление.
Мы тоже завели регистр сведений "ОтображатьНаСайте". И вот когда есть запись в регистре со значением "ИСТИНА", тогда эта пометка тоже будет ставиться в "ИСТИНА".
Главное это прописать в модуле и в плане обмена.
Там сложный запрос, но через отладку получите итоговый, а потом через текстовые редакторы и конечный запрос составите и отладите. Ну или сразу ручками, если квалификация позволяет писать запрос с головы и правильно!
Как написали в (3) активность справочника на сайте по умолчанию определяется пометкой на удаление.
Мы тоже завели регистр сведений "ОтображатьНаСайте". И вот когда есть запись в регистре со значением "ИСТИНА", тогда эта пометка тоже будет ставиться в "ИСТИНА".
Главное это прописать в модуле и в плане обмена.
Там сложный запрос, но через отладку получите итоговый, а потом через текстовые редакторы и конечный запрос составите и отладите. Ну или сразу ручками, если квалификация позволяет писать запрос с головы и правильно!
Стандартно "деактивация" товара в каталоге Битрикс происходит, когда в 1С ставится отметка удаления на товаре. Я поборол это так: в товар добавил свойство "Показывать в каталоге сайта" (тип булево) и первоначально всем товарам поставил этот признак = Истина. Когда пользователь убирает галку с этого свойства, то система автоматически регистрирует, что произошли изменения в карточке товара. Следовательно товар будет в следующей выгрузке на сайт. А вот теперь надо немного подправить "Модуль интеграции с Битрикс 5" Признак активации товара ставится не по тому, стоит или не стоит пометка удаления, а по моему новому признаку "Показывать в каталоге сайта"
(18)
Общий модуль "Б_ПроцедурыИФункцииВыгрузкиДанныхНаСайт"
Общий модуль "Б_ПроцедурыИФункцииВыгрузкиДанныхНаСайт"
Функция СформироватьВременныеТаблицыПоИнформацииОТоварахПакета(...
...
ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Номенклатура.Ссылка КАК Номенклатура
|ПОМЕСТИТЬ ВремНоменклатураОтбор
...
| ВремНоменклатураОтбораИкомплектов.Номенклатура.Набор КАК Набор,
| ВремНоменклатураОтбораИкомплектов.Комплектующая КАК ЭтоКомплектующая,
// ++ {
| ВремНоменклатураОтбораИкомплектов.Номенклатура.ksm_ПоказыватьВКаталогеСайта КАК ПоказыватьВКаталогеСайта
// ++ }
|ПОМЕСТИТЬ ВремНоменклатура
|ИЗ
...
КонецФункции
Процедура ВыгрузитьТоварыXDTO(....
...
Для каждого ТекТовар из ТзнТоваров Цикл
...
// ++ {
//XDTOТовар.ПометкаУдаления = XMLСтрока(ТекТовар.ПометкаУдаления);
XDTOТовар.ПометкаУдаления = XMLСтрока(Не ТекТовар.ПоказыватьВКаталогеСайта);
// ++ }
...
КонецЦикла;
...
КонецПроцедуры
Показать
По-моему основные алгоритмы "Модуль интеграции с Битрикс 5" заложены в двух общих модулях, которые прописываются в конфигурацию при установке Битрикса, названия начинаются на "Б_...чего-то-там". Именно в этих модулях и надо менять
Интересный способ - в этом случае тоже получается что выгружать надо все товары Папки, сейчас выгружаю только с ценой и наличием на складе и основным изображением.А торговые предложения при деактивации товара при этом деактивируются?
По поводу размеров 36, 37, 38... Я бы сделал так. В модуле регистра ОстаткиТоваров при записи можно сделать проверку: если (было <=0, а стало >0,) или (было >0, а стало <=0) то надо просто перезаписать карточку соответствующего товара, чтобы она попала в следующий обмен, а при выгрузке карточки товара выгружать все характеристики (36, 37, 38) с отметками показвать/не показывать в зависимости от остатков товара по эти характеристикам
Там есть готовая настройка
Что делать с товарами, отсутствующими в файле импорта:
Что делать с группами, отсутствующими в файле импорта:
http://ваш-сайт.ru/bitrix/admin/1c_admin.php?lang=ru
но сам я для себя решил делать доп обработку после обмена, написал скрипт, подсунул к обмену.
Что делать с товарами, отсутствующими в файле импорта:
Что делать с группами, отсутствующими в файле импорта:
http://ваш-сайт.ru/bitrix/admin/1c_admin.php?lang=ru
но сам я для себя решил делать доп обработку после обмена, написал скрипт, подсунул к обмену.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот