API Яндекс Маркета в 1С: ошибки 400, 401, 403, 429 и решения
Ошибки при выгрузке товаров из 1С на Яндекс Маркет — 400, 401, 403, 429 — возникают из-за устаревших модулей, неверных токенов или нарушений в структуре запроса. Разбираем каждый код с конкретным решением.
В чём проблема
Основная причина ошибок YandexMarket API в 1С — нестыковка между текущей версией API и используемыми модулями обмена. После обновления API 09.11.2023 многие конфигурации перестали корректно работать без правок. Проблемы делятся на несколько категорий: авторизация, данные, лимиты и специфика версий 1С:УТ 11 и 1С:Бухгалтерия 3.0.
Коды ошибок API возвращаются в поле errors с параметрами code и message. Если ошибок много, приходит уведомление в личный кабинет продавца.
Пошаговое решение
1. Проверка авторизации и токенов
Первое, что нужно сделать при любой ошибке 401 или 403 — проверить токен авторизации. Для 1С:Бухгалтерия 8 начиная с версии 3.0.167 рекомендуется использовать Api-Key вместо OAuth-токена. Переходим в личный кабинет YandexMarket → «Настройки» → «Интеграция» и генерируем новый Api-Key.
В конфигурации 1С проверяем профили обмена: Авошоп → Обмен с Маркетплейсами → Обмен 1С заказами/товарами с Яндекс Маркет. Ключевые параметры: Id склада, Api-key и Business-id. Без корректного Id склада из личного кабинета (Логистика → Склады) обмен не пройдёт даже при правильном токене.
2. Обновление модулей обмена
После изменений в API обязательна актуализация модулей. Для 1С:УТ 11 используйте обновлённый модуль Авошоп версии 9.8.2 от ноября 2023. Это критично — старые версии не поддерживают новые эндпоинты и возвращают ошибки 500 Internal Server Error даже при корректных запросах.
Проверить текущую версию можно в списке установленных расширений. Если модуль не обновлён — скачайте актуальную версию и установите через обработку загрузки расширений в 1С.
3. Основные коды ошибок и их решение
Самая распространённая ошибка — пустые параметры. Сообщение 'field' must not be empty указывает на незаполненный обязательный элемент. В 90% случаев это Id склада или offerId. Проверьте в профиле обмена, что все поля заполнены.
Токен авторизации не сработал: истёк срок, отозван или изменены права доступа. Решение: сгенерируйте новый Api-Key в личном кабинете и обновите токен в 1С. Если используется OAuth — проверьте scopes.
Доступ запрещён даже при валидном токене. Возможные причины: токен применён к неверному магазину (FBS vs FBO), у учётной записи нет прав на конкретный метод API. Для FBO-модели убедитесь, что метод поддерживается именно для неё.
Магазин превысил лимит запросов. Яндекс.Маркет не использует код 420. Правильный код ограничения запросов — HTTP 429 Too Many Requests. В конфигурации 1С часто забывают уменьшать параллелизм при массовой загрузке. Решение: увеличьте паузу между запросами в обработке или разбейте пакет на группы по 50–100 товаров.
Метод недоступен для текущего магазина. Обычно связано с миграцией бизнеса или изменением модели ценообразования. Если магазин перешёл на динамические цены, а в 1С стоит флаг «использовать только базовые цены» — API вернёт 423.
Серверная ошибка со стороны YandexMarket. Рекомендуется пауза 5–10 минут, затем повтор запроса. Если ошибка повторяется систематически — откройте заявку в техподдержку с кодом и временем запроса.
4. Специфика конфигураций
1С:УТ 11.5 и 1С:Бухгалтерия 3.0. Если обмен между УТ и Бухгалтерией настроен некорректно, данные не доходят до API. Проверьте правила обмена, особенно регистры накопления и бухгалтерии.
SKU и остатки. Все товары в YandexMarket привязываются к SKU. В 1С:УТ 11 нужно настроить соответствие между номенклатурой и SKU через справочник «Номенклатура маркетплейсов». Если остаток равен нулю — товар автоматически скрывается. Используйте флаг «Скрывать товары с остатком 0» в настройках обмена.
5. Частые проблемы
- После смены пароля основного Яндекс-аккаунта все токены API Маркета аннулируются — необходимо перегенерировать токен в настройках кабинета продавца. Повторно авторизуйтесь в обработке обмена и сгенерируйте новый токен приложения.
- Товар загружается, но отсутствует в личном кабинете. Проверьте, указан ли
business_id. Без него товар попадает в общий каталог, но не в ваш магазин. - Ошибка «Collection of field must not be empty» при отправке остатков. В запросе не передан
Id склада. Даже если у вас один склад, API требует явного указания.
Когда это не помогает
Если перечисленные шаги не решают проблему — проверяйте логи обмена в 1С. В разделе «Проблемы» на its.1c.ru отображаются детальные ошибки с указанием строки и поля запроса. Это позволяет точно идентифицировать, на каком этапе «поехал» маппинг.
Для сложных случаев используйте официальное расширение «Обмен с Яндекс.Маркетом» (доступно на 1С:ИТС для подписчиков). Оно автоматически обрабатывает специфику API и минимизирует ручную настройку.
Читайте также