Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   ИспользоватьВладельца() и ИспользоватьРодителя() совместно не работают что-ли ? (http://forums.kuban.ru/f1040/ispol-zovat-vladel-ca_i_ispol-zovat-roditelya_sovmestno_ne_rabotayut_chto-li-6137577.html)

Marlboro 29.09.2014 19:47

ИспользоватьВладельца() и ИспользоватьРодителя() совместно не работают что-ли ?
 
Есть подч.справочник.
Делаю выборку
...
Спр.ИспользоватьВладельца(ТекВладелец);
Спр.ИспользоватьРодителя(ТекРодитель);
Спр.ВыбратьЭлементы();
...
И что-то отбор по родительской группе не работает.
Неожиданно.

VZ 29.09.2014 20:34

Работает. Вот кусок модуля из ЗиК:
[em]СпрВидыСубконто = СоздатьОбъект("Справочник.ВидыСубконто");
СпрЗначенияСубконто = СоздатьОбъект("Справочник.ЗначенияСубконто");
СпрЗначенияСубконтоРодитель = СоздатьОбъект("Справочник.ЗначенияСубконто");
ИмяСубконто = "Договоры"; // "Основание"

Если СпрВидыСубконто.НайтиПоНаименованию(ИмяСубконто) = 1 Тогда
СпрЗначенияСубконто.ИспользоватьВладельца(СпрВидыСубконто.ТекущийЭлемент());
СпрЗначенияСубконтоРодитель.ИспользоватьВладельца(СпрВидыСубконто.ТекущийЭлемент());
Если СпрЗначенияСубконтоРодитель.НайтиПоНаименованию(СокрЛП(НедостающийКонтрагент)) = 1 Тогда

СпрЗначенияСубконто.ИспользоватьРодителя(СпрЗначенияСубконтоРодитель.ТекущийЭлемент());
Наименование = глПредставлениеДокумента(Документ);
Если СпрЗначенияСубконто.НайтиПоНаименованию(СокрЛП(Наименование)) = 0 Тогда
// если не найден, то возьмем первый существующий договор
СпрЗначенияСубконто.ВыбратьЭлементы();
Пока СпрЗначенияСубконто.ПолучитьЭлемент() = 1 Цикл
Прервать;
КонецЦикла;
КонецЕсли;
НедостающийДоговор = СпрЗначенияСубконто.ТекущийЭлемент();
КонецЕсли;

КонецЕсли;[/em]

Ткачик 29.09.2014 21:04

(0) "[em]И что-то отбор по родительской группе не работает[/em]" - что значит "не работает"? Выборка пустая или наоборот, в нее попадают лишние элементы?

Marlboro 29.09.2014 22:06

2-Ткачик >В выборку попадают ВСЕ элементы справочника.

Ткачик 29.09.2014 22:09

(3) Картина понемножку проясняется. Откуда берутся ТекВладелец и ТекРодитель?

Marlboro 29.09.2014 22:20

4-Ткачик >Да, я уже вкурил.
ТекВладелец и ТекРодитель передаются в обработку через список значений.
Помогло
Спр.ИспользоватьВладельца(ТекВладелец.ТекущийЭлемент());
Спр.ИспользоватьРодителя(ТекРодитель.ТекущийЭлемент());

Ткачик 29.09.2014 22:26

(5)
"[em]Помогло
Спр.ИспользоватьВладельца(ТекВладелец.ТекущийЭлемент());
Спр.ИспользоватьРодителя(ТекРодитель.ТекущийЭлемент());[/em]"

Именно это я и заподозрил.


Текущее время: 22:55. Часовой пояс GMT +3.