Как исправить ошибку «Поле объекта не обнаружено (АрхивироватьЧекиККМПриЗакрытииКассовойСмены)» в 1С:УНФ после обновления?

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

При обновлении конфигурации «1С:Управление нашей фирмой» (УНФ) пользователи часто сталкиваются с ситуацией, когда после успешного, на первый взгляд, завершения процедуры обновления программа начинает выдавать критическую ошибку при попытке зайти в разделы «Администрирование» или «Еще больше возможностей». Текст ошибки гласит: Поле объекта не обнаружено (АрхивироватьЧекиККМПриЗакрытииКассовойСмены). Рассмотрим подробно причины возникновения этой проблемы и разберем по шагам все доступные способы ее решения.

Выясним причину возникновения ошибки

Проанализируем ситуацию: данная ошибка обычно проявляется на релизах линейки 1.6.22 — 1.6.24. Она связана с тем, что разработчики компании «1С» проводили масштабный рефакторинг механизмов работы с кассовым оборудованием. В процессе этих изменений объект АрхивироватьЧекиККМПриЗакрытииКассовойСмены (который является константой) был либо изменен, либо программный доступ к нему перестал корректно обрабатываться платформой в автоматических формах настроек.

Когда мы открываем панель администрирования, система пытается динамически построить дерево настроек. Если в коде или в метаданных формы осталось упоминание старого объекта, который теперь недоступен для «стандартных команд», платформа выбрасывает исключение. Это классическая проблема несоответствия метаданных и программного кода, которая иногда проскакивает в промежуточных релизах.

Способ 1. Исправление свойств объекта в Конфигураторе

Это самый надежный способ, если ваша конфигурация уже снята с поддержки или находится в режиме возможности редактирования. Разберем алгоритм действий:

  1. Откроем базу в режиме Конфигуратор.
  2. В дереве метаданных перейдем в ветку Константы.
  3. Найдем объект с именем АрхивироватьЧекиККМПриЗакрытииКассовойСмены.
  4. Нажмем правую кнопку мыши и выберем пункт «Свойства».
  5. В появившемся окне свойств найдем флаг «Использовать стандартные команды».
  6. Установим этот флаг, если он снят.
  7. Обновим конфигурацию базы данных (клавиша F7).

Установка этого свойства позволяет платформе 1С правильно интерпретировать обращения к константе при автоматическом формировании интерфейса раздела «Еще больше возможностей». Как показывает практика, именно отсутствие этого флага блокирует отрисовку всей формы настроек.

Способ 2. Использование отладчика для локализации ошибки

Если первый способ не помог или вы не можете найти указанную константу, проанализируем ситуацию с помощью встроенных инструментов разработки. Это поможет понять, какой именно кусок кода вызывает сбой. Выполним следующие шаги:

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

Скорее всего, вы увидите код, похожий на обращение к функциональным опциям или к набору констант. Например:


// Пример проблемного участка кода
ЗначениеНастройки = Константы.АрхивироватьЧекиККМПриЗакрытииКассовойСмены.Получить();
// Или обращение через структуру
ТекЗначение = НаборКонстант.АрхивироватьЧекиККМПриЗакрытииКассовойСмены;

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

Способ 3. Создание корректирующего расширения

Рассмотрим вариант решения, который не требует изменения основной конфигурации. Мы можем создать расширение, которое «объявит» системе наличие нужного поля или изменит логику обращения к нему.

Для этого создадим новое расширение, добавим в него константу АрхивироватьЧекиККМПриЗакрытииКассовойСмены (если она отсутствует в метаданных) или перехватим процедуру формы, где происходит ошибка, используя метод &Вместо.

Пример кода в расширении для обхода ошибки в модуле формы:


&Вместо("ПриСозданииНаСервере")
Процедура ИСПР_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Попытка
        ПродолжитьВызов(Отказ, СтандартнаяОбработка);
    Исключение
        // Логируем ошибку и позволяем форме открыться без этой настройки
        ЗаписьЖурналаРегистрации("ИсправлениеОшибкиУНФ", УровеньЖурналаРегистрации.Предупреждение,,, 
            ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
    КонецПопытки;
КонецПроцедуры

Способ 4. Очистка кэша и принудительное обновление

Иногда после обновления «зависают» старые описания форм в локальном кэше пользователя. Проанализируем, как это исправить без программирования. Если вы уверены, что в текущем релизе ошибка должна быть исправлена (например, вы обновились до 1.6.25+), попробуйте очистить временные файлы:

  1. Завершите работу всех сеансов 1С.
  2. В списке баз удалите проблемную базу и добавьте ее заново (это самый простой способ очистить кэш для конкретной информационной базы).
  3. Или воспользуйтесь параметром запуска /ClearCache в настройках ссылки на базу.
  4. Также рекомендуется зайти в раздел «Обслуживание» — «Результаты обновления программы» и убедиться, что все дополнительные процедуры обработки данных завершены успешно.

Рекомендации по дальнейшим действиям

Посмотрим на ситуацию в долгосрочной перспективе. Если вы столкнулись с этой ошибкой, это явный сигнал о том, что релиз содержит недоработки. Рекомендуется продолжить обновление до более стабильных версий (например, переход на ветку 3.0), где данные механизмы уже полностью отлажены. Если же вам необходимо работать именно на текущем релизе, использование расширения с «костылем» или ручная правка свойства константы Использовать стандартные команды являются единственными рабочими вариантами, позволяющими восстановить работоспособность интерфейса администратора.

Важный момент: если ошибка блокирует закрытие кассовой смены, обязательно проверьте, не остались ли в базе «битые» ссылки на эту константу в плане обмена с подключаемым оборудованием. Иногда требуется вручную перевыбрать настройки в карточке ККМ после внесения правок в конфигураторе.

← На главную