![]() |
|
Не присваивается родитель в цикле | ☑ | ||
---|---|---|---|---|
0
strh
28.10.13
✎
16:31
|
УТ 10
перенес номенклатуру из 7.7 через тестовый файл часть элементов не распределилась по группам прохожусь циклом по файлу получаю элемент(ИД) и группу(ИДр) в которой он должен находится, далее код Спр=Справочники.Номенклатура.НайтиПоРеквизиту("ИД7",ИД).ПолучитьОбъект(); Род=Справочники.Номенклатура.НайтиПоРеквизиту("ИД7",ИДр); Спр.Родитель=Род; Спр.Записать(); родитель не меняется Если же я добавляю условие, чтобы обработать один конкретные элемент Если Наименование<>"Автолампа" Тогда Продолжить; КонецЕсли; Спр=Справочники.Номенклатура.НайтиПоРеквизиту("ИД7",ИД).ПолучитьОбъект(); Род=Справочники.Номенклатура.НайтиПоРеквизиту("ИД7",ИДр); Спр.Родитель=Род; Спр.Записать(); Если Наименование="Автолампа" Тогда Прервать; КонецЕсли; то элемент переносится в нужную группу, хотя когда обрабатывался в цикле без условия то переноса не происходило в чем может быть причина |
|||
1
Господин ПЖ
28.10.13
✎
16:33
|
>в чем может быть причина
руки с ж.пы - в это укладывается 99% случаев... |
|||
2
NcSteel
28.10.13
✎
16:33
|
В цикле не меняется ИД или ИДр, поэтому постоянно мучается один и тот же элемент, а остальные не обрабатываются..
Смотри отладчик. |
|||
3
palpetrovich
28.10.13
✎
16:35
|
в отладчике смотрел, элемент находится, объект получается?
зы: как-бы правильней было-бы так: Ссылка = Справочники.Номенклатура.НайтиПоРеквизиту("ИД7",ИД) если Не Ссылка = неопределено тогда Объект = Ссылка.ПолучитьОбъект ... |
|||
4
NcSteel
28.10.13
✎
16:38
|
Ссылка не может быть равна неопределено, так как если не найдет, то получим пустую ссылку.
|
|||
5
strh
28.10.13
✎
16:43
|
(2) (3) для этого и ставил условия, чтобы посмотреть отладчиком что происходит на тех элементах которые не переносятся, но как только ставлю условие все отрабатывается
(3) элементы все есть по этому упростил уже до минимума выбросив все лишнее, все группы и все элементы находятся ставил ословия с точками останова Спр=Справочники.Номенклатура.НайтиПоРеквизиту("ИД7",ИД).ПолучитьОбъект(); Род=Справочники.Номенклатура.НайтиПоРеквизиту("ИД7",ИДр); Спр.Родитель=Род; Спр.Записать(); Если Спр.Родитель<>Род Тогда Сообщить(1); КонецЕсли; Если род=Справочники.Номенклатура.ПустаяСсылка() Тогда Сообщить(2); Конецесли; ничего не выдает, но элементы остаются в корне |
|||
6
NcSteel
28.10.13
✎
16:46
|
Почему не хочешь посмотреть в отладчике? Без всяких условий в коде?
|
|||
7
Wobland
28.10.13
✎
16:47
|
(4) иногда может
|
|||
8
strh
28.10.13
✎
16:49
|
очень много элементов 90% перенеслись нормально, куда ставить точку останова так чтобы не щелкать продолжить пока дождешься "сбойного" элемента
|
|||
9
strh
28.10.13
✎
16:49
|
(8) к (6)
|
|||
10
palpetrovich
28.10.13
✎
16:50
|
(4) есичё в (3) - это не код, это направление :)
(5) чудес не бывает, давай весь код в студию |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |