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