1С 8.3: Реализация множественного подбора из справочника в табличной части внешней обработки
Как реализовать множественный подбор из справочника в табличной части внешней обработки в 1С 8.3? С помощью 2 процедур, которые надо добавить в модуль формы вашей обработки. Добавьте табличную часть «Сотрудники» и реквизит «Сотрудник» в табличной части. Создайте форму, разместив на ней табличную часть.

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