При обновлении драйверов торгового оборудования многие технические специалисты сталкиваются с тем, что привычная схема работы в старых конфигурациях (например, "Управление торговлей 10.3") нарушается. Переход с 9-й на 10-ю версию драйвера АТОЛ часто сопровождается критической ошибкой при попытке пробития чека: «Поле объекта не обнаружено (ВыходныеПараметры)». Рассмотрим подробнее причины возникновения этой ситуации и разберем по шагам методы её решения.
Проанализируем ситуацию с точки зрения программного кода. Ошибка возникает в момент обращения к функции определения версии Формата Фискальных Данных (ФФД). В типовом коде 1С это выглядит следующим образом:
ВерсияФормата = МенеджерОборудованияКлиентСервер.ВерсияФФД(ОбъектДрайвера.ВыходныеПараметры);
Выясним причину сбоя: объект ОбъектДрайвера в данном контексте — это внешняя компонента (ВК), которая взаимодействует с основной библиотекой АТОЛ. В 10-й версии драйвера архитектура взаимодействия построена на передаче данных через структуры. Если касса по какой-то причине не может вернуть корректные данные о состоянии (например, если она не фискализирована или отсутствует фискальный накопитель), метод драйвера не инициализирует свойство ВыходныеПараметры. В результате 1С пытается обратиться к несуществующему ключу объекта, что и вызывает исключение.
Важно отметить, что 9-я версия драйвера была менее требовательна к состоянию аппаратной части на этапе инициализации параметров, что позволяло разработчикам тестировать цепочки пробития чеков на "пустых" ККТ без ФН. В 10-й версии это поведение изменилось.
Как показывает практика, наиболее распространенная причина этой ошибки — попытка протестировать оборудование без установленного ФН. Проанализируем основной способ решения:
ВыходныеПараметры, передавая информацию о версии ФФД (1.05, 1.1 или 1.2).Если вы проводите пусконаладочные работы и у вас нет под рукой ФН, система будет выдавать ошибку на уровне кода 1С, так как функция МенеджерОборудованияКлиентСервер.ВерсияФФД не получит необходимых входных данных от драйвера.
Часто ошибки возникают из-за конфликта сессий и "хвостов" старых драйверов в системе. Рассмотрим правильный алгоритм обновления оборудования:
%AppData%\1C\1cv8\ExtCompT\ и удалим библиотеки, связанные с АТОЛ (fptr10.dll, Atol_KKT_1C83_V10.dll и т.д.). Это заставит 1С заново инициализировать новую компоненту.Если специфика бизнес-процесса требует возможности работы системы даже при некорректном ответе драйвера (например, для нефискальных документов), мы можем внести изменения в код обработки. Посмотрим на пример безопасного обращения к параметрам:
// Проверим наличие свойства перед использованием
Если ОбъектДрайвера.Свойство("ВыходныеПараметры") И ОбъектДрайвера.ВыходныеПараметры <> Неопределено Тогда
ВерсияФормата = МенеджерОборудованияКлиентСервер.ВерсияФФД(ОбъектДрайвера.ВыходныеПараметры);
Иначе
// Если параметров нет, задаем версию по умолчанию или выводим понятное сообщение
ВерсияФормата = Перечисления.ФФД.ФФД105;
ЗаписьЖурналаРегистрации("ККТ", УровеньЖурналаРегистрации.Предупреждение, , , "ВыходныеПараметры не получены от драйвера.");
КонецЕсли;
Такой подход позволит избежать "вылета" программы с критической ошибкой и даст возможность пользователю получить информативное сообщение вместо системного дампа.
Разберем еще один немаловажный аспект — версию внутреннего ПО (прошивки) самого аппарата АТОЛ. Драйвер 10-й версии оптимизирован для работы с Платформой 5.0. Если ваша касса работает на старой Платформе 2.5, убедитесь, что установлена одна из последних прошивок (например, 12-8535), которая поддерживает JSON-интерфейс драйвера 10.х.
Проверить версию прошивки можно, распечатав чек "Информация о ККТ" или посмотрев соответствующее поле в Тесте драйвера. Если прошивка слишком старая, драйвер может вернуть пустой объект ВыходныеПараметры, так как не сможет считать данные о ФФД из регистров ККТ.
Подводя итог, отметим, что переход на 10-й драйвер АТОЛ в 1С:УТ 10.3 — это не просто замена одной библиотеки на другую, а смена архитектуры взаимодействия. Основные выводы:
При соблюдении этих шагов ошибка Поле объекта не обнаружено (ВыходныеПараметры) будет устранена, и система сможет корректно работать с актуальными требованиями законодательства по фискализации данных.