Почему в чеке ККМ вместо «Розничного покупателя» отображается «Объект не найден» и как настроить отборы при возврате?

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

При работе в программе «1С:Управление торговлей 11.4» пользователи часто сталкиваются с ситуацией, когда в списке документов ЧекиККМ в колонке «Клиент» вместо привычного значения «Розничный покупатель» отображается надпись «Объект не найден». Это не только мешает идентификации продаж, но и создает трудности при оформлении возвратов. Разберем детально причины этого явления, выясним, откуда система берет данные о розничном клиенте, и как автоматизировать работу кассира.

Разбираем причину появления надписи «Объект не найден»

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

  1. Ограничение прав доступа на уровне записей (RLS). Это наиболее вероятная причина. В системе могут быть включены Группы доступа партнеров. Если «Розничный покупатель» включен в определенную группу доступа, а у конкретного кассира в его профиле доступа эта группа не разрешена, платформа просто «скроет» данные объекта. На уровне SQL-запроса данные есть, но механизм RLS подставляет условие, которое не дает кассиру прочитать поля этого партнера.
  2. Удаление или замена дублей. Если кто-то из администраторов системы провел очистку справочника Партнеры и физически удалил старую карточку «Розничного покупателя», объединив её с новой, то во всех старых документах, созданных до этой процедуры, появится «Объект не найден».
  3. Проблемы с кэшем (для RDP и файловых баз). При работе через удаленный рабочий стол (RDP) локальный кэш пользователя может «биться». Это приводит к странным визуальным эффектам, когда под одним пользователем данные видны, а под другим — нет, хотя права идентичны.

Для диагностики прав доступа попробуйте выполнить следующий тест: временно назначьте проблемному пользователю роль Полные права. Если после этого вместо «Объект не найден» появится «Розничный покупатель», значит, проблема на 100% заключается в настройках RLS и группах доступа партнеров.

Выясняем, откуда в чеке ККМ берется «Розничный покупатель»

Многие пользователи ищут поле «Клиент» или «Партнер» непосредственно в форме документа ЧекККМ, но не находят его. Рассмотрим подробнее, как устроена логика подстановки розничного клиента в УТ 11:

Проанализируем техническую сторону: в документе ЧекККМ партнер не всегда заполняется вручную. Система определяет его автоматически по следующим приоритетам:

Как настроить автоматический отбор по кассе при возврате

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

Вариант 1: Использование стандартного Рабочего места кассира (РМК).
Если возврат оформляется через специализированный интерфейс РМК, система по умолчанию ориентируется на текущую кассу, закрепленную за данным рабочим местом. Проверьте настройки в Продажи — Сервис — Настройки РМК. Если для пользователя жестко задана Касса ККМ, то при нажатии кнопки «Возврат» поиск чеков будет ограничен параметрами этой кассы.

Вариант 2: Настройка списка документов «Чеки ККМ».
Если кассиры работают через общий список документов, можно воспользоваться стандартным механизмом платформы «Настроить список»:

  1. В списке ЧекиККМ нажмите кнопку Еще — Настроить список.
  2. Перейдите на вкладку Отбор.
  3. Найдите поле Касса ККМ и добавьте его в правую колонку.
  4. Установите вид сравнения «Равно» и выберите нужную кассу.
  5. Чтобы эта настройка не сбивалась, можно сохранить вариант настройки формы.

Вариант 3: Расширение конфигурации (для программиста).
Для того чтобы автоматизировать этот процесс «намертво», мы можем создать небольшое расширение. Нам нужно перехватить процедуру открытия формы выбора или списка чеков при оформлении возврата. Посмотрим на пример логики, которую можно внедрить в процедуру ПриСозданииНаСервере:


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

Итоговый чек-лист для исправления проблемы

Подведем итог и составим пошаговый план действий для исправления ситуации с «Объектом не найден»:

  1. Проверьте RLS: Перейдите в НСИ и администрирование — Настройка пользователей и прав. Если флаг «Ограничивать доступ на уровне записей» включен, проверьте Группы доступа партнеров. Убедитесь, что карточка «Розничный покупатель» входит в группу, доступную всем кассирам.
  2. Проверьте справочник «Партнеры»: Найдите «Розничного покупателя» поиском по коду или наименованию. Убедитесь, что он не помечен на удаление.
  3. Очистите кэш: Если права в порядке, а ошибка сохраняется только на одном терминальном сервере у конкретного пользователя, удалите базу из списка 1С и добавьте её заново. Это принудительно обновит локальные метаданные.
  4. Настройте РМК: Для корректных возвратов убедитесь, что в настройках рабочего места кассира указана правильная Касса ККМ и Эквайринговый терминал.

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

← На главную