Задача
Копировать товары из одного документа в другой.
Все просто
В карточке документа две кнопки: «Копировать» и «Вставить».
Нажимаете «Копировать» и все позиции документа запоминаются.
Открываете другой документ и жмете «Вставить».
Нюансы
У каждого пользователя МойСклад своя область памяти.
Данные между сотрудниками не пересекаются.
Это не баг, а фича
Можно седелать память общую.
И тогда один сотрудник жмет у себя на компе «Копировать», а второй на удаленке может нажать «Вставить».
Но, клиент выбрал реализацию без этой фичи. Чтобы не пересекались.
Что под капотом?
Два сценария в Нодуль.
Один получает позиции документа и сохраняет в глобальную переменную.
Второй - извлекает данные из глобальной переменной и вставляет в документ.
Сценарий 1
Ловит нажатие кнопки в МоемСкладе. Скачивает позиции документа и складывает их в глобальную переменную в Нодуль.
Скрипт 2
Получает данные из глобальной переменной и обновляет документ.
В обоих сценариях установлены проверки на ошибки на всех этапах.
Минусы
После каждой вставки товаров надо перезагружать вкладку браузера. Чтобы изменения по API отобразились на экране пользователя.