После обновления до актуального укр.релиза 4,1,07 во фронте кассира при внесении денег выдается ошибка Ошибка получения фискальных реквизитов чека. Внос денег в фиск.память регистратора проводится, но в Журнале "Инкассация" Альфы операция не выполняется. Подскажите в чем причина?
В нашем случае ошибка возникала из-за разницы времени ФР и фронта кассира. Дописали обработку чтобы при такой ситуации ошибка игнорировалась и фронт кассира делал запись в документ инкассация. Это пример детализированной ошибки
Проблема в том, что при внесение денег (вероятно вынесение до 10.00 тоже) при каких-то условиях, до конца не проясненных, Фискальный регистратор возвращает дату в виде строки 2012.09.21 9:02:11. Такая строка не может быть преобразована к дате. Это и вызывает исключение с собщением о ошибке "Ошибка получения фискальных реквизитов чека." К дате тем кодом что был может быть преобразована только строка 2012.09.21 09:02:11. То есть начиная с 10.00 уже все нормально! ----------- Исправление. Заменить в обработке ФронтКассира в модуле формы ФормаИнкасации строки
Еще кусочек кода, иначе ФР не может до 10:00 прописать номер документа в чек. Обработка фронт Кассира модуль объекта строка 7043 заменена на: // --> + Рубцов в конфу начало //<-- из конфы ДатаФР=Вычислить("'"+SafeArrayПараметрыЧека.GetValue(3,0)+"'"); ПерДатаИЗФР = SafeArrayПараметрыЧека.GetValue(3,0); ДатаФР = ФункРубц.ПреобразованиеСтрДатыЕслиВремяБез0(ПерДатаИЗФР); // --> - Рубцов в конфу конец
По той же причине в документе Чек до 10.00 присваивается реквизиту номерДокумента (не сам номер) -1, хотя он проводится из ФронтаКассира и в остальном все нормально! Обработка фронт Кассира модуль объекта строка 7043 заменена на: // --> + Рубцов в конфу начало //<-- из конфы ДатаФР=Вычислить("'"+SafeArrayПараметрыЧека.GetValue(3,0)+"'"); ПерДатаИЗФР = SafeArrayПараметрыЧека.GetValue(3,0); ДатаФР = ФункРубц.ПреобразованиеСтрДатыЕслиВремяБез0(ПерДатаИЗФР); // --> - Рубцов в конфу конец
Можно заменить вызов функции ДатаФР = ФункРубц.ПреобразованиеСтрДатыЕслиВремяБез0(ПерДатаИЗФР); на // + вместо ФункРубц.ПреобразованиеСтрДатыЕслиВремяБез0 ПерДатаИЗФР = СокрЛП(ПерДатаИЗФР); кодСимвола = КодСимвола(Сред(ПерДатаИЗФР,13,1)); Если (кодСимвола < 48) Или (кодСимвола > 57) Тогда ПерДатаИЗФР = Лев(ПерДатаИЗФР, 11)+"0"+Прав(ПерДатаИЗФР,СтрДлина(ПерДатаИЗФР)-11); КонецЕсли; ДатаФР = ПерДатаИЗФР; // - вместо ФункРубц.ПреобразованиеСтрДатыЕслиВремяБез0