|   |   | 
| 
 | v7: ОбработкаПодбора | ☑ | ||
|---|---|---|---|---|
| 0
    
        tixis 01.10.13✎ 10:37 | 
        На форме есть 2 списка значений  с одинаковым типом "Справочник.Номенклатура", как организовать подбор в разные списки
 сейчас написал : Процедура ОбработкаПодбора(Элемент,кон) Если Элемент.вид() = "Номенклатура" Тогда НомерСтроки = 0; Если ФормаПодбора.ТекущийЭлемент().ЭтоГруппа() = 1 Тогда спрНоменклатура = СоздатьОбъект("Справочник.Номенклатура"); спрНоменклатура.ИспользоватьРодителя(ФормаПодбора.ТекущийЭлемент()); спрНоменклатура.ВыбратьЭлементы(); Пока спрНоменклатура.ПолучитьЭлемент() = 1 Цикл Если спрНоменклатура.ТекущийЭлемент().ЭтоГруппа() = 0 Тогда Если ВыбНоменклатура.НайтиЗначение(спрНоменклатура.ТекущийЭлемент())=0 Тогда ВыбНоменклатура.ДобавитьЗначение(спрНоменклатура.ТекущийЭлемент()); КонецЕсли; КонецЕсли; КонецЦикла; Иначе Если ВыбНоменклатура.НайтиЗначение(ФормаПодбора.ТекущийЭлемент())=0 Тогда ВыбНоменклатура.ДобавитьЗначение(ФормаПодбора.ТекущийЭлемент()); КонецЕсли; КонецЕсли; // надо, чтобы всегда была текущая строка Если ВыбНоменклатура.РазмерСписка() > 0 Тогда ВыбНоменклатура.ТекущаяСтрока(ВыбНоменклатура.РазмерСписка()); КонецЕсли; ИначеЕсли Элемент.вид() = "Склады" Тогда Если ВыбСклад.НайтиЗначение(Элемент) = 0 Тогда ВыбСклад.ДобавитьЗначение(Элемент); КонецЕсли; ИначеЕсли Элемент.вид() = "Контрагенты" Тогда Если (СписокЭлементовМФ.НайтиЗначение(Элемент)=0) Тогда Представление=""+Элемент; Если ТипЗначенияСтр(Элемент)="Справочник" Тогда Если СокрЛП(Метаданные.Справочник(Элемент.Вид()).Владелец) <> "Метаданные" Тогда Представление=Представление+" ("+Элемент.Владелец+")"; КонецЕсли; КонецЕсли; СписокЭлементовМФ.ДобавитьЗначение(Элемент,Представление); ТаблицаМФ.ФлВкл=2; КонецЕсли; КонецЕсли; КонецПроцедуры Процедура ДобавитьОбязПозиции(ФлагМножВыбора) ФормаПодбора = СоздатьОбъект("СписокЗначений"); ФормаПодбора.ДобавитьЗначение("ПодбиратьГруппы","ПодбиратьГруппы"); ФормаПодбора.ДобавитьЗначение(ФлагМножВыбора,"ФлагМножВыбора"); Если ОбязательныеПозиции.РазмерСписка() > 0 Тогда ОткрытьПодбор("Справочник.Номенклатура","ОбязательныеПозиции",ФормаПодбора,ФлагМножВыбора, ОбязательныеПозиции.ПолучитьЗначение(ОбязательныеПозиции.ТекущаяСтрока())); Иначе ОткрытьПодбор("Справочник.Номенклатура","ОбязательныеПозиции",ФормаПодбора,ФлагМножВыбора); КонецЕсли; ФормаПодбора.ВыборГруппы(1); КонецПроцедуры Процедура ДобавитьНоменклатуру(ФлагМножВыбора) ФормаПодбора = СоздатьОбъект("СписокЗначений"); ФормаПодбора.ДобавитьЗначение("ПодбиратьГруппы","ПодбиратьГруппы"); ФормаПодбора.ДобавитьЗначение(ФлагМножВыбора,"ФлагМножВыбора"); Если ВыбНоменклатура.РазмерСписка() > 0 Тогда ОткрытьПодбор("Справочник.Номенклатура",,ФормаПодбора,ФлагМножВыбора, ВыбНоменклатура.ПолучитьЗначение(ВыбНоменклатура.ТекущаяСтрока())); Иначе ОткрытьПодбор("Справочник.Номенклатура",,ФормаПодбора,ФлагМножВыбора); КонецЕсли; ФормаПодбора.ВыборГруппы(1); КонецПроцедуры но все заполняется в выбНоменклатура, вот в обработке подбора как мне разграничивать какой список заполнять? | |||
| 1
    
        ДенисЧ 01.10.13✎ 10:39 | 
        Я вводил переменную модуля "текущий список подбора" и в обработке в него пихал...     | |||
| 2
    
        Аццкий Чибуражко 01.10.13✎ 10:48 | 
        в коде используется только один список значения, поэтому и добавляется только в него... если тебе нужно добавить в другой, то нужно его и использовать...
 Иначе Если ВыбНоменклатура.НайтиЗначение(ФормаПодбора.ТекущийЭлемент())=0 Тогда // ВыбНоменклатура.ДобавитьЗначение(ФормаПодбора.ТекущийЭлемент()); ДругойСписокВыбНоменклатура.ДобавитьЗначение(ФормаПодбора.ТекущийЭлемент()); КонецЕсли; КонецЕсли; | |||
| 3
    
        tixis 01.10.13✎ 11:32 | 
        (1) так и сделал спасибо     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |