Как исправить ошибку «Поле объекта не обнаружено (АдресПроведенияРасчетов)» в 1С:Розница

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

При работе с программными продуктами 1С, особенно в периоды глобальных изменений законодательства (таких как переход на НДС 20% или внедрение новых форматов фискальных данных — ФФД), пользователи часто сталкиваются с техническими сбоями после обновлений. Одной из резонансных проблем в конфигурации 1С:Розница 2.2 стала ошибка при попытке пробития чека: Поле объекта не обнаружено (АдресПроведенияРасчетов). Рассмотрим подробно, почему возникает эта ситуация, как она связана с работой подключаемого оборудования и какими способами её можно устранить.

Анализ причины возникновения проблемы

Разберем техническую сторону вопроса. Ошибка чаще всего проявляется в релизе 2.2.11.16 и локализуется в строке 66 модуля менеджера справочника ПодключаемоеОборудование. Проблема заключается в конфликте между обновленным кодом конфигурации и структурой данных, которые система получает от драйвера ККТ (особенно актуально для устройств «Штрих-М»).

Выясним причину: в данной версии была интегрирована обновленная Библиотека подключаемого оборудования (БПО), которая начала жестко требовать наличие поля АдресПроведенияРасчетов (соответствует тегу 1187 в ФФД). Если ККТ была зарегистрирована ранее или драйвер передает эти данные под другим именем (например, АдресУстановкиККТ), выполнение программного кода прерывается, так как в структуре ДанныеХранения искомый ключ отсутствует.

Проанализируем ситуацию: система пытается выполнить присваивание:

РезультатОперации.АдресПроведенияРасчетов = ДанныеХранения.АдресПроведенияРасчетов;

Но так как в объекте ДанныеХранения нет свойства с таким именем, 1С выдает критическую ошибку, блокирующую работу кассы.

Способ 1: Обновление конфигурации (Рекомендуемый)

Самый правильный и надежный способ решения — это установка актуального релиза. Разработчики оперативно признали наличие данной ошибки и выпустили исправление. Как показывает практика и отзывы специалистов, переход на версию 2.2.11.23 и выше полностью устраняет проблему.

Рассмотрим последовательность действий при обновлении:

  1. Создадим резервную копию информационной базы (обязательный шаг перед любыми манипуляциями).
  2. Выполним обновление конфигурации до релиза 2.2.11.23 или более свежего.
  3. После обновления запустим систему и убедимся, что в параметрах ККТ появилось поле «Адрес проведения расчетов».
  4. Проведем тестовое пробитие чека.

Способ 2: Программное исправление (Hotfix для программистов)

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

Найдем в конфигураторе Справочник.ПодключаемоеОборудование.МодульМенеджера и модифицируем проблемный участок кода. Разберем по шагам, как сделать код более отказоустойчивым:


// Вместо прямой вставки значения используем безопасную проверку
Если ДанныеХранения.Свойство("АдресПроведенияРасчетов") И НЕ ПустаяСтрока(ДанныеХранения.АдресПроведенияРасчетов) Тогда
    РезультатОперации.АдресПроведенияРасчетов = ДанныеХранения.АдресПроведенияРасчетов; 
ИначеЕсли ДанныеХранения.Свойство("МестоПроведенияРасчетов") Тогда
    РезультатОперации.АдресПроведенияРасчетов = ДанныеХранения.МестоПроведенияРасчетов; 
ИначеЕсли ДанныеХранения.Свойство("АдресУстановкиККТ") Тогда
    // Обработка случая для старых драйверов Штрих-М
    РезультатОперации.АдресПроведенияРасчетов = ДанныеХранения.АдресУстановкиККТ;
КонецЕсли;

Такой подход позволяет системе корректно обрабатывать данные, даже если драйвер ККТ возвращает их в старом формате или под другими именами тегов.

Способ 3: Перерегистрация и обновление настроек оборудования

Иногда ошибка вызвана тем, что параметры ККТ закэшированы в базе 1С в старом формате. Попробуем обновить эти данные без изменения кода:

  1. Перейдем в раздел Администрирование — Подключаемое оборудование.
  2. Откроем карточку используемой ККТ.
  3. Нажмем кнопку Настроить. В открывшемся окне драйвера проверим связь с устройством.
  4. Обязательно нажмем Записать и закрыть именно в окне настроек драйвера, а затем в карточке оборудования. Это инициирует обновление структуры хранения параметров ДанныеХранения.
  5. В некоторых случаях помогает кратковременное включение опции «Обмен с офлайн оборудованием» в разделе администрирования, что заставляет систему переинициализировать некоторые внутренние механизмы работы с торговым оборудованием.

Способ 4: Проверка адресных сведений

Посмотрим на ситуацию со стороны заполнения данных. Проблема может быть косвенно связана с тем, что в карточке Организации, Магазина или Склада адрес заполнен в свободном формате, а не по ФИАС. При формировании структуры данных для чека система может давать сбой, если не может распознать компоненты адреса.

Рекомендуем выполнить следующие действия:

Дополнительные нюансы для драйверов «Штрих-М»

Проанализируем особенности работы с драйверами этого производителя. Для корректной передачи тегов 1187 и 1188 рекомендуется использовать версию драйвера не ниже 4.14.731. Однако даже с новым драйвером 1С может требовать поле, которое драйвер называет иначе. В параметрах регистрации ККТ через утилиту производителя убедитесь, что поля «Адрес установки» и «Место расчетов» заполнены. В 1С при настройке оборудования попробуйте перевыбрать версию протокола (например, перейти с 1.10 на 1.12), если это позволяет модель вашего фискального регистратора.

Важный момент: Ошибка Поле объекта не обнаружено (АдресПроведенияРасчетов) является типичным примером "ошибки роста" конфигурации при смене требований ФФД. Наилучшим стратегическим решением остается регулярное обновление конфигурации до актуальных релизов, где подобные коллизии уже устранены вендором.

← На главную