Вроде как печатает, но после распечатки не фискального документа, возникает проблема с фискальными (чеками)
Содержимое чека печатается и зависает. Помогает только перезапуск кассы.
Что я делаю не так? ПО на c#
Чек печатаю вот так:
Код: Выделить всё
private int PrintCheck(TxMercOperType OperT, DataRowCollection sale, double nal)
{
axMercuryFPrtX1.ExternalPulse(1, 127, 127, 1);
int flags = 0;
int iv = 0;
try
{
axMercuryFPrtX1.OpenDay(1, cinfo.NameOperator.Substring(Math.Min(38, cinfo.NameOperator.Length)), true, MercFPrtX.TxMercProtocol.mprBS);
axMercuryFPrtX1.OpenFiscalDoc(OperT);
/*for (int I = 1; I <= 4; I++)
axMercuryFPrtX1.AddHeaderLine(I, flags, 1, iv++);*/
axMercuryFPrtX1.AddSerialNumber(flags, 0, iv++);
axMercuryFPrtX1.AddDateTime(flags, 0, iv++);
axMercuryFPrtX1.AddOperInfo(MercFPrtX.TxMercOperInfo.moiNumberName, flags, 0, iv++);
axMercuryFPrtX1.AddDocNumber(flags, 0, iv++);
axMercuryFPrtX1.AddAccount("", flags, 0, iv++);
axMercuryFPrtX1.AddReceiptNumber(flags, 0, iv++);
axMercuryFPrtX1.AddTaxPayerNumber(flags, 0, iv++);
foreach (DataRow row in sale)
{
string Name = row["Name"].ToString();
if (Name.Length >= Convert.ToInt32(Config.LimitSimv))
Name = Name.Substring(0, Convert.ToInt32(Config.LimitSimv) - 1);
axMercuryFPrtX1.AddCustom(Name, 16 + 64 + flags, 0, iv++);
decimal cyPrice = Convert.ToDecimal(row["Cost"]);
decimal Skid = Convert.ToDecimal(row["Skidka"]);
int Quant = Convert.ToInt32(Convert.ToDouble(row["Nums"]) * 1000.0);
int prec = 3;
int ID = Convert.ToInt32(row["ID"]);
axMercuryFPrtX1.AddItem(TxMercItemType.mitItem, cyPrice, false, 2, ID, 0, Quant, prec, 0, "шт", flags, 0, iv++, 0);
axMercuryFPrtX1.AddItem(TxMercItemType.mitAmountAdj, -Skid, false, 2, ID, 1000, 4 * 100, 2, 0, "шт", flags, 0, iv++, 0);
}
axMercuryFPrtX1.AddTotal(flags, 0, iv++, 0);
decimal cyCash, cyCashless;
cyCash = Convert.ToDecimal(nal);
cyCashless = 0;
axMercuryFPrtX1.AddPay(MercFPrtX.TxMercPayType.mptCash, cyCash, cyCashless, "", flags, 0, iv++, 0);
axMercuryFPrtX1.AddChange(flags, 0, iv++, 0);
axMercuryFPrtX1.PrintFiscalDocBuffer();
axMercuryFPrtX1.CloseFiscalDoc();
return 1;
}
catch (Exception ee)
{
MessageBox.Show(ee.Message + "\r\nПродажа не будет осуществлена.");
return 1;
}
}
Код: Выделить всё
private int PrintNotFiscal(string data)
{
axMercuryFPrtX1.ExternalPulse(1, 127, 127, 1);
try
{
axMercuryFPrtX1.PrintNonFiscal(data, true, true);
axMercuryFPrtX1.FeedAndCut(0,true);
return 1;
}
catch (Exception ee)
{
Log.Write(ee.Message + "\r\n Проблема с печатью не фискального документа.");
return 1;
}
}