Как исправить ошибку «Элемент не выбран» при поиске товаров в РМК 1С:Розница?

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

При работе в режиме рабочего места кассира (РМК) в конфигурации 1С:Розница (особенно в версиях ветки 2.2.13) пользователи часто сталкиваются с назойливой ошибкой: «Элемент не выбран!». Проблема проявляется при попытке поиска товара (горячая клавиша CTRL+1 или F11). Окно с ошибкой невозможно закрыть обычным способом, так как оно циклически появляется снова, и помогает только принудительное завершение работы через диспетчер задач. Разберем подробно, почему это происходит и как восстановить работоспособность системы.

Анализ технической причины ошибки

Если мы проанализируем техническую информацию, которую выдает платформа, мы увидим следующий стек вызова:


{Обработка.РМКУправляемыйРежим.Форма.ФормаПодборТовара.Форма(549)}: НадписьПутьВДереве = РодительАктивизированнойНоменклатуры.ПолноеНаименование;
{Обработка.РМКУправляемыйРежим.Форма.ФормаПодборТовара.Форма(359)}: УстановитьНадписьПутиВДереве;
по причине: Элемент не выбран!

Давайте проанализируем ситуацию: программа пытается сформировать текстовую строку с полным путем товара в дереве групп. Для этого она обращается к объекту РодительАктивизированнойНоменклатуры и пытается прочитать его свойство ПолноеНаименование. Ошибка «Элемент не выбран» в данном контексте означает, что ссылка на родительскую группу существует, но самого объекта в базе данных нет (так называемая «битая ссылка» или «Объект не найден»).

Решение 1: Исправление иерархии и тестирование базы

Первым делом нам необходимо проверить целостность справочника Номенклатура. Часто в распределенных информационных базах (РИБ) из-за коллизий при синхронизации товары могут быть привязаны к группам, которые были удалены в одном узле, но остались в другом.

Выполним следующие шаги:

  1. Запустим поиск товаров, у которых в поле Родитель отображается надпись <Объект не найден...>. Это можно сделать через консоль запросов или обработку «Поиск и замена значений».
  2. Перенесем такие товары в существующие группы или в корень справочника.
  3. Выполним стандартную процедуру Тестирование и исправление информационной базы (Администрирование — Обслуживание). Обязательно установим флажки на пунктах «Проверка логической целостности» и «Проверка ссылочной целостности». При наличии битых ссылок выберем вариант «Очищать ссылки» или «Создавать объекты».

Решение 2: Сброс настроек пользователя и кэша

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

Рассмотрим, как очистить настройки:

  1. Перейдем в раздел Администрирование — Настройки пользователей и прав — Персональные настройки пользователей — Настройки пользователей.
  2. Выберем проблемного пользователя и на вкладке «Внешний вид» или «Настройки отчетов и форм» найдем записи, относящиеся к ФормаПодборТовара.
  3. Удалим эти настройки. Это заставит систему при следующем открытии РМК сформировать форму «с чистого листа».
  4. Дополнительно рекомендуется очистить локальный кэш платформы 1С на рабочем компьютере кассира (удалить базу из списка и добавить заново).

Решение 3: Обновление индекса полнотекстового поиска

Так как ошибка возникает именно в момент активации поиска, выясним, не связана ли она с индексом ППС. Если полнотекстовый поиск выдает ссылку на товар, иерархия которого повреждена, форма подбора может «сломаться» при попытке отрисовать путь к этому товару.

Выполним обновление индекса:

Перейдем в Администрирование — Поддержка и обслуживание — Управление полнотекстовым поиском. Нажмем кнопку «Очистить индекс», а затем «Обновить индекс». Это гарантирует, что поисковые механизмы будут работать только с актуальными данными.

Решение 4: Настройка рабочего места в РИБ

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

  1. Зайдем в справочник Рабочие места (Администрирование — Подключаемое оборудование).
  2. Убедимся, что для текущего сеанса (конкретного имени компьютера и пользователя Windows) создано и выбрано правильное рабочее место.
  3. Если в справочнике несколько записей с одинаковым именем, проверим их уникальные идентификаторы (ID). В РИБ важно, чтобы у каждого кассового узла было свое уникальное рабочее место, иначе настройки оборудования будут «перетирать» друг друга при обмене.

Решение 5: Программное исправление (для разработчиков)

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


&НаСервере
Процедура УстановитьНадписьПутиВДеревеРасширение()
    // Проверяем, что ссылка на родителя не пустая и объект существует
    Если ЗначениеЗаполнено(РодительАктивизированнойНоменклатуры) 
        И Не РодительАктивизированнойНоменклатуры.ОбъектНеНайден Тогда
        НадписьПутьВДереве = РодительАктивизированнойНоменклатуры.ПолноеНаименование;
    Иначе
        НадписьПутьВДереве = "Корень справочника / Не определено";
    КонецЕсли;
КонецПроцедуры

Такой подход позволит системе пропустить проблемный элемент и не выводить бесконечные окна с ошибками, что критично для работы розничной точки в «час пик».

Режим «Дерево» против режима «Список»

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

← На главную