Ошибка дубликата ID в торговом каталоге Bitrix может быть вызвана несколькими факторами, даже если в таблице `b_catalog_product` с указанным ID отсутствует запись. Возможные причины и шаги для расследования проблемы:
### Возможные причины:
1. **Кэширование**: Битрикс активно использует кэш. Ошибка может быть связана с устаревшими данными в кэше. Убедитесь, что вы очистили кэш сайта, чтобы исключить влияние устаревшей информации.
2. **Проблемы со связью между таблицами**: Возможно, дубликаты могут возникать в других таблицах, связанных с товаром. Например, в таблицах `b_catalog_product2section`, `b_catalog_price`, `b_catalog_product_property` и т.д. Проверьте эти таблицы на наличие записей с идентификатором `139859`.
3. **Проблемы с транзакциями**: Если в системе происходит сразу несколько операций, это может вызвать гонки (race conditions), при которых одно и то же значение ID пытаются вставить одновременно. Это может привести к ошибкам.
4. **Общие таблицы**: Если вы используете многоязычный модуль или модули с общей структурой БД, посмотрите, нет ли проблем в других таблицах, которые ведут к конфликтам.
5. **Сторонние модули**: Возможно, проблема возникает из-за сторонних модулей, которые неправильно работают с базой данных. Выключите назначенные модули и проверьте, сохраняется ли ошибка.
### Шаги для расследования:
1. **Проверка других таблиц**: Выполните выборку из других таблиц, как указано ранее. Например:
```sql
SELECT * FROM b_catalog_product2section WHERE PRODUCT_ID = 139859;
SELECT * FROM b_catalog_price WHERE PRODUCT_ID = 139859;
SELECT * FROM b_catalog_product_property WHERE PRODUCT_ID = 139859;
```
2. **Логи ошибок**: Проверьте логи ошибок Bitrix и MySQL на наличие дополнительных сообщений, которые могут указать на источник проблемы.
3. **Проверка целостности базы данных**: Выполните проверку и коррекцию таблиц базы данных на наличие дубликатов или повреждений:
```sql
CHECK TABLE b_catalog_product;
CHECK TABLE b_catalog_product2section;
-- и так далее для других таблиц
```
4. **Проверка пустых записей**: Убедитесь, что в базе данных нет записей с пустыми значениями, которые могли бы вызвать конфликты.
5. **Тестирование на локальном сервере**: Если возможно, создайте тестовую копию сайта на локальном сервере с информацией из базы данных, чтобы поэкспериментировать с данными и повторить ошибку.
6. **Обновления и исправления**: Убедитесь, что вы используете последнюю версию Bitrix, так как иногда разработчики исправляют известные ошибки в новых версиях.
Следование этим шагам должно помочь вам выяснить причину возникновения ошибки дубликата ID в торговом каталоге и устранить проблему.