|
v7: Выборка элементов справочника не обходит все элементы! | ☑ | ||
|---|---|---|---|---|
|
0
Vitekkkk
31.05.13
✎
13:16
|
Обхожу справочник контрагентов проверяю есть ли по нем движения и если нет переношу их в другую группу. Но при обходе он берет только 1 контрагента из группы. Туплю не могу въехать почему всех не обходит в каждой подгруппе. Посмотрите мож че видно по коду (папкаС содержит в себе 1 уровень подгрупп):
СпрВ = СоздатьОбъект("Справочник.ВидыДоговоров"); СпрВ.НайтиПоКоду(13); ВыбВид = СпрВ.ТекущийЭлемент(); Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с НачДата по КонДата; |Обрабатывать НеПомеченныеНаУдаление; |Контрагент = Регистр.Продажи.Контрагент; |Менеджер = Регистр.Продажи.Контрагент.Менеджер; |Регион = Регистр.Продажи.Контрагент.Регион; |Количество = Регистр.Продажи.Количество; |ВидДоговора = Регистр.Продажи.Договор.ВидДоговора; |Функция КоличествоСумма = Сумма(Количество); |Группировка Контрагент упорядочить по Контрагент.Наименование без групп; |Условие(ВидДоговора = ВыбВид); |Условие(Контрагент в ПапкаС); |"//}}ЗАПРОС ; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Спр = СоздатьОбъект("Справочник.Контрагенты"); Спр.ИспользоватьРодителя(ПапкаС); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент() = 1 Цикл Если Спр.ЭтоГруппа() = 0 Тогда Если Запрос.Получить(Спр.ТекущийЭлемент()) = 0 Тогда Спр.Родитель = ПапкаВ; Спр.Записать(); КонецЕсли; КонецЕсли; КонецЦикла; |
|||
|
1
Ненавижу 1С
гуру
31.05.13
✎
13:19
|
потому что ты портишь выборку своими переносами, сначала сформируй коллекцию "переносимых" элементов, а потом все их перенеси
|
|||
|
2
KishMish
31.05.13
✎
13:19
|
ты записываешь тот же споциционирвоанный элмент из выборки. и выборка сбивается.
тебе нао сделать доп переменную Спр ДляЗаписи=СоздатьОбъект("Справочник.Контрагенты"); а вц кикле ДляЗаписи.НайтиЭлемент(Спр.ТекущийЭлемент()); ДляЗаписи.Родитель = ПапкаВ; ДляЗаписи.Записать(); |
|||
|
3
Ёпрст
гуру
31.05.13
✎
13:21
|
(0) наслаждайся:
Спр = СоздатьОбъект("Справочник.Контрагенты"); Спр.ИспользоватьРодителя(ПапкаС); Спр.ВыбратьЭлементы(); Спр.Родитель = ПапкаВ; Спр.Записать(); //перенесёт всех в выбранную папку |
|||
|
4
Vitekkkk
31.05.13
✎
13:27
|
(2) Точно! затупил. Спасибо....
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |