![]() |
|
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) так и сделал спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |