Процедура ПередЗаписью(Отказ, Замещение) КодСкладаЗапрет = "000000001"; // Лучше привязка к коду или сделать предопределенным Для Каждого Запись Из ЭтотОБъект Цикл Если Запись.Склад.Код = КодСкладаЗапрет Тогда Отказ = Истина; // В первую очередь отказываемся от выбора! СП = Новый СообщениеПользователю; СП.Текст = "Пользователю нельзя выбирать этот склад с кодом "+КодСкладаЗапрет; СП.Сообщить(); КонецЕсли; КонецЦикла; КонецПроцедуры
Процедура СкладНачалоВыбора(Элемент, СтандартнаяОбработка) //ПолеВыбора (ComboBox) //НачалоВыбора (StartChoice) //Синтаксис: // //НачалоВыбора(<СтандартнаяОбработка>) //Параметры: // //<СтандартнаяОбработка> // //Тип: Булево. //В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет. //Значение по умолчанию: Истина. //Описание: // //Возникает при нажатии кнопки выбора или клавиши F4. СтандартнаяОбработка = Ложь; // Самое главное все будем сами делать и форму с фильтром открывать и значение выбора сами подставлять!!! КодСкладаПодЗапретом = "000000001"; // Можно имя склада под запретом (хоть список - вопрос оптимизации) // Получение формы ФормаВыбораСклады = Справочники.Склады.ПолучитьФормуВыбора(, ЭтаФорма, "12345"); // 3-й параметр для исключения повторного открытия уже открытой формы //Форма (Form) //ОткрытьМодально (DoModal) //Синтаксис: // //ОткрытьМодально(<Таймаут>) //Параметры: // //<Таймаут> (необязательный) // //Тип: Число. //Время показа формы в секундах, по истечении которого форма будет закрыта с параметром закрытия Неопределено. Если значение параметра не задано, время показа не ограничено. //Значение по умолчанию: 0. //Возвращаемое значение: // //Тип: Произвольный. //Команда закрытия формы. //Если форма открывалась для выбора, возвращает выбранное значение (или массив значений, в случае разрешенного множественного выделения в открываемой форме). Если значение не выбрано, возвращается Неопределено. // Описание: // // Открывает форму в модальном режиме. // // Доступность: // // Толстый клиент. // Пример: // // ФормаСписка = Справочники.Объекты.ПолучитьФормуСписка(); // ФормаСписка.ОткрытьМодально(); // // // См. также: // // Форма, метод Открыть // Форма, метод Закрыть // Установим фильтр запрета и включим его (в отладчике свойство Отбор) ФормаВыбораСклады.отбор.Ссылка.ВидСравнения = ВидСравнения.НеРавно; ФормаВыбораСклады.отбор.Ссылка.Значение = Справочники.Склады.НайтиПоКоду(КодСкладаПодЗапретом); ФормаВыбораСклады.отбор.Ссылка.Использование = Истина; ВыбСклад = ФормаВыбораСклады.ОткрытьМодально(); Если ВыбСклад<>Неопределено Тогда Элемент.Значение = ВыбСклад; КонецЕсли; КонецПроцедуры