структура странная так просто с ней не поработаешь (решение примерное)
перед присвоением container.innerHTML нужно подготовить данные для параллельного прохода по ним:
const nachisleno = responseData.find(i => i.НАЧИСЛЕНО).НАЧИСЛЕНО;
const uderzhano = responseData.find(i => i.УДЕРЖАНО).УДЕРЖАНО;
const upperRows = function*(){
for (let i = 0; i < Math.max(nachisleno.length, uderzhano.length); i += 1) {
yield [ nachisleno[i] ?? {}, uderzhano[i] ?? {}, ];
}
};
а потом внутри шаблонной строки
responseData.map()
заменить на
${Array.from(upperRows()).map(item => {
const видНачисления = item[0]["ВидНачисления"] || "";
const периодНачисления = item[0]["ПериодНачисления"] || "";
const отработанныеДни = item[0]["ОтработанныеДни"] || "";
const отработанныеЧасы = item[0]["ОтработанныеЧасы"] || "";
const оплаченныеДни = item[0]["ОплаченныеДни"] || "";
const оплаченныеЧасы = item[0]["ОплаченныеЧасы"] || "";
const суммаНачисления = item[0]["СуммаНачисления"] || "";
const видУдержания = item[1]["ВидУдержания"] || "";
const периодУдержания = item[1]["ПериодУдержания"] || "";
const суммаУдержания = item[1]["СуммаУдержания"] || "";
return `
<tr>
<td class="tg-jxgv">${видНачисления}</td>
<td class="tg-l38m" colspan="2">${периодНачисления}</td>
<td class="tg-l38m">${отработанныеДни}</td>
<td class="tg-l38m">${отработанныеЧасы}</td>
<td class="tg-l38m">${оплаченныеДни}</td>
<td class="tg-l38m">${оплаченныеЧасы}</td>
<td class="tg-l38m">${суммаНачисления}</td>
<td class="tg-jxgv" colspan="3">${видУдержания}</td>
<td class="tg-jxgv" colspan="2">${периодУдержания}</td>
<td class="tg-l38m" colspan="2">${суммаУдержания}</td>
</tr>
`;
}).join('')}