SokDobriy, не использовать цикл, если нужна задержка.
function massiv() {
var get_td = document.getElementsByTagName('td'), out = [];
for (var i=0; i < get_td.length; i++) {
for (item in catalog) {
if (get_td[i].firstChild != undefined && catalog[item].model==get_td[i].firstChild.nodeValue && catalog[item].sold == true) {
out.push([
get_td[i].nextSibling,
[
get_td[i].nextSibling.nextSibling.getElementsByTagName('div')[1].getElementsByTagName('input')[0],
catalog[item].sold
],
[
get_td[i].nextSibling.nextSibling.getElementsByTagName('div')[1].getElementsByTagName('input')[1],
catalog[item].price
],
get_td[i].nextSibling.nextSibling.getElementsByTagName('div')[1].getElementsByTagName('a')[0]
])
};
};
};
var i = out.length;
(function re(){
if(!i--) return;
out[i][0].click();
out[i][1][0].value = out[i][1][1];
out[i][2][0].value = out[i][2][1];
out[i][3].click();
setTimeout(re, 3000)
}())
};
Примерно так. Можно само собой и в один проход, но мне лень думать над логикой рекурсии.)
P.S. Вообще на вашем месте яб изучил код самой crm и обращался напрямую к её функциям.