[Форум] [Помощь] [Поиск] [Выйти] |
Добро пожаловать, User |
|
|
| ||
В крадце: СпрК = СоздатьОбъект(Справочник.Контрагенты); СпрД = СоздатьОбъект(Справочник.Договоры); СпрК.ВыбратьЭлементы(); Пока СпрК.ПолучитьЭлемент() = 1 Цикл СпрД.ИспользоватьВладельца(СпрК.ТекущийЭлемент()); СпрД.ВыбратьЭлементы(); Пока СпрД.ПолучитьЭлемент() = 1 Цикл Сообщить(Уровень + СпрД.Уровень()); КонецЦикла; КонецЦикла; Когда цикл переходит на второго контрагента, выдается сообщения Уровень 2 или Уровень 3, т.е еще обрабатываются подчиненные записи первого и не возможно создать группу. Может кто сталкивался с таким? |
| ||
Если попал и при втором контрагенте во внутренний цикл, откуда и выводится СООБЩИТЬ значит и у этого второго контрагента есть договор, но совершенно не значит, что еще обрабатываются подчиненные записи первого и не возможно создать группу |
| ||
Сталкивался, вечерком посмотрю записи свои (на работу порулил, некогда). |
| ||
Борода, уже вечер, роди что - нибудь дельное, а то я на грани отчаяния. |
| ||
Уже утро следующего дня :) |
| ||
Вчера убегал, прочитал не очень внимательно. Кому ты группу созавать собираешься ? Все должно работать. Проверь релиз или возможно в справочнике договора разрешен один уровень... И поточней желательно, а то я так довно тебы не видел и не слушал, что стал плохо понимать. |
| ||
Сообщить(СпрК.Наименование); в начале цикла по контрагентам может быть прояснит ситуацию? У второго контрагента есть группа договоров (иначе откуда уровни 2, 3), а значит у него должен наблюдаться и уровень 1. Если это не так тогда и верно хрень, и без GOTO там (в реальном алгоритме, а не примере) не обошлось :) |
| ||
В том-то вся фишка, что у второго еще нет ни одной записи в подчиненом справочнике и мне надо програмно создать группу, но получается, что я создаю погруппу для первого контрагента. |
| ||
На сонную голову могу посоветовать вот так: СпрК = СоздатьОбъект(Справочник.Контрагенты); СпрК.ВыбратьЭлементы(); Пока СпрК.ПолучитьЭлемент() = 1 Цикл СпрД = СоздатьОбъект(Справочник.Договоры); СпрД.ИспользоватьВладельца(СпрК.ТекущийЭлемент()); СпрД.ВыбратьЭлементы(); Пока СпрД.ПолучитьЭлемент() = 1 Цикл Сообщить(Уровень + СпрД.Уровень()); КонецЦикла; КонецЦикла; |
| ||
Я понял твою идею: сделать движение по договорам, что бы соскочить со старого владельца, но если там записей еще нет, то цикл проходит вхолостую и ничего от этого не меняется. Хотя идею с созданием объекта внутри, а не снаружи первого цикла надо попробовать. |
| ||
Не смог повторить вашу ситуацию, у меня нормально создавались группы первого уровня. Может просто что то не понял. Возможно создавать группу внутри первого цикла и не стоит, может будет достаточно сделать выборку без учета владельца? перед использовать владельца? |
| ||
Шапка, а может релиз глючный? Поставь другой. А еще похоже что индексы дурят. |
| ||
Спасибо всем за участие идея Мэйджика пришлась впору. Создавать каждый раз подчиненный объект внутри цикла. |
| ||
Релиз у тебя старый... |
| ||
18. А с 19 Цитрикс не дружит. |
| ||
Так это работу замедлит, если много создавать будешь.... |
| ||
Раз в месяц 4 минуты можно подождать. |