При работе с программными продуктами 1С, особенно в периоды глобальных изменений законодательства (таких как переход на НДС 20% или внедрение новых форматов фискальных данных — ФФД), пользователи часто сталкиваются с техническими сбоями после обновлений. Одной из резонансных проблем в конфигурации 1С:Розница 2.2 стала ошибка при попытке пробития чека: Поле объекта не обнаружено (АдресПроведенияРасчетов). Рассмотрим подробно, почему возникает эта ситуация, как она связана с работой подключаемого оборудования и какими способами её можно устранить.
Разберем техническую сторону вопроса. Ошибка чаще всего проявляется в релизе 2.2.11.16 и локализуется в строке 66 модуля менеджера справочника ПодключаемоеОборудование. Проблема заключается в конфликте между обновленным кодом конфигурации и структурой данных, которые система получает от драйвера ККТ (особенно актуально для устройств «Штрих-М»).
Выясним причину: в данной версии была интегрирована обновленная Библиотека подключаемого оборудования (БПО), которая начала жестко требовать наличие поля АдресПроведенияРасчетов (соответствует тегу 1187 в ФФД). Если ККТ была зарегистрирована ранее или драйвер передает эти данные под другим именем (например, АдресУстановкиККТ), выполнение программного кода прерывается, так как в структуре ДанныеХранения искомый ключ отсутствует.
Проанализируем ситуацию: система пытается выполнить присваивание:
РезультатОперации.АдресПроведенияРасчетов = ДанныеХранения.АдресПроведенияРасчетов;
Но так как в объекте ДанныеХранения нет свойства с таким именем, 1С выдает критическую ошибку, блокирующую работу кассы.
Самый правильный и надежный способ решения — это установка актуального релиза. Разработчики оперативно признали наличие данной ошибки и выпустили исправление. Как показывает практика и отзывы специалистов, переход на версию 2.2.11.23 и выше полностью устраняет проблему.
Рассмотрим последовательность действий при обновлении:
Если по каким-то причинам вы не можете обновить конфигурацию немедленно (например, база сильно доработана), можно внести изменения в код модуля. Нам необходимо добавить проверку на существование свойства в структуре, чтобы исключить обращение к несуществующему полю.
Найдем в конфигураторе Справочник.ПодключаемоеОборудование.МодульМенеджера и модифицируем проблемный участок кода. Разберем по шагам, как сделать код более отказоустойчивым:
// Вместо прямой вставки значения используем безопасную проверку
Если ДанныеХранения.Свойство("АдресПроведенияРасчетов") И НЕ ПустаяСтрока(ДанныеХранения.АдресПроведенияРасчетов) Тогда
РезультатОперации.АдресПроведенияРасчетов = ДанныеХранения.АдресПроведенияРасчетов;
ИначеЕсли ДанныеХранения.Свойство("МестоПроведенияРасчетов") Тогда
РезультатОперации.АдресПроведенияРасчетов = ДанныеХранения.МестоПроведенияРасчетов;
ИначеЕсли ДанныеХранения.Свойство("АдресУстановкиККТ") Тогда
// Обработка случая для старых драйверов Штрих-М
РезультатОперации.АдресПроведенияРасчетов = ДанныеХранения.АдресУстановкиККТ;
КонецЕсли;
Такой подход позволяет системе корректно обрабатывать данные, даже если драйвер ККТ возвращает их в старом формате или под другими именами тегов.
Иногда ошибка вызвана тем, что параметры ККТ закэшированы в базе 1С в старом формате. Попробуем обновить эти данные без изменения кода:
ДанныеХранения.Посмотрим на ситуацию со стороны заполнения данных. Проблема может быть косвенно связана с тем, что в карточке Организации, Магазина или Склада адрес заполнен в свободном формате, а не по ФИАС. При формировании структуры данных для чека система может давать сбой, если не может распознать компоненты адреса.
Рекомендуем выполнить следующие действия:
Проанализируем особенности работы с драйверами этого производителя. Для корректной передачи тегов 1187 и 1188 рекомендуется использовать версию драйвера не ниже 4.14.731. Однако даже с новым драйвером 1С может требовать поле, которое драйвер называет иначе. В параметрах регистрации ККТ через утилиту производителя убедитесь, что поля «Адрес установки» и «Место расчетов» заполнены. В 1С при настройке оборудования попробуйте перевыбрать версию протокола (например, перейти с 1.10 на 1.12), если это позволяет модель вашего фискального регистратора.
Важный момент: Ошибка Поле объекта не обнаружено (АдресПроведенияРасчетов) является типичным примером "ошибки роста" конфигурации при смене требований ФФД. Наилучшим стратегическим решением остается регулярное обновление конфигурации до актуальных релизов, где подобные коллизии уже устранены вендором.