Разработка 4 мин чтения

Интеграция испортила карточки в МойСклад: как откатить

После сбоя обмена с сайтом, 1С или маркетплейсом карточки товаров в МоёмСкладе могут оказаться перезаписаны. Разбираю, что сделать в первый час, что есть в аудите и справке для отката, как устроен скрипт возврата значений и как не допустить повторения.

МойСкладоткат измененийрезервное копированиеинтеграции
Коротко. Если интеграция перезаписала артикулы, названия, НДС, группы или штрихкоды товаров в МоёмСкладе, сначала остановите её, не правьте карточки руками и выгрузите товары в Excel. Старые значения лежат в аудите: он хранит прежнее и новое значение изменённых полей, по нему пишется скрипт отката. Вернуть он может не всё и не со стопроцентной точностью, поэтому сначала сухой прогон на нескольких товарах. От повторения защищают тестовая группа товаров, отдельная учётка для интеграции и ежедневная выгрузка карточек в файл.

Выгрузка отработала, а карточки уже не те

Утром в каталоге у сотен товаров поменялись артикулы, у части пропали штрихкоды, у части появились чужие, в описаниях другой текст, а НДС стоит не тот. Накануне запускали обмен с сайтом, маркетплейсом или 1С.

Похожую просьбу я видел в июне 2026 года в публичном чате разработчиков МоегоСклада: владельцу срочно нужен был скрипт, который по истории изменений вернёт товарам, затронутым интеграцией, артикул, код, НДС, название, описание, группу и штрихкоды. Со штрихкодами отдельное условие: созданные удалить, удалённые вернуть. В ответ посоветовали сделать это через нейросеть, а он написал, что не программист и боится испортить ещё больше. Почему интеграции вообще ломают данные, разобрано в статье про то, кто виноват, когда интеграция сломалась.

Первый час

1. Остановите интеграцию: выключите расписание обмена или отзовите её доступ. Пока она работает, каждый запуск может перезаписать то, что вы уже исправили.

2. Не правьте карточки руками массово. Откат по истории сравнивает текущее значение с тем, что записала интеграция. Если поверх неё прошёлся человек, скрипту сложнее понять, что можно возвращать.

3. Снимите копию как есть. В разделе «Товары и услуги» есть кнопка «Экспорт», готовый файл лежит в настройках в разделе «Обмен данными». По справке выгружается всё, в том числе товары из архива.

4. Запишите окно: когда начался обмен, когда вы его остановили и под каким сотрудником он ходил. В разделе «Аудит» события фильтруются по пользователю и по типу действия.

Что в МоёмСкладе есть для отката

Я просмотрел справку и документацию JSON API 1.2 (проверено 2 октября 2026). Кнопки «вернуть каталог на вчера» в них я не нашёл. По отзывам пользователей на публичных площадках, жалобы на отсутствие резервного копирования встречаются, а часть отзывов, наоборот, упоминает возможность сделать копию, так что картина разная. Набор инструментов такой.

ИнструментЧто умеетЧего нет
Аудит и ссылка «Изменения» в карточкеХранит события с момента появления аккаунта, удалять их нельзя. В API у события есть поле diff со старым и новым значениемКнопки отката. Общий аудит по умолчанию видят только администраторы
КорзинаУдалённые документы лежат 7 дней, если опция включенаПро карточки товаров в справке я ничего не нашёл, в API корзина описана для документов
АрхивПрячет товар и возвращает обратноИстория значений не ведётся
Экспорт в ExcelРучная выгрузка списка товаровРасписания в справке нет

Как работает откат по истории

Общая схема, как делал бы я. Скрипт ходит в API аудита: список изменений принимает фильтры по времени, пользователю, источнику (для запросов по API это jsonapi) и типу сущности.

Шаг 1. Выбрать события обмена: товары, окно времени, учётка интеграции. По каждому изменённому товару прочитать события с полем diff.

Шаг 2. Для каждого поля взять самое раннее старое значение внутри окна. Это то, что было до интеграции.

Шаг 3. Прочитать текущую карточку. Если значение уже совпадает со старым, пропустить. Если после интеграции его менял другой человек, не трогать и записать в отчёт.

Шаг 4. Сухой прогон: таблица «было, стало, вернём» без записи. Проверить глазами 10-20 товаров.

Шаг 5. Запись пачками. Обновление массивом принимает до 1000 объектов, при ошибке 429 нужна пауза, остаток лимита API отдаёт в заголовках ответа.

Штрихкоды: список записывается целиком, лишние созданные уходят, прежние возвращаются. Скрипт ведёт журнал и сохраняет копию перед правкой, чтобы откат можно было отменить.

Что важно учесть

Стопроцентного отката не обещает никто. Как в diff записаны штрихкоды и длинные описания, в документации примеров нет, а на живых данных я это не проверял. Скрипт возвращает только то, что попало в аудит и что можно записать через API. Удалённый товар с прежним идентификатором не вернуть, а документы, где он стоял, останутся как есть. Остатки, цены и документы не откатываются, пока они не заложены в задачу.

Токену нужны право смотреть аудит (в документации оно по умолчанию выключено) и право править товары. Как глубоко назад хранится аудит, я не нашёл, в справке сказано лишь «с момента появления аккаунта».

Как не допустить повторения

Первое: тестовая группа из 10-20 товаров. Любая новая выгрузка или смена правил идёт сначала на ней. Второе: отдельный сотрудник под интеграцию с минимальными правами, чтобы по аудиту сразу было видно, кто писал. Какие права можно настроить на вашем тарифе, уточните в справке. Третье: лимит на массовые правки в самой интеграции, например остановка, если за запуск меняется больше заданной доли каталога. Такой лимит в МоёмСкладе я не нашёл, его ставят в коде обмена.

Четвёртое: ежедневная выгрузка карточек в файл вне МоегоСклада, хранение за 30 дней и сравнение с вчерашним днём. Это и есть подписка «ежедневный бэкап и откат», которую я могу собрать под задачу, и она сильно упрощает откат: прошлое не нужно собирать по событиям. Общий подход к копиям описан в статье про то, почему резервные копии важнее, чем кажется, а о связке МоегоСклада с сайтом есть отдельный разбор.

Перед массовой выгрузкой спросите исполнителя:

1. По чему он сопоставляет товары: по артикулу, коду, штрихкоду или идентификатору, и что делает, если не нашёл.

2. Какие поля обмен вправе менять, а какие нет, и что он делает со штрихкодами: заменяет список или дополняет.

3. Есть ли сухой прогон и тестовая группа.

4. Кто снимает копию карточек до запуска и где она лежит.

5. Под какой учёткой ходит обмен и как его быстро остановить.

Для разового скрипта пригодится статья про скрипты на заказ, а услуги описаны в разделе автоматизация бизнес-процессов.

Частые вопросы

Можно ли вернуть каталог на вчерашнюю дату одной кнопкой?

В справке и документации такой кнопки я не нашёл. Есть аудит, архив, корзина для документов и экспорт в Excel. Откат собирают скриптом по аудиту или из своей копии.

Удалённый товар можно достать из корзины?

Корзина описана для документов, в API её удаление тоже про документы. Для карточек товаров я нашёл только архив. При удалении товаров смотрите аудит и пишите в поддержку МоегоСклада.

Сколько стоит такой скрипт?

Зависит от числа полей, объёма каталога и от того, нужны ли отчёт и сухой прогон. Цену назову после просмотра выгрузки и аудита.

Коротко о главном

После сбоя обмена остановите интеграцию, снимите копию и не правьте карточки руками. История изменений в МоёмСкладе позволяет написать откат, но стопроцентно он не гарантирован. Чтобы не повторилось, нужны тестовая группа товаров, отдельная учётка, лимит на массовые правки и ежедневная выгрузка в файл.

Хотите, чтобы я посмотрел аудит вашего аккаунта, собрал скрипт отката и настроил ежедневный бэкап карточек? Напишите мне в Telegram слово «БЭКАП».

Услуги по теме

Что я делаю для бизнеса

  • Боты в Telegram, MAX, VK
  • Автоматизация процессов и CRM
  • Аналитика и дашборды
  • Сайты и лендинги под ключ

Бесплатно: чек-лист «Готов ли ваш бизнес к 152-ФЗ»

12 пунктов, которые проверяют готовность за час: данные, согласия, уведомление в РКН, локализация, защита. Отметьте, что уже сделано, и увидите дыры, за которые сейчас штрафуют.

Готовы обсудить вашу задачу?

Бесплатная консультация — разберём, как внедрить это в вашем бизнесе под ключ. Без форм, пишите напрямую.

Пишу о разработке, ИИ и законах для бизнеса

Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.

Готовые решения под ключTurnkey solutionsSoluciones llave en mano交钥匙解决方案Түлхүүр гардуулах шийдэл 451 готовых IT-решений для бизнеса451 ready-made IT solutions for business451 soluciones IT listas para empresas451 个面向企业的现成 IT 解决方案Бизнест зориулсан 451 бэлэн IT шийдэл Автоматизация, боты, AI, 152-ФЗ и платформы · бесплатная консультацияAutomation, bots, AI, data privacy and platforms · free consultationAutomatización, bots, IA, privacidad de datos y plataformas · consulta gratis自动化、机器人、AI、数据合规与平台 · 免费咨询Автоматжуулалт, бот, AI, өгөгдлийн хамгаалалт ба платформ · үнэгүй зөвлөгөө Смотреть каталогView catalogVer catálogo查看目录Каталог үзэх