&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
КонецПроцедуры
&НаКлиенте
Процедура Выбрать(Команда)
Если ТаблицаДляЗаполнения.Количество() = 0 Тогда
Сообщить("Не выбрана ни одна номенклатура.");
Возврат;
КонецЕсли;
МассивВыбранных = Новый Массив;
Для Каждого Строка Из ТаблицаДляЗаполнения Цикл
МассивВыбранных.Добавить(Строка.Номенклатура);
КонецЦикла;
ОповеститьОВыборе(МассивВыбранных);
КонецПроцедуры
&НаКлиенте
Процедура СтрокаПоискаИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
Если ПустаяСтрока(Текст) Тогда
Список.Отбор.Элементы.Очистить();
Элементы.Список.Отображение = ОтображениеТаблицы.ИерархическийСписок;
ИначеЕсли СтрДлина(Текст) > 0 Тогда
Список.Отбор.Элементы.Очистить();
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Наименование");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = Текст;
Элементы.Список.Отображение = ОтображениеТаблицы.Список;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущиеДанные = Элементы.Список.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
НайденныеСтроки = ТаблицаДляЗаполнения.НайтиСтроки(Новый Структура("Номенклатура", ВыбраннаяСтрока));
Если НайденныеСтроки.Количество() > 0 Тогда
Возврат;
КонецЕсли;
НоваяСтрока = ТаблицаДляЗаполнения.Добавить();
НоваяСтрока.Номенклатура = ВыбраннаяСтрока;
КонецПроцедуры