Почему пользователь не видит часть номенклатуры в 1С:УНФ и как это исправить?

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

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

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

Когда мы сталкиваемся с тем, что часть элементов справочника Номенклатура скрыта, первым делом необходимо исключить влияние прав доступа (RLS) и стандартных фильтров. Однако, если под другим пользователем все данные отображаются корректно, а под проблемным — нет (даже с полными правами), значит, причина кроется в персональных настройках отображения данных.

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

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

Метод 1: Проверка настроек динамического списка

Прежде чем переходить к радикальным мерам, попробуем найти и отключить некорректный отбор вручную в интерфейсе пользователя. Рассмотрим, как это сделать в управляемых формах 1С:УНФ.

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

  1. Нажмем кнопку Еще в правой части командной панели списка.
  2. Выберем пункт Настроить список.
  3. Перейдем на вкладку Отбор. Именно здесь часто «прячутся» условия, которые ограничивают видимость элементов. Проверим, нет ли в списке условий по полю Поставщик или другим реквизитам.
  4. Если на этой вкладке чисто, перейдем на вкладку Условное оформление. Иногда элементы не исчезают, а становятся невидимыми из-за настроек цвета текста или шрифта (например, белый текст на белом фоне).

Если ручной поиск не дал результатов, переходим к системным инструментам очистки.

Метод 2: Выборочная очистка настроек пользователя (Рекомендуемый)

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

Для выполнения этой операции нам понадобятся права администратора. Рассмотрим алгоритм действий:

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

После этой процедуры при следующем открытии справочника Номенклатура форма вернется к «заводскому» состоянию, и все скрытые элементы снова станут видимыми.

Разберем разницу между Кэшем и Хранилищем настроек

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

Локальный кэш — это файлы, которые 1С сохраняет на жестком диске пользователя (в папках AppData\Local\1C и AppData\Roaming\1C). В них хранятся скомпилированные формы, программные модули и картинки. Чистка кэша помогает, если форма «развалилась», не нажимаются кнопки или возникают странные ошибки выполнения кода.

Хранилище настроек в базе — это данные, которые хранятся внутри файла .1CD или в таблицах SQL. Это ваши фильтры, положение колонок, сохраненные варианты отчетов. Удаление папок 1С с диска не очистит эти настройки. Поэтому в ситуации с невидимой номенклатурой чистка кэша чаще всего оказывается бесполезной.

Программный аспект: Фиксированные настройки

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

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


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

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

Резюме: Если данные исчезли для одного пользователя — ищите «забытые» фильтры. Самый быстрый способ — очистка настроек формы через панель администрирования Обслуживание. Это сохранит рабочую среду пользователя и гарантированно вернет видимость элементов справочника Номенклатура.

← На главную