В процессе эксплуатации системы 1С:Документооборот (в частности, релиза 2.1.28.14) пользователи могут столкнуться с неприятным ограничением: при попытке установить фильтр в списке внутренних документов по полю Вид документа система позволяет выбирать только конкретные элементы, игнорируя группы (папки). Это существенно усложняет работу, когда необходимо проанализировать сразу целый пласт документов, например, все "Договоры" или все "Приказы", распределенные по разным подкатегориям.
В данной статье мы подробно разберем причины возникновения этой ситуации, проанализируем технические нюансы работы динамических списков и найдем способы исправления этой ошибки как на уровне пользователя, так и на уровне разработчика в Конфигураторе.
Прежде всего, выясним причину такого поведения системы. В релизе 2.1.28.14 разработчиками были внесены изменения в метаданные, которые затронули свойства реквизита Вид документа. В норме свойство Выбор групп и элементов у справочников и связанных с ними полей в формах установлено в значение Авто. Это означает, что платформа 1С самостоятельно определяет, можно ли выбирать группу, исходя из контекста (например, если это отбор "Равно", то выбирается элемент, а если "В группе", то папка).
Однако из-за программной ошибки в указанном релизе свойство Выбор групп и элементов фактически заблокировалось в режиме выбора только элементов. Это привело к тому, что даже при использовании иерархических отборов форма выбора справочника принудительно открывалась в плоском виде или с запретом на выбор родительских категорий.
Рассмотрим самый эффективный способ, который раз и навсегда решит проблему для всех пользователей системы. Для этого нам потребуется доступ к Конфигуратору. Выполним следующие шаги:
ВнутреннийДокумент) или форму списка, в которой наблюдается проблема.ВидДокумента. Нас интересует вкладка "Основные" и поле "Выбор групп и элементов".Авто, и при этом в пользовательском режиме выбор групп недоступен, нам необходимо принудительно изменить это значение. Выберем вариант Группы и элементы.Авто на Группы и элементы гарантирует, что платформа перестанет ограничивать пользователя в выборе.Важный нюанс: После внесения изменений в метаданные крайне важно выполнить сброс настроек формы у пользователей, так как 1С кэширует визуальные параметры и поведение элементов формы. Для этого в пользовательском режиме нужно зайти в меню Еще — Установить стандартные настройки.
Если у вас нет возможности вносить изменения в Конфигуратор, попробуем обойти ограничение стандартными средствами настройки динамического списка. Разберем по шагам, как правильно настроить иерархический отбор:
Еще и выберем пункт Настроить список.Вид документа и перенесем его в правую часть (двойным кликом или кнопкой выбора).Равно. Нам необходимо изменить его на В группе. Именно этот вид сравнения позволяет системе понять, что мы хотим работать с иерархией.В группе принудительно включает возможность выбора папок.Если этот метод создает "лишнюю" строку отбора, как отмечали пользователи на форумах, это может быть временным неудобством до момента обновления системы на исправленный релиз.
Фирма "1С" оперативно реагирует на подобные критические ошибки. Для релиза 2.1.28.14 выпускались специальные исправления (патчи). Посмотрим, как проверить их наличие:
Проанализируем раздел администрирования. В подразделе "Обслуживание" — "Обновление программы" — "Установленные исправления (патчи)" можно найти записи вида EF_001xxxx. Если вы видите патч, описывающий исправление отборов в 1С:Документооборот, убедитесь, что он активен.
Если же вы планируете долгосрочное решение, то наиболее правильным путем будет переход на версию 2.1.29 и выше. В этих версиях логика работы подбора была пересмотрена: при активации отбора В группе программный код динамического списка автоматически снимает ограничение на выбор только элементов, даже если в свойствах стоит Авто.
Для разработчиков будет полезно рассмотреть, как это выглядит "под капотом". В динамических списках ДинамическийСписок отбор управляется через коллекцию Отбор. Если мы программно устанавливаем отбор, мы можем использовать следующий подход:
// Пример программной установки отбора по группе
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВидДокумента");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии; // Аналог "В группе"
ЭлементОтбора.ПравоеЗначение = ГруппаВидовДокументов;
ЭлементОтбора.Использование = Истина;
Важно помнить, что если в метаданных жестко стоит запрет на выбор групп, то даже программная установка может вызвать ошибку или пустой результат в форме выбора значения для ПравоеЗначение. Поэтому установка свойства ВыборГруппИЭлементов в значение Группы и элементы является наиболее универсальным "лекарством".
Рассмотрим ситуацию, когда вы внесли правки, но "ничего не изменилось". Выясним причину: 1С хранит настройки пользователей в системных таблицах (хранилище настроек). Чтобы изменения вступили в силу:
Еще — Изменить форму — Еще — Установить стандартные настройки).Еще — Настроить список — Установить стандартные настройки).Подводя итог, можно сказать, что проблема носит чисто технический характер и связана с некорректным заполнением свойств метаданных в конкретной сборке конфигурации. Использование Конфигуратора для изменения режима выбора — это самый быстрый и надежный способ вернуть привычный функционал отбора по папкам видов документов.