При работе с торговым оборудованием в конфигурации «1С:Управление торговлей 10.3» пользователи часто сталкиваются с критической ошибкой при попытке пробития чека или открытии смены. Ошибка локализуется в общем модуле ПодключаемоеОборудованиеУниверсальныйДрайверКлиент и выглядит следующим образом:
{ОбщийМодуль.ПодключаемоеОборудованиеУниверсальныйДрайверКлиент.Модуль(636)}: Метод объекта не обнаружен (Свойство) РегистрационныйНомерККТ = ?(ПараметрыРегистрации.Свойство("РегистрационныйНомерККТ"), ПараметрыРегистрации.РегистрационныйНомерККТ, "");
В этой статье мы подробно разберем причины возникновения этой ситуации, проанализируем программный код и найдем способы решения проблемы, чтобы ваша кассовая техника работала стабильно.
Давайте проанализируем, почему 1С выдает именно такое сообщение. Ошибка «Метод объекта не обнаружен (Свойство)» однозначно указывает на то, что переменная ПараметрыРегистрации, к которой обращается система, не является объектом типа Структура. В нормальных условиях драйвер торгового оборудования должен возвращать заполненную структуру с данными кассы, но по какой-то причине вместо этого в переменную попадает значение Неопределено или ПустаяСтрока.
Рассмотрим основные факторы, которые приводят к этому сбою:
fptr10.dll) зарегистрированы некорректно или имеют разную разрядность с платформой 1С.Первым делом проверим соответствие версий. Если вы обновили драйвер Атол до версии 10, но конфигурация УТ 10.3 не обновлялась последние несколько лет, встроенная обработка обслуживания просто не поймет формат данных, передаваемый новым драйвером.
Важный момент: 10-й драйвер Атол работает через совершенно другой API по сравнению с 8-й версией. Если в настройках торгового оборудования выбран «Универсальный драйвер», убедитесь, что сама компонента встроена в 1С правильно. Зачастую помогает установка драйвера той разрядности, которой обладает ваша платформа 1С (обычно 32-битная), даже если операционная система 64-битная.
Если обновление конфигурации или драйверов невозможно по техническим причинам, мы можем прибегнуть к «безопасному» кодированию. Нам нужно заставить программу проверять тип данных перед тем, как вызывать метод Свойство(). Это предотвратит вылет системы с ошибкой.
Найдем в конфигураторе общий модуль ПодключаемоеОборудованиеУниверсальныйДрайверКлиент и строку с ошибкой. Рассмотрим, как можно изменить код для повышения стабильности:
// Было:
РегистрационныйНомерККТ = ?(ПараметрыРегистрации.Свойство("РегистрационныйНомерККТ"), ПараметрыРегистрации.РегистрационныйНомерККТ, "");
// Стало (рекомендуемый вариант):
Если ТипЗнч(ПараметрыРегистрации) <> Тип("Структура") Тогда
// Если драйвер не вернул структуру, инициализируем её сами
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("РегистрационныйНомерККТ", "");
КонецЕсли;
РегистрационныйНомерККТ = ?(ПараметрыРегистрации.Свойство("РегистрационныйНомерККТ"), ПараметрыРегистрации.РегистрационныйНомерККТ, "");
Такая правка позволит системе продолжить выполнение операции, даже если касса не вернула параметры регистрации в нужный момент. Однако помните, что это лишь устранение симптома. Если данные о регистрации критически важны для формирования чека (например, при работе с ФФД 1.2), чек может быть аннулирован кассой на следующем этапе.
Проанализируем ситуацию с новыми форматами данных. С введением ФФД 1.2 кассы Атол 11Ф стали передавать расширенный набор параметров. Старые версии БПО в 1С не знают о существовании новых полей. Когда драйвер пытается передать структуру, содержащую новые реквизиты, процедура разбора ответа в 1С может завершиться неудачей, возвращая пустое значение.
В этом случае рекомендуется:
Иногда ошибка возникает не постоянно, а «иногда». Это явный признак проблем со связью. Касса Атол 11Ф может медленно отвечать на запрос ПараметрыРегистрации из-за загруженности порта или плохого качества кабеля. Если драйвер не получает ответ в течение заданного времени, он возвращает ошибку инициализации.
Разберем, как это исправить в интерфейсе 1С:
Если вышеописанные методы не помогают, стоит проверить чистоту среды исполнения. Проанализируем системные компоненты. Иногда в системе остаются «хвосты» от предыдущих версий драйверов Атол, которые конфликтуют между собой.
Попробуйте выполнить следующие действия:
%AppData%\1C\1cv8\).regsvr32 fptr10.dll (путь к файлу должен быть полным).Мы рассмотрели сложную техническую проблему, связанную с несоответствием типов данных при взаимодействии 1С и кассового драйвера. Основной вывод: ошибка Метод объекта не обнаружен (Свойство) является следствием того, что драйвер не смог корректно передать структуру параметров в 1С.
Используя предложенные нами программные вставки и настройки таймаутов, вы сможете минимизировать простои на кассовой зоне. Тем не менее, наиболее надежным решением остается поддержание конфигурации и драйверов в актуальном состоянии, соответствующем текущим требованиям ФНС и протоколам обмена данными.