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