Fatti
La ricorrente (attrice, appaltatrice) è un'impresa di gessatori e pittori ([A. AG] ). La resistente (convenuta, riconvenzionale, committente ovvero appaltatrice generale) gestisce un'impresa edile ([B. AG] ).
Il 3 dicembre 2014 le parti hanno stipulato un contratto d'appalto per lavori di gessatura su una grande costruzione a un prezzo lordo forfettario di Fr. 1'272'964.96, detratto il 10 % di sconto e il 2 % di sconto cassa, più IVA. È stato incluso un capitolato d'oneri e le parti hanno convenuto, tra l'altro, disposizioni sui lavori in economia (solo con previa autorizzazione scritta della direzione dei lavori, consegna quotidiana dei rapportini; perdita del diritto al compenso in caso di violazione, salvo i casi di emergenza).
La ricorrente ha chiesto dinanzi al Tribunale commerciale del Cantone di Zurigo Fr. 998'580.99 oltre interessi al 5 % dal 18 gennaio 2016. La convenuta ha chiesto il rigetto della petizione e ha proposto una riconvenzionale (Fr. 48'667.75 ovvero, in via subordinata, Fr. 158'667.70 oltre interessi), nonché la consegna di vari documenti (rapportini di lavori in economia e giornalieri, corrispondenza, conteggi, verbali).
Il Tribunale commerciale ha parzialmente accolto la petizione e ha condannato la convenuta al pagamento di Fr. 262'815.70 oltre interessi al 5 % dal 23 aprile 2018 (notifica della petizione). Ha respinto la riconvenzionale. La tassa di giustizia ammontava a Fr. 68'000.--, posta al 55 % a carico della ricorrente e al 45 % a carico della convenuta; la ricorrente doveva versare alla convenuta un'indennità ridotta per ripetibili di Fr. 4'800.--.
La ricorrente ha proposto ricorso in materia civile al Tribunale federale chiedendo l'annullamento dei punti 1, 4 e 5 del dispositivo, il pagamento di Fr. 998'580.99 oltre interessi dal 18 gennaio 2016 e, in via subordinata, il rinvio per l'assunzione di prove. La resistente ha chiesto il rigetto; il Tribunale commerciale ha rinunciato a presentare osservazioni.
Punti controversi: (1) quantità eccedenti; (2) supplementi n. 1–5 (prezzi unitari, carattere di supplemento, richieste probatorie); (3) lavori in economia (rapportini n. 28–50 e 58–92); (4) decorrenza dell'interesse di mora.
Diritto
Ricevibilità: si tratta di una decisione finale (art. 90 LTF). Per i ricorsi contro decisioni dei tribunali commerciali cantonali non è richiesto un valore litigioso minimo (art. 74 cpv. 2 lett. b LTF). Il Tribunale federale esamina solo le violazioni del diritto (art. 95, 96 LTF), è vincolato all'accertamento dei fatti (art. 105 cpv. 1 LTF), e la censura relativa all'accertamento dei fatti è soggetta al rigoroso principio di allegazione (art. 106 cpv. 2 LTF); l'arbitrio è ammesso solo in caso di insostenibilità manifesta. La critica appellatoria non è sufficiente.
Quantità eccedenti: le parti hanno convenuto un contratto a prezzo globale ovvero forfettario (art. 373 seg. CO, art. 41 seg. norma SIA 118). L'esistenza di un capitolato d'oneri non trasforma il contratto in un contratto a prezzi unitari. Chi si richiama a un prezzo forfettario assume il rischio delle quantità, e le differenze di quantità rispetto alla descrizione delle opere non danno diritto a una retribuzione supplementare. La ricorrente non ha sostenuto modifiche d'ordinazione (cifra 3.3.1 Condizioni specifiche dell'oggetto, art. 86 norma SIA 118 non applicabile). Una pretesa ai sensi dell'art. 59 norma SIA 118 ovvero della clausola rebus sic stantibus (art. 373 cpv. 2 CO) fallisce per mancanza di imprevedibilità (appaltatore esperto, criterio severo; elemento aleatorio di ogni prezzo forfettario), per mancanza di una sproporzione palese e manifesta tra prestazione e retribuzione (valutazione complessiva; solo due delle sei posizioni hanno superato il 100 %) e per la lacunosa motivazione della richiesta di perizia. Non è stato necessario decidere se la notifica secondo l'art. 59 cpv. 3 in combinato disposto con l'art. 25 norma SIA 118 fosse tempestiva.
Supplementi: il supplemento n. 1 è stato pagato e non è stato contestato. Per il supplemento n. 2 (tinteggiatura bianca in 342 locali doccia, 3'985.59 m²) la ricorrente ha l'onere di allegazione e di prova per un prezzo superiore al prezzo unitario riconosciuto di Fr. 11.50/m². La ricorrente non ha motivato in modo sufficiente il prezzo richiesto di Fr. 27.50/m²; l'offerta per il supplemento era stata respinta e una perizia non può servire a completare un'allegazione di fatto lacunosa. Nei contratti a prezzo forfettario occorre in linea di principio fare riferimento ai prezzi di mercato generali e non all'aggiornamento dei prezzi; capitolati d'oneri e analisi dei prezzi possono tuttavia essere considerati (DTF 143 III 545 consid. 4.4.4.2). Gli stessi lavori non possono essere retribuiti due volte, come supplemento e come lavori in economia. Supplemento n. 3 (rampe di scale): la posizione 1 era solo insufficientemente motivata; la posizione 2 (incarico supplementare) è rimasta generica e l'ordinazione non è stata provata; alla posizione 3 (arrotondamenti) mancava il carattere di supplemento, poiché i raccordi arrotondati erano già riportati nel piano esecutivo prima della conclusione del contratto. Supplemento n. 4 (tinteggiatura bianca): l'affermazione generica dell'ordinazione non era convincente; la presunzione di un'esecuzione uniforme all'interno di una costruzione non è insostenibile. La precedente istanza ha argomentato in modo contraddittorio su un punto (misure contro prezzi unitari fissati autonomamente), ma ciò non era decisivo per l'esito, trattandosi di motivazioni eventuali. Il supplemento n. 5 non è stato contestato.
Lavori in economia: la ricorrente ha sostenuto che i lavori erano stati ordinati dal direttore dei lavori e dal capoprogetto della resistente, ma non ha indicato date, momenti o persone concrete per l'ordine dei singoli lavori e non ha distinto tra lavori urgenti e lavori…