Как из 1С деактивировать(удалить) товары раздела в Битриксе

1. Olga12 181 19.04.16 09:25 Сейчас в теме
УТ10.3 Модуль интеграции с Битрикс 5. В 1с товары разложены по папкам Брендам. При выгрузки в Битрикс накладывается отбор по группе брендов(или одному бренду), выгружаются только изменения. При этом товары, которых нет в выгрузке все равно остаются на сайте, хотелось бы деактивировать(или удалить) такие товары, или например, сначала деактивировать раздел - соответствующий бренду а потом загружать. При полной выгрузки товары на сайте, которых нет в файле деактивируются, но полная выгрузка идет очень долго много позиций. В настройках Битрикса установлено Что делать с товарами, отсутствующими в файле импорта - Ничего Что делать с группами, отсутствующими в файле импорта - Ничего Деактивация при полной выгрузки идет http запросом по дате "ПараметрЗапросаHTTP_ДеактивацияДанныхПоДате" , "&mode=deactivate", а как сделать по разделу?
Вознаграждение за ответ
Показать полностью
Найденные решения
3. torch 128 19.04.16 09:36 Сейчас в теме
Стандартно "деактивация" товара в каталоге Битрикс происходит, когда в 1С ставится отметка удаления на товаре. Я поборол это так: в товар добавил свойство "Показывать в каталоге сайта" (тип булево) и первоначально всем товарам поставил этот признак = Истина. Когда пользователь убирает галку с этого свойства, то система автоматически регистрирует, что произошли изменения в карточке товара. Следовательно товар будет в следующей выгрузке на сайт. А вот теперь надо немного подправить "Модуль интеграции с Битрикс 5" Признак активации товара ставится не по тому, стоит или не стоит пометка удаления, а по моему новому признаку "Показывать в каталоге сайта"
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
13. Xershi 1484 19.04.16 10:25 Сейчас в теме
(1) kn, речь идет о справочнике номенклатура?
Как написали в (3) активность справочника на сайте по умолчанию определяется пометкой на удаление.
Мы тоже завели регистр сведений "ОтображатьНаСайте". И вот когда есть запись в регистре со значением "ИСТИНА", тогда эта пометка тоже будет ставиться в "ИСТИНА".
Главное это прописать в модуле и в плане обмена.

Там сложный запрос, но через отладку получите итоговый, а потом через текстовые редакторы и конечный запрос составите и отладите. Ну или сразу ручками, если квалификация позволяет писать запрос с головы и правильно!
2. Olga12 181 19.04.16 09:29 Сейчас в теме
Добавлено вознаграждение за ответ.
3. torch 128 19.04.16 09:36 Сейчас в теме
Стандартно "деактивация" товара в каталоге Битрикс происходит, когда в 1С ставится отметка удаления на товаре. Я поборол это так: в товар добавил свойство "Показывать в каталоге сайта" (тип булево) и первоначально всем товарам поставил этот признак = Истина. Когда пользователь убирает галку с этого свойства, то система автоматически регистрирует, что произошли изменения в карточке товара. Следовательно товар будет в следующей выгрузке на сайт. А вот теперь надо немного подправить "Модуль интеграции с Битрикс 5" Признак активации товара ставится не по тому, стоит или не стоит пометка удаления, а по моему новому признаку "Показывать в каталоге сайта"
4. splitter01 3 19.04.16 09:39 Сейчас в теме
(3) torch, А в модуле обмена наверняка тоже были внесены изменения?
15. Olga12 181 20.04.16 06:39 Сейчас в теме
Большое спасибо всем отвечавшим, решилось как описано в (3).
16. Akbis 54 02.08.17 13:12 Сейчас в теме
(3) Подход работает, все хорошо.

Но при обновлении остатка в 1С товар вновь Активируется на сайте.
Как решили эту проблему?
18. art8316 9 18.01.20 19:29 Сейчас в теме
(3)

А может кто подскажет более конкретно что нужно в модуле подправить? Или готовый текст сбросит? А то увы самый важный вопрос остался неясным((.
19. kasim1c 01.04.20 17:23 Сейчас в теме
(18)

Общий модуль "Б_ПроцедурыИФункцииВыгрузкиДанныхНаСайт"
Функция СформироватьВременныеТаблицыПоИнформацииОТоварахПакета(...
	...
	ТекстЗапроса =   "ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	Номенклатура.Ссылка КАК Номенклатура
	|ПОМЕСТИТЬ ВремНоменклатураОтбор
	...
	|	ВремНоменклатураОтбораИкомплектов.Номенклатура.Набор КАК Набор,
	|	ВремНоменклатураОтбораИкомплектов.Комплектующая КАК ЭтоКомплектующая,
	// ++ {
	|	ВремНоменклатураОтбораИкомплектов.Номенклатура.ksm_ПоказыватьВКаталогеСайта КАК ПоказыватьВКаталогеСайта
	// ++ }
	|ПОМЕСТИТЬ ВремНоменклатура
	|ИЗ
	...
КонецФункции

Процедура ВыгрузитьТоварыXDTO(....
	...
	Для каждого ТекТовар из ТзнТоваров Цикл
		...
		// ++ {
		//XDTOТовар.ПометкаУдаления 	= XMLСтрока(ТекТовар.ПометкаУдаления);
		XDTOТовар.ПометкаУдаления 	= XMLСтрока(Не ТекТовар.ПоказыватьВКаталогеСайта);
		// ++ }
		...
	КонецЦикла;
	...
КонецПроцедуры
Показать
5. torch 128 19.04.16 09:43 Сейчас в теме
По-моему основные алгоритмы "Модуль интеграции с Битрикс 5" заложены в двух общих модулях, которые прописываются в конфигурацию при установке Битрикса, названия начинаются на "Б_...чего-то-там". Именно в этих модулях и надо менять
6. Olga12 181 19.04.16 09:44 Сейчас в теме
Интересный способ - в этом случае тоже получается что выгружать надо все товары Папки, сейчас выгружаю только с ценой и наличием на складе и основным изображением.А торговые предложения при деактивации товара при этом деактивируются?
7. torch 128 19.04.16 09:49 Сейчас в теме
Как раз в этом случае и НЕ НАДО ВЫГРУЖАТЬ ВСЕ ТОВАРЫ, т.к. будут выгружать только изменения (включить/выключить активацию товаров). Торговые предложения аналогично
8. Olga12 181 19.04.16 09:50 Сейчас в теме
Еще нюанс по торговым предложениям, допустим были в наличии размеры 36,37,38, потом остались только 36, нужно чтобы 37,38 не отображались, даже крестиком и при фильтре.
9. Olga12 181 19.04.16 09:52 Сейчас в теме
такого добиваемся только предварительной чисткой каталога Битрикс в-ручную перед выгрузкой из 1с
10. torch 128 19.04.16 10:02 Сейчас в теме
По поводу размеров 36, 37, 38... Я бы сделал так. В модуле регистра ОстаткиТоваров при записи можно сделать проверку: если (было <=0, а стало >0,) или (было >0, а стало <=0) то надо просто перезаписать карточку соответствующего товара, чтобы она попала в следующий обмен, а при выгрузке карточки товара выгружать все характеристики (36, 37, 38) с отметками показвать/не показывать в зависимости от остатков товара по эти характеристикам
11. torch 128 19.04.16 10:03 Сейчас в теме
У меня главный критерий - делать "полную выгрузку" как можно реже. Очень долгая процедура...
12. Olga12 181 19.04.16 10:12 Сейчас в теме
torch, идея понятна, буду пробовать, спасибо. Может кто еще что посоветует?
Может можно послать запрос из 1с на деактивацию или удаления раздела?
14. dima1c 44 19.04.16 19:53 Сейчас в теме
Там есть готовая настройка
Что делать с товарами, отсутствующими в файле импорта:
Что делать с группами, отсутствующими в файле импорта:
http://ваш-сайт.ru/bitrix/admin/1c_admin.php?lang=ru
но сам я для себя решил делать доп обработку после обмена, написал скрипт, подсунул к обмену.
17. user944004 04.09.18 14:41 Сейчас в теме
Там есть готовая настройка
Что делать с товарами, отсутствующими в файле импорта:
Что делать с группами, отсутствующими в файле импорта:

не работает , стоит деактивировать. товара не в выгрузке, на сайте он с нулевым остатком стоит активным, так как был выгружен ранее
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот