Обработка: "ИзменениеФильтраПодбора" модуль Процедура ОК() //после строки: Форма.Параметр.Установить("ВключатьВпрайс", ВключатьВпрайс); //вставляем: Форма.Параметр.Установить("Отобрать", Отобрать); Процедура ПриОткрытии() //после строки: ВключатьВпрайс = Форма.Параметр.Получить("ВключатьВпрайс"); //вставляем: Отобрать = Форма.Параметр.Получить("Отобрать"); Форма.Отобрать.Доступность(Форма.Параметр.Получить("ВидОтобрать")); Справочник: "Номенклатура", модуль формы "ДляПодбора" // переменные для установки фильтра Перем Фирма, ЮрЛицо, УпрАналитика, ВидРазделителя, Склад, ВключатьВпрайс //вставляем: , Отобрать; //меняемяем: Процедура ЗаполнитьКЭШ(Группа, Отбирать=0) //после строки: ТаблицаОстатки.УдалитьСтроки(); //вставляем: Спис=СоздатьОбъект("СписокЗначений"); СпрНоменклатура.ИспользоватьРодителя(Группа); СпрНоменклатура.ВключатьПодчиненные(Отбирать); Состояние("Выполняется обработка"); //после строки: ЗаполнитьСтроку(Номенклатура, ТовОстатки, ТовЦены, ТовВалюта); //вставляем: Если ЦенаВподборе = "Розница" Тогда СписокОст = ЗначениеИзСтроки(ТовОстатки); РазмерСписка = СписокОст.РазмерСписка(); Если РазмерСписка = 1 Тогда ТовОстаток = СписокОст.ПолучитьЗначение(1); ИначеЕсли РазмерСписка = 0 Тогда ТовОстаток = 0; ИначеЕсли РазмерСписка > 1 Тогда ТовОстаток = 0; Для Счетчик = 1 По РазмерСписка Цикл ТовОстаток = ТовОстатки + СписокОст.ПолучитьЗначение(Счетчик); КонецЦикла; КонецЕсли; Иначе ТовОстаток=ТовОстатки; КонецЕсли; //меняемяем: ТаблицаОстатки.Количество = ТовОстатки; ТаблицаОстатки.Цена = ТовЦены; ТаблицаОстатки.Валюта = ТовВалюта; //вставляем: Если Отобрать=1 тогда Если (ТовОстатки<>0) или (Номенклатура.ЭтоГруппа()=1) и (Отбирать=0) тогда Спис.ДобавитьЗначение(Номенклатура); КонецЕсли; КонецЕсли; //после строки: КонецЦикла; //вставляем: Если (Отобрать=1) и (Отбирать=1) тогда ИспользоватьСписокЭлементов(Спис); //Выводим только имеющиеся в наличии Иначе ИспользоватьСписокЭлементов(); //отключаем фильтр КонецЕсли; КонецПроцедуры //ЗаполнитьКЭШ() Процедура ПоКнопкеИзменитьФильтр() //после строки: Параметр.ДобавитьЗначение(ВключатьВпрайс, "ВключатьВпрайс"); //вставляем: Параметр.ДобавитьЗначение(Отобрать, "Отобрать"); Параметр.ДобавитьЗначение(ИерархическийСписок(),"ВидОтобрать"); //после строки: ВключатьВпрайс = Параметр.Получить("ВключатьВпрайс"); //вставляем: Отобрать = Параметр.Получить("Отобрать"); Процедура ПриСменеИерархии(Способ) //после строки: Форма.ПоказатьОстаткиЦену.Видимость(Способ); //меняемяем: УправлениеВидимостью(ПоказатьОстаткиЦену, Способ); //вставляем: // Отобрать=0; ИзменениеФильтра(Родитель); Процедура УправлениеВидимостью(ВидимостьКолонок, Иерархичность) //после строки: Форма.ВалютаНоменклатуры.Видимость(ВидимостьЦен); //вставляем: Форма.КнОтобрать.Видимость(?(ВидимостьЦен=1,0,1)); Справочник: "Номенклатура", форма "ДляПодбора" кнопка "КнОтобрать" ЗаполнитьКЭШ(ПолучитьПустоеЗначение("Справочник.Номенклатура"), 1)