Автогенерация для новых товаров
Задача: контент-менеджер заводит новый товар (вручную или импортом), а описание и мета-теги должны появиться сами, без похода в настройки модуля. При этом товары, у которых описание уже есть, трогать нельзя.
Сложность: средне. Шагов: 1–2 (любой готовый конвейер).
Короткая версия этого рецепта — последний шаг пошаговой настройки: «Новые товары — автоматически». Здесь — подробности, второй вариант со свойством-флагом и разбор ошибок.
Что получится
- Менеджер сохраняет новый товар «Стиральная машина AquaLine 7» без описания.
- Модуль сам ставит его в очередь, и при следующем запуске агента — обычно в пределах минуты-двух — заполняет «Детальное описание» и «Анонс».
- Если менеджер уже вписал описание сам, модуль его не перезапишет.
Главное правило: «без описания» — это режим записи, а не фильтр
Хочется сделать фильтр «Детальное описание пусто». Так делать не нужно, и вот почему:
- страница «Элементы» и плитки дашборда показывают только записи, которые сейчас попадают в фильтр;
- как только модуль напишет описание, товар перестанет быть «пустым», выпадет из фильтра и исчезнет из списка — вы не увидите ни статус, ни результат;
- к тому же в фильтре источника нет условия «пусто / заполнено».
Правильная связка:
| Задача | Чем решается |
|---|---|
| Какие товары вообще обрабатывать | Фильтр по стабильному признаку: раздел каталога, тип товара, служебный флаг |
| Не трогать готовые описания | Режим записи «Не трогать» в блоке «Запись результата» каждого шага |
| Запускать генерацию для новых товаров | «Захват событий» → «Ставить в очередь при создании» |
С режимом «Не трогать» модуль запишет ответ, только если поле пустое. Товар с готовым описанием останется как был.
Вариант 1. Простой: генерация при создании
Настройки
- Профиль «Элемент инфоблока» с каталогом — см. Источник данных.
- Фильтр — например, только разделы с бытовой техникой. Без критериев под фильтр попадёт весь инфоблок.
- На странице «Основное», вкладка «Захват событий»:
- «Ставить в очередь при создании» — включить;
- «Ставить в очередь при обновлении» — оставить выключенным.

- Агент очереди установлен — на «Дашборде», карточка «Агент очереди», статус «Активен». Если агента нет, нажмите там «Установить». Без него очередь не движется.
Конвейер
Возьмите конвейер из рецепта «Описание товара» или из пошаговой настройки — анонс и SEO-поля — и проверьте в каждом шаге:
| Настройка | Значение |
|---|---|
| Если в поле уже что-то есть | Не трогать |
| Проверять вручную перед записью | на первые недели — включить, потом можно снять |
Готово: каждый новый товар, подходящий под фильтр, один раз попадёт в очередь. Редактирование карточки после этого генерацию не перезапускает.
Вариант 2. По команде: свойство «Статус генерации»
Подходит, если товар заводят «в несколько заходов»: сначала название, потом фото и характеристики, — и генерировать нужно, только когда карточка готова. Тогда вы сами решаете, когда товар уходит в генерацию.
- В инфоблоке создайте свойство-список «Статус генерации» со значениями «Не генерировать», «В очередь», «Успешно».
- В фильтре добавьте критерий: «Статус генерации» равно «В очередь».
- В «Захвате событий» включите оба переключателя — при создании и при обновлении.
- Новый товар создавайте со статусом «Не генерировать» — модуль его не трогает, пока вы заполняете карточку.
- Когда карточка готова, переключите статус на «В очередь» и сохраните — товар уйдёт в генерацию и появится на странице «Элементы».
- Проверив результат, переведите статус в «Успешно». Товар покинет фильтр — но по вашему решению.
Этот флаг меняете вы, а не модуль, поэтому правило стабильного фильтра не нарушается. Подробнее — Захват событий.
При сохранении товар встаёт в очередь, только если он проходит фильтр и по нему ещё нет успешной генерации в этом профиле. Уже обработанный товар от правки цены или импорта остатков в очередь заново не попадёт. Чтобы перегенерировать такой товар, откройте его на странице «Элементы» и нажмите «Перезапустить».
Без свойства-флага «Ставить в очередь при обновлении» отправит в очередь каждый ещё не обработанный товар под фильтром при любом его сохранении — руками, импортом, другим модулем. Если в каталоге тысячи старых товаров, одна выгрузка из 1С поставит их все. Включайте этот режим вместе с флагом или когда так и задумано.
Как протестировать
- Сначала отладьте сам конвейер на странице «Тестирование» на уже существующем товаре.
- Создайте тестовый товар в разделе, который попадает в фильтр, и сохраните.
- Откройте страницу «Элементы» и нажмите «Обновить» — товар должен появиться в статусе «В очереди» или «В работе», а затем «Готово». Если в шагах включена ручная проверка, он попадёт и в фильтр «Требует проверки».
- Создайте второй товар с уже заполненным описанием — после обработки его описание должно остаться прежним.
- Удалите тестовые товары, когда закончите.
Сколько стоит
Ровно столько, сколько стоит выбранный конвейер на один товар, — и только для новых товаров. Режим «Не трогать» не экономит на запросе: модель всё равно отвечает, просто ответ не записывается в заполненное поле. Если в каталоге много товаров с готовыми описаниями, лучше сузить фильтр по разделам или использовать вариант 2 со статусом.
Типичные ошибки
| Симптом | Причина и решение |
|---|---|
| Новый товар не появился на странице «Элементы» | Товар не проходит фильтр или выключен «Ставить в очередь при создании». Проверьте раздел товара и критерии фильтра |
| Товар в очереди, но не обрабатывается | Агент очереди не установлен или агенты Битрикса работают «на хитах». Передайте администратору — см. Очередь застряла |
| Товар пропал из списка сразу после генерации | В фильтре стоит условие по полю, которое заполнил модуль. Фильтруйте по стабильным признакам |
| После импорта в очередь встали старые товары | Включён «Ставить в очередь при обновлении», а старые товары ещё ни разу не обрабатывались. Выключите захват при обновлении или используйте свойство «Статус генерации» |
| Перезаписались описания, сделанные вручную | В шаге режим «Заменить». Поставьте «Не трогать»; записанное можно вернуть кнопкой «Откатить» в карточке товара — см. Проверка и откат результата |