Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Процедура ВыполнитьОперацию;
- Если (PrinterType = 0) Тогда
- И_Сообщение('Принтер НЕустановлен или НЕизвестный тип Фискального Регистратора');
- Завершить;
- КонецЕсли;
- Выбор ({Ярлык}) Из
- //Печать Х-отчёта
- 1:
- FiscalPrinter.Open(PrinterType,PrinterPort,{Активный_пользователь_название});
- ВыполнитьПроцедуру ('ПроверитьСостояниеПринтера');
- S := FiscalPrinter.KeyPosition;
- Если (S <> 'N') & (S <> 'X') Тогда
- И_Сообщение('Переведите ключ в режим X');
- КонецЕсли;
- FiscalPrinter.PrintXReport();
- Ждать(4000);
- Если (FiscalPrinter.LastErrorCode = 0) Тогда
- И_Сообщение('X отчёт напечатан!');
- Иначе
- ВыполнитьПроцедуру ('ПроверитьСостояниеПринтера');
- КонецЕсли;
- FiscalPrinter.Close();
- КонецПункта;
- //Установка времени в принтере такого же как текущее время на компе
- 2:
- FiscalPrinter.Open(PrinterType,PrinterPort,{Активный_пользователь_название});
- ВыполнитьПроцедуру ('ПроверитьСостояниеПринтера');
- FiscalPrinter.SetDateTime(Сейчас());
- Ждать(2000);
- Если (FiscalPrinter.LastErrorCode = 0) Тогда
- И_Сообщение('Часы переведены!');
- Иначе
- //ВыполнитьПроцедуру ('ПроверитьСостояниеПринтера');
- статус:= FiscalPrinter.DecodedStates;
- О_Сообщение(статус);
- КонецЕсли;
- FiscalPrinter.Close();
- КонецПункта;
- //Сумма наличных денег в кассе // Печать нулевого чека (* FiscalPrinter.PrintNullCheck(); *)
- 3:
- FiscalPrinter.Open(PrinterType,PrinterPort,{Активный_пользователь_название});
- ВыполнитьПроцедуру ('ПроверитьСостояниеПринтера');
- S := 'Сумма продаж по кассе = ' + ВещВСтрокуФ(FiscalPrinter.SalesAmount,2) + ' руб.';
- S := СКопировать( S + ' ',1,58);
- S := S + 'Наличных денег в кассе = ' + ВещВСтрокуФ(FiscalPrinter.CashAmount,2)+ ' руб.';
- И_Сообщение(S);
- FiscalPrinter.Close();
- КонецПункта;
- //Печать Х-отчёта по секциям // Карточка('к_Печать фин. отчета', '');
- 4:
- // Если (PrinterType <> 5) Тогда
- FiscalPrinter.Open(PrinterType,PrinterPort,{Активный_пользователь_название});
- ВыполнитьПроцедуру ('ПроверитьСостояниеПринтера');
- S := FiscalPrinter.KeyPosition;
- Если (S <> 'N') & (S <> 'X') Тогда
- И_Сообщение('Переведите ключ в режим X');
- КонецЕсли;
- Если (FiscalPrinter.SalesAmount > 0 ) Тогда
- FiscalPrinter.PrintXReportBySection();
- Ждать(3000);
- Если (FiscalPrinter.LastErrorCode = 0) Тогда
- И_Сообщение('X отчёт по секциям напечатан!');
- Иначе
- ВыполнитьПроцедуру ('ПроверитьСостояниеПринтера');
- КонецЕсли;
- Иначе
- И_Сообщение('Нет продаж. Нет данных для печати!');
- КонецЕсли;
- FiscalPrinter.Close();
- // Иначе
- // И_Сообщение('Для данного типа принтера этот отчет недоступен!');
- // КонецЕсли;
- КонецПункта;
- //внесение- выдача денег
- 5:
- Карточка('к_Изъятие_внесение_денег', '1');
- КонецПункта;
- //внесение- выдача денег
- 6:
- Карточка('к_Изъятие_внесение_денег', '2');
- КонецПункта;
- //Открытие денежного ящика
- 7:
- FiscalPrinter.Open(PrinterType,PrinterPort,{Активный_пользователь_название});
- ВыполнитьПроцедуру ('ПроверитьСостояниеПринтера');
- FiscalPrinter.OpenCashBox();
- FiscalPrinter.Close();
- КонецПункта;
- //Печать Z-отчёта
- 8:
- FiscalPrinter.Open(PrinterType,PrinterPort,{Активный_пользователь_название});
- ВыполнитьПроцедуру ('ПроверитьСостояниеПринтера');
- S := FiscalPrinter.KeyPosition;
- Если (S <> 'N') & (S <> 'Z') Тогда
- И_Сообщение('Переведите ключ в режим Z');
- КонецЕсли;
- Если(В_Сообщение('Будет произведено суточное гашение с обнулением итогов. Продолжить?' ,2) = 2) Тогда
- FiscalPrinter.PrintZReport();
- Ждать(5000);
- Если (FiscalPrinter.LastErrorCode = 0) Тогда
- S := 'Z отчёт напечатан!';
- //Обнуление генератора артикулов подключённого к Текущей станции принтера.
- //Получаем название генератора, который нужно обнулять:
- GenName := ЗначениеПоля('CAT0321', 'GENNAME', 'ID = ' + PrinterID, Да);
- //Обнуляем генератор:
- Если SQLКоманда('SET GENERATOR ' + GenName + ' TO 0') Тогда
- S := S + ' Регистр артикулов обнулён.';
- И_Сообщение(S);
- Иначе S := S + ' Регистр артикулов для ЭТОЙ КАССЫ не был обнулён, СООБЩИТЕ об этом программистам !!!';
- И_Сообщение(S);
- КонецЕсли;
- Иначе
- ВыполнитьПроцедуру ('ПроверитьСостояниеПринтера');
- КонецЕсли;
- КонецЕсли;
- FiscalPrinter.Close();
- КонецПункта;
- //Продолжить работу ( для ШТРИХ и ДАТЕКС)
- 9:
- Если ((PrinterType = 2)|(PrinterType = 5)) Тогда
- FiscalPrinter.Open(PrinterType,PrinterPort,{Активный_пользователь_название});
- FiscalPrinter.ResumeWork();
- Если (FiscalPrinter.LastErrorCode <> 0) Тогда
- S := 'Ошибка выполнения команды "Продолжить работу"' ;
- О_Сообщение(S);
- КонецЕсли;
- FiscalPrinter.Close();
- И_Сообщение('Снимите Х-отчёт. Сравните СУММУ на Х-отчёте и СУММУ чеков по кассе в форме "Аптечные накладные".');
- Иначе
- И_Сообщение('Выключите, затем Включите питание ФИСКАЛЬНОГО РЕГИСТРАТОРА.');
- И_Сообщение('После АВТОТЕСТА снимите Х-отчёт. Сравните СУММУ на Х-отчёте и СУММУ чеков по кассе в форме "Аптечные накладные".');
- КонецЕсли;
- КонецПункта;
- 10:
- FiscalPrinter.Open(PrinterType,PrinterPort,{Активный_пользователь_название});
- status:= FiscalPrinter.StatusString;
- СчБит:= 0;
- СчОшибок:= 0;
- Если
- СКопировать(status,2,1)= '1'
- Тогда
- СчБит:= СчБит+1;
- статус:= 'Открыт документ возврата';
- КонецЕсли;
- Если
- СКопировать(status,3,1)= '1'
- Тогда
- СчБит:= СчБит+1;
- СчОшибок:= СчОшибок+1;
- статус:= статус+Символ(13)+Символ(10)+'Общая ошибка';
- КонецЕсли;
- Если
- СКопировать(status,4,1)= '1'
- Тогда
- СчБит:= СчБит+1;
- СчОшибок:= СчОшибок+1;
- статус:= статус+Символ(13)+Символ(10)+'Печатающее устройство неисправно';
- КонецЕсли;
- Если
- СКопировать(status,6,1)= '1'
- Тогда
- СчБит:= СчБит+1;
- СчОшибок:= СчОшибок+1;
- статус:= статус+Символ(13)+Символ(10)+'Таймер не установлен';
- КонецЕсли;
- Если
- СКопировать(status,7,1)= '1'
- Тогда
- СчБит:= СчБит+1;
- СчОшибок:= СчОшибок+1;
- статус:= статус+Символ(13)+Символ(10)+'Неправильный код полученной команды';
- КонецЕсли;
- Если
- СКопировать(status,8,1)= '1'
- Тогда
- СчБит:= СчБит+1;
- СчОшибок:= СчОшибок+1;
- статус:= статус+Символ(13)+Символ(10)+'Синтаксическая ошибка в полученных данных';
- КонецЕсли;
- Если
- СКопировать(status,11,1)= '1'
- Тогда
- СчБит:= СчБит+1;
- СчОшибок:= СчОшибок+1;
- статус:= статус+Символ(13)+Символ(10)+'Крышка автообрезчика открыта';
- КонецЕсли;
- Если
- СКопировать(status,12,1)= '1'
- Тогда
- СчБит:= СчБит+1;
- СчОшибок:= СчОшибок+1;
- статус:= статус+Символ(13)+Символ(10)+'После включения ФРа обнаружены нарушения данных в ОЗУ';
- КонецЕсли;
- Если
- СКопировать(status,13,1)= '1'
- Тогда
- СчБит:= СчБит+1;
- СчОшибок:= СчОшибок+1;
- статус:= статус+Символ(13)+Символ(10)+'Батарея разряжена (Таймер реального времени в состоянии RESET)';
- КонецЕсли;
- Если
- СКопировать(status,14,1)= '1'
- Тогда
- СчБит:= СчБит+1;
- СчОшибок:= СчОшибок+1;
- статус:= статус+Символ(13)+Символ(10)+'ОЗУ обнулено';
- КонецЕсли;
- Если
- СКопировать(status,15,1)= '1'
- Тогда
- СчБит:= СчБит+1;
- СчОшибок:= СчОшибок+1;
- статус:= статус+Символ(13)+Символ(10)+'Команда не может быть выполнена в данном режиме';
- КонецЕсли;
- Если
- СКопировать(status,16,1)= '1'
- Тогда
- СчБит:= СчБит+1;
- СчОшибок:= СчОшибок+1;
- статус:= статус+Символ(13)+Символ(10)+'Переполнение суммы';
- КонецЕсли;
- Если
- СКопировать(status,19,1)= '1'
- Тогда
- СчБит:= СчБит+1;
- статус:= статус+Символ(13)+Символ(10)+'Открыт служебный документ';
- КонецЕсли;
- Если
- СКопировать(status,20,1)= '1'
- Тогда
- СчБит:= СчБит+1;
- статус:= статус+Символ(13)+Символ(10)+'Близок конец контрольной ленты';
- КонецЕсли;
- Если
- СКопировать(status,21,1)= '1'
- Тогда
- СчБит:= СчБит+1;
- статус:= статус+Символ(13)+Символ(10)+'Открыт платежный документ или документ возврата';
- КонецЕсли;
- Если
- СКопировать(status,22,1)= '1'
- Тогда
- СчБит:= СчБит+1;
- статус:= статус+Символ(13)+Символ(10)+'Конец контрольной ленты';
- КонецЕсли;
- Если
- СКопировать(status,23,1)= '1'
- Тогда
- СчБит:= СчБит+1;
- статус:= статус+Символ(13)+Символ(10)+'Недостаточно ленты';
- КонецЕсли;
- Если
- СКопировать(status,24,1)= '1'
- Тогда
- СчБит:= СчБит+1;
- статус:= статус+Символ(13)+Символ(10)+'Закончилась лента';
- КонецЕсли;
- И_Сообщение(status);
- Если
- СчОшибок>0
- Тогда
- И_Сообщение('Обнаружены следущие ошибки в работе ФР:'+Символ(13)+Символ(10)+статус);
- Иначе
- И_Сообщение('Ошибок нет');
- КонецЕсли;
- FiscalPrinter.Close();
- КонецПункта;
- 11:
- FiscalPrinter.Open(PrinterType,PrinterPort,{Активный_пользователь_название});
- FiscalPrinter.CancelLastDoc();
- FiscalPrinter.Close();
- КонецПункта;
- 12:
- FiscalPrinter.Open(PrinterType,PrinterPort,{Активный_пользователь_название});
- FiscalPrinter.AddOperator('01','0000','Тёркин Василий Петрович');
- Если (FiscalPrinter.LastErrorCode = 0) Тогда
- И_Сообщение('Оператор добавлен успешно!');
- Иначе
- //ВыполнитьПроцедуру ('ПроверитьСостояниеПринтера');
- статус:= FiscalPrinter.DecodedStates;
- О_Сообщение(статус);
- FiscalPrinter.Close();
- КонецЕсли;
- КонецПункта;
- 13:
- FiscalPrinter.Open(PrinterType,PrinterPort,{Активный_пользователь_название});
- И_Сообщение('Имя оператора:'+Символ(13)+Символ(10)+FiscalPrinter.GetOperatorName(1));
- FiscalPrinter.Close();
- КонецПункта;
- КонецВыбора;
- КонецПроцедуры;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement