Ошибка расширения после обновления УТ 11: как исправить «Не найден объект Перечисление.СтатусыЧековККМ»?

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

Обновление конфигураций «1С:Управление торговлей» (УТ 11) — процесс, который нередко преподносит сюрпризы, особенно если в системе используются сторонние расширения или доработки. Одной из распространенных проблем при переходе на релизы ветки 11.5.22 является критическая ошибка подключения расширений, связанных с рабочим местом кассира (РМК). Рассмотрим подробно ситуацию, когда после обновления система выдает сообщения о том, что не найдены определенные значения перечислений, и разберем алгоритм исправления.

Анализ проблемы и диагностика ошибки

Итак, ситуация следующая: после обновления с версии УТ 11.5.12.х на 11.5.22.х при запуске программы возникает окно с ошибками применения расширения (в данном случае — модуля интеграции UDS Game, но проблема актуальна для любых расширений, работающих с чеками ККМ). Текст ошибки выглядит примерно так:

Не найден объект Перечисление.СтатусыЧековККМ.ЗначениеПеречисления.ТоварЗарезервирован
Не найден объект Перечисление.СтатусыЧековККМ.ЗначениеПеречисления.Отложен

Давайте разберемся, почему это происходит. Механизм расширений в 1С работает таким образом, что он «заимствует» объекты из основной конфигурации. Если разработчики фирмы «1С» удаляют или переименовывают объект в основной конфигурации, расширение теряет связь с этим объектом («ссылка становится битой»), и платформа блокирует запуск, чтобы предотвратить дальнейшие ошибки данных.

В данном случае, в новых релизах УТ 11 разработчики провели рефакторинг работы с отложенными чеками. Старая логика использовала общие статусы, но для более точного складского учета и резервирования товаров в рознице состав значений перечисления СтатусыЧековККМ был изменен.

Что именно изменилось в конфигурации?

Если мы откроем конфигуратор новой версии (11.5.22+) и найдем перечисление СтатусыЧековККМ, мы увидим, что старых значений там больше нет. Вместо них появились новые, более детализированные статусы.

Было (в старых релизах):

Стало (в актуальных релизах):

Именно это несоответствие и вызывает крах расширения при старте системы.

Варианты решения проблемы

Существует два основных пути решения этой задачи. Рассмотрим их от простого к сложному.

Способ 1: Обновление расширения от поставщика (Рекомендуемый)

Поскольку ошибка возникла в тиражном решении (модуль UDS Game), первым делом необходимо проверить наличие обновлений у разработчика интеграции. Как правило, вендоры отслеживают изменения в типовых конфигурациях 1С и выпускают адаптированные версии своих продуктов.

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

Способ 2: Ручная адаптация кода расширения (Для программиста)

Если нам необходимо восстановить работоспособность текущего расширения самостоятельно, выполним следующие шаги. Нам потребуется доступ в конфигуратор.

Шаг 1. Удаление битых ссылок

Откройте расширение конфигурации. Найдите в дереве метаданных расширения ветку Перечисления -> СтатусыЧековККМ. Вы увидите, что значения ТоварЗарезервирован и Отложен помечены красным или серым значком (в зависимости от версии платформы), сигнализирующим о потере связи с основным объектом. Эти значения необходимо удалить из расширения.

Шаг 2. Заимствование новых значений

Теперь нужно добавить в расширение актуальные значения из основной конфигурации, чтобы использовать их в коде. Найдите в основной конфигурации (окно слева или "Основная конфигурация") перечисление СтатусыЧековККМ и добавьте в расширение следующие значения:

Шаг 3. Рефакторинг программного кода

Самый важный этап. Нам нужно найти все места в модулях расширения, где использовались старые статусы, и заменить их на новые. Воспользуйтесь глобальным поиском по текстам модулей расширения.

Логика замены должна быть следующей:

  1. Старый статус ТоварЗарезервирован логически соответствует новому ОтложенСРезервированием.
  2. Старый статус Отложен чаще всего соответствует ОтложенБезРезервирования (хотя здесь стоит проанализировать бизнес-логику: если раньше "отложенный" чек резервировал товар, то выбирайте вариант с резервированием).

Пример того, как нужно изменить код. Допустим, у вас была проверка:


Если Объект.Статус = Перечисления.СтатусыЧековККМ.ТоварЗарезервирован Тогда
    // Какая-то логика интеграции
КонецЕсли;

Вам необходимо переписать этот блок следующим образом:


// Адаптация под 11.5.22+
Если Объект.Статус = Перечисления.СтатусыЧековККМ.ОтложенСРезервированием Тогда
    // Какая-то логика интеграции
КонецЕсли;

Аналогично поступаем со вторым статусом:


// Было:
// Если Объект.Статус = Перечисления.СтатусыЧековККМ.Отложен Тогда...

// Стало:
Если Объект.Статус = Перечисления.СтатусыЧековККМ.ОтложенБезРезервирования Тогда
    // Логика
КонецЕсли;

Важные нюансы после исправления

После внесения изменений в код обязательно выполните проверку в режиме предприятия. Обратите внимание на следующие моменты, так как обновление релиза было глобальным:

  1. Проверка возможности применения. Перед запуском в пользовательском режиме снимите галочку «Безопасный режим» у расширения (если это требуется для внешних компонент) и нажмите «Конфигурация - Проверка возможности применения». Ошибок быть не должно.
  2. Тестовая продажа. Обязательно проведите полный цикл продажи с использованием дисконтной карты или системы лояльности (UDS), если расширение за это отвечает.
  3. Ставки НДС. Поскольку релиз 11.5.22 содержит подготовку к налоговой реформе (новые ставки НДС 5% и 7% для УСН), убедитесь, что расширение корректно передает суммы и скидки. Старые модули могут неправильно распределять скидку в чеке, что приведет к ошибкам на фискальном регистраторе (ККТ).

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

← На главную