Дано
Два аккаунта МойСклад с одинаковой номенклатурой.
В первом делается отгрузка.
В втором надо создать приемку с теми же позициями.
Нюансы
Наименования товаров одинаковые.
Коды маркировки также надо перенести.
Перенос должен работать в обе стороны.
Требуется
Кнопка "Копировать" в отгрузках первого аккаунта.
Кнопка "Вставить" в приемках второго аккаунта.
Решение
Уже есть похожее – копирует позиции между документами в рамках одного аккаунта.
Будем лепить на его основании. Только добавится один блок: «Поиск товара по названию».
Копировать в память
Тут все просто
Вставить из памяти
Затык
Все хорошо работает на тестовом аккаунте.
На боевом в документе 670 позиций и сценарий «задыхается».
Вставка работает примерно 15 минут. Такое себе.
При вставке, каждая позиция по имени ищется во втором аккаунте МойСклад через API.
670 запросов к API никак нельзя оптимизировать :(
Копаем дальше.
💡 Мысль
Надо предварительно выкачать все наименования из МоегоСклада.
Засучили рукава. Пилим.
Каждый час в 00 и в 05 минут выкачиваем по API все 15 000 товаров из каждого аккаунта в глобальную переменную.
Лайфхак. Во время скачивания наполняется временная переменная. Как докачали - заменяем ей главную переменную. Это позволяет не прерывать работу вставки
Глобальные переменные
выглядят так
Переделываем сценарий «Вставка»
Теперь вставка происходит за 5 сек. Все довольны!
Спасибо за внимание 🙏