Вот код:
Процедура ТаблицаНоменклатураНоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка//Обработка начало выбора
СтандартнаяОбработка = Ложь;
Если НЕ ЗначениеЗаполнено(Цех) Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Необходимо выбрать цех!";
Сообщение.Поле = "Цех";
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
Возврат;
КонецЕсли;
НачалоВыбораНаСервере(ДанныеВыбора);
ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора",,Элемент);
ФормаВыбора.Масштаб = ЭтаФорма.Масштаб;
эОтбор = ФормаВыбора.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
эОтбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
эОтбор.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
эОтбор.ПравоеЗначение = ДанныеВыбора;
эОтбор.Использование = Истина;
эОтбор.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ФормаВыбора.Элементы.Список.Отображение = ОтображениеТаблицы.Список;
ФормаВыбора.Открыть();
КонецПроцедуры
&НаСервере
Процедура НачалоВыбораНаСервере(ДанныеВыбора//Отбираем данные выбора
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗначенияСвойствОбъектов.Объект КАК Объект
|ИЗ
| РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|ГДЕ
| ЗначенияСвойствОбъектов.Свойство В
| (ВЫБРАТЬ
| СвойстваОбъектов.Ссылка КАК Ссылка
| ИЗ
| ПланВидовХарактеристик.СвойстваОбъектов КАК СвойстваОбъектов
| ГДЕ
| СвойстваОбъектов.Код = ""00000000004"")
| И ЗначенияСвойствОбъектов.Значение = &Значение";
Запрос.УстановитьПараметр("Значение", Цех);
Результат = Запрос.Выполнить().Выгрузить();
ДанныеВыбора = Новый СписокЗначений;
Если Результат.Количество() > 0 Тогда
ДанныеВыбора.ЗагрузитьЗначения(Результат.ВыгрузитьКолонку("Объект"));
КонецЕсли;
КонецПроцедуры