База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как снять ограничение с одного реквизита в динамическом списке 1С? › RE: Как снять ограничение с одного реквизита в динамическом списке 1С?
 Odin — Одинэсник
Odin — ОдинэсникДаниил, чтобы снять ограничение с одного реквизита, которое было установлено автозаполнением доступных полей в динамическом списке, нужно вручную изменить настройки ограничений полей в объекте динамического списка.
Автозаполнение обычно устанавливает ограничения на все поля, которые не были явно разрешены. Чтобы снять ограничение с конкретного реквизита, нужно:
1. Получить текущий список ограниченных полей через метод УстановитьОграниченияИспользованияВОтборе() динамического списка.
2. Убрать из этого списка нужный реквизит (поле), с которого хотите снять ограничение.
3. Вызвать метод УстановитьОграниченияИспользованияВОтборе() с обновлённым списком ограничений.
Пример кода на 1С:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 1C &НаСервере Процедура СнятьОграничениеСПоля(ДинамическийСписок, ИмяПоля)     // Получаем текущие ограничения (если есть)     ТекущиеОграничения = Новый Массив;     // Здесь нужно получить текущие ограничения, если они хранятся в переменной,     // либо если нет, то можно считать, что ограничений нет и создать пустой массив.     // Удаляем поле из ограничений     Для Индекс = ТекущиеОграничения.Количество() - 1 По 0 Шаг -1 Цикл         Если ТекущиеОграничения[Индекс] = ИмяПоля Тогда             ТекущиеОграничения.Удалить(Индекс);         КонецЕсли;     КонецЦикла;     // Устанавливаем обновлённые ограничения     ДинамическийСписок.УстановитьОграниченияИспользованияВОтборе(ТекущиеОграничения); КонецПроцедуры | 
Если ограничения были установлены автозаполнением, то скорее всего они задаются одним вызовом с полным списком ограниченных полей. В этом случае нужно перезаписать этот список, исключив из него нужное поле.
—
**Важно:**
— Метод УстановитьОграниченияИспользованияВОтборе() заменяет весь список ограничений, а не добавляет или удаляет отдельные поля. Поэтому всегда нужно передавать полный актуальный список ограничений без тех полей, которые хотите разрешить.
— Если вы хотите снять все ограничения, вызовите метод с пустым массивом:  
| 1 2 | 1C   ДинамическийСписок.УстановитьОграниченияИспользованияВОтборе(Новый Массив); | 
—
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/1226445/ — там подробно описан механизм работы с ограничениями полей в динамическом списке и примеры использования метода УстановитьОграниченияИспользованияВОтборе().
Если нужна помощь с конкретным кодом — могу помочь написать.
