Как исправить ошибку «Поле объекта не обнаружено (ВыходныеПараметры)» при переходе на 10-й драйвер АТОЛ в 1С:УТ 10.3

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При обновлении драйверов торгового оборудования многие технические специалисты сталкиваются с тем, что привычная схема работы в старых конфигурациях (например, "Управление торговлей 10.3") нарушается. Переход с 9-й на 10-ю версию драйвера АТОЛ часто сопровождается критической ошибкой при попытке пробития чека: «Поле объекта не обнаружено (ВыходныеПараметры)». Рассмотрим подробнее причины возникновения этой ситуации и разберем по шагам методы её решения.

Анализ технической причины ошибки

Проанализируем ситуацию с точки зрения программного кода. Ошибка возникает в момент обращения к функции определения версии Формата Фискальных Данных (ФФД). В типовом коде 1С это выглядит следующим образом:


ВерсияФормата = МенеджерОборудованияКлиентСервер.ВерсияФФД(ОбъектДрайвера.ВыходныеПараметры);

Выясним причину сбоя: объект ОбъектДрайвера в данном контексте — это внешняя компонента (ВК), которая взаимодействует с основной библиотекой АТОЛ. В 10-й версии драйвера архитектура взаимодействия построена на передаче данных через структуры. Если касса по какой-то причине не может вернуть корректные данные о состоянии (например, если она не фискализирована или отсутствует фискальный накопитель), метод драйвера не инициализирует свойство ВыходныеПараметры. В результате 1С пытается обратиться к несуществующему ключу объекта, что и вызывает исключение.

Важно отметить, что 9-я версия драйвера была менее требовательна к состоянию аппаратной части на этапе инициализации параметров, что позволяло разработчикам тестировать цепочки пробития чеков на "пустых" ККТ без ФН. В 10-й версии это поведение изменилось.

Решение 1: Установка или эмуляция Фискального Накопителя

Как показывает практика, наиболее распространенная причина этой ошибки — попытка протестировать оборудование без установленного ФН. Проанализируем основной способ решения:

  1. Проверка наличия ФН: Убедимся, что в корпус ККТ установлен фискальный накопитель (боевой или МГМ — макет габаритный массовый).
  2. Фискализация (или тестовая регистрация): Касса должна быть хотя бы в режиме "зарегистрирована" (для тестового контура). Как только драйвер видит активный ФН, он начинает корректно заполнять структуру ВыходныеПараметры, передавая информацию о версии ФФД (1.05, 1.1 или 1.2).
  3. Проверка через тест драйвера: Откроем "Тест драйвера ККТ" (утилита АТОЛ), перейдем в раздел "Инфо о ККТ" и убедимся, что версия ФФД ККТ и ФФД ФН определяются корректно.

Если вы проводите пусконаладочные работы и у вас нет под рукой ФН, система будет выдавать ошибку на уровне кода 1С, так как функция МенеджерОборудованияКлиентСервер.ВерсияФФД не получит необходимых входных данных от драйвера.

Решение 2: Корректная последовательность перехода с 9-го на 10-й драйвер

Часто ошибки возникают из-за конфликта сессий и "хвостов" старых драйверов в системе. Рассмотрим правильный алгоритм обновления оборудования:

  1. Закрытие смены: Обязательно закроем смену на кассовом аппарате, используя старый (9-й) драйвер. Попытка закрыть смену 10-м драйвером, если она была открыта 9-м, может привести к непредсказуемым ошибкам в регистрах ККТ.
  2. Деинсталляция ПО: Удалим старое программное обеспечение АТОЛ через панель управления.
  3. Очистка временных файлов 1С: Перейдем в папку пользователя %AppData%\1C\1cv8\ExtCompT\ и удалим библиотеки, связанные с АТОЛ (fptr10.dll, Atol_KKT_1C83_V10.dll и т.д.). Это заставит 1С заново инициализировать новую компоненту.
  4. Установка нового драйвера: Установим драйвер АТОЛ версии 10.х (рекомендуется использовать версии, проверенные 1С, например 10.4.6 или 10.8+).
  5. Настройка в 1С: В справочнике "Торговое оборудование" создадим новую настройку, выбрав обработку обслуживания, соответствующую 10-й версии драйвера.

Решение 3: Программная модификация для обхода ошибки (для разработчиков)

Если специфика бизнес-процесса требует возможности работы системы даже при некорректном ответе драйвера (например, для нефискальных документов), мы можем внести изменения в код обработки. Посмотрим на пример безопасного обращения к параметрам:


// Проверим наличие свойства перед использованием
Если ОбъектДрайвера.Свойство("ВыходныеПараметры") И ОбъектДрайвера.ВыходныеПараметры <> Неопределено Тогда
    ВерсияФормата = МенеджерОборудованияКлиентСервер.ВерсияФФД(ОбъектДрайвера.ВыходныеПараметры);
Иначе
    // Если параметров нет, задаем версию по умолчанию или выводим понятное сообщение
    ВерсияФормата = Перечисления.ФФД.ФФД105; 
    ЗаписьЖурналаРегистрации("ККТ", УровеньЖурналаРегистрации.Предупреждение, , , "ВыходныеПараметры не получены от драйвера.");
КонецЕсли;

Такой подход позволит избежать "вылета" программы с критической ошибкой и даст возможность пользователю получить информативное сообщение вместо системного дампа.

Проверка совместимости прошивки ККТ

Разберем еще один немаловажный аспект — версию внутреннего ПО (прошивки) самого аппарата АТОЛ. Драйвер 10-й версии оптимизирован для работы с Платформой 5.0. Если ваша касса работает на старой Платформе 2.5, убедитесь, что установлена одна из последних прошивок (например, 12-8535), которая поддерживает JSON-интерфейс драйвера 10.х.

Проверить версию прошивки можно, распечатав чек "Информация о ККТ" или посмотрев соответствующее поле в Тесте драйвера. Если прошивка слишком старая, драйвер может вернуть пустой объект ВыходныеПараметры, так как не сможет считать данные о ФФД из регистров ККТ.

Итоги и рекомендации

Подводя итог, отметим, что переход на 10-й драйвер АТОЛ в 1С:УТ 10.3 — это не просто замена одной библиотеки на другую, а смена архитектуры взаимодействия. Основные выводы:

При соблюдении этих шагов ошибка Поле объекта не обнаружено (ВыходныеПараметры) будет устранена, и система сможет корректно работать с актуальными требованиями законодательства по фискализации данных.

← На главную