![]() |
ИспользоватьВладельца() и ИспользоватьРодителя() совместно не работают что-ли ? Есть подч.справочник. Делаю выборку ... Спр.ИспользоватьВладельца(ТекВладелец); Спр.ИспользоватьРодителя(ТекРодитель); Спр.ВыбратьЭлементы(); ... И что-то отбор по родительской группе не работает. Неожиданно. |
Работает. Вот кусок модуля из ЗиК: [em]СпрВидыСубконто = СоздатьОбъект("Справочник.ВидыСубконто"); СпрЗначенияСубконто = СоздатьОбъект("Справочник.ЗначенияСубконто"); СпрЗначенияСубконтоРодитель = СоздатьОбъект("Справочник.ЗначенияСубконто"); ИмяСубконто = "Договоры"; // "Основание" Если СпрВидыСубконто.НайтиПоНаименованию(ИмяСубконто) = 1 Тогда СпрЗначенияСубконто.ИспользоватьВладельца(СпрВидыСубконто.ТекущийЭлемент()); СпрЗначенияСубконтоРодитель.ИспользоватьВладельца(СпрВидыСубконто.ТекущийЭлемент()); Если СпрЗначенияСубконтоРодитель.НайтиПоНаименованию(СокрЛП(НедостающийКонтрагент)) = 1 Тогда СпрЗначенияСубконто.ИспользоватьРодителя(СпрЗначенияСубконтоРодитель.ТекущийЭлемент()); Наименование = глПредставлениеДокумента(Документ); Если СпрЗначенияСубконто.НайтиПоНаименованию(СокрЛП(Наименование)) = 0 Тогда // если не найден, то возьмем первый существующий договор СпрЗначенияСубконто.ВыбратьЭлементы(); Пока СпрЗначенияСубконто.ПолучитьЭлемент() = 1 Цикл Прервать; КонецЦикла; КонецЕсли; НедостающийДоговор = СпрЗначенияСубконто.ТекущийЭлемент(); КонецЕсли; КонецЕсли;[/em] |
(0) "[em]И что-то отбор по родительской группе не работает[/em]" - что значит "не работает"? Выборка пустая или наоборот, в нее попадают лишние элементы? |
2-Ткачик >В выборку попадают ВСЕ элементы справочника. |
(3) Картина понемножку проясняется. Откуда берутся ТекВладелец и ТекРодитель? |
4-Ткачик >Да, я уже вкурил. ТекВладелец и ТекРодитель передаются в обработку через список значений. Помогло Спр.ИспользоватьВладельца(ТекВладелец.ТекущийЭлемент()); Спр.ИспользоватьРодителя(ТекРодитель.ТекущийЭлемент()); |
(5) "[em]Помогло Спр.ИспользоватьВладельца(ТекВладелец.ТекущийЭлемент()); Спр.ИспользоватьРодителя(ТекРодитель.ТекущийЭлемент());[/em]" Именно это я и заподозрил. |
Текущее время: 22:55. Часовой пояс GMT +3. |