![]() |
![]() |
![]() |
|
Как перенести программно элемент справочника в другую группу? | ☑ | ||
---|---|---|---|---|
0
Platon
10.10.04
✎
08:01
|
Подскажите как можно перенести элемент в другую группу программно
// сз список значений стр = ""; Для Номер = 1 По сз.РазмерСписка() Цикл код = сз.ПолучитьЗначение(Номер, стр); //получить значение и представление Если (спр.НайтиПоРеквизиту("НомерР3",СокрЛП(код),1)=1) Тогда Работающие = СпрСотр.ТекущийЭлемент(); спр.ИспользоватьРодителя(Работающие); КонецЕсли; Состояние("Перенесён элемент "+спр.Код+" Всего "+i); КонецЦикла; |
|||
1
mszsuz
10.10.04
✎
08:30
|
Если (спр.НайтиПоРеквизиту("НомерР3",СокрЛП(код),1)=1) Тогда
Спр.Родитель = СпрСотр.ТекущийЭлемент(); Спр.Записать(); КонецЕсли; |
|||
2
Platon
10.10.04
✎
08:57
|
Так когда делаю выдаёт ошибку:
спр.Parent = спр.ТекущийЭлемент(); неверное значение ********** спр=СоздатьОбъект("Справочник.Материалы"); НачатьТранзакцию(); спр.НайтиПоКоду("520000"); Род=спр.ТекущийЭлемент(); стр = ""; Для Номер = 1 По сз.РазмерСписка() Цикл код = сз.ПолучитьЗначение(Номер, стр); //получить значение и представление Если (спр.НайтиПоРеквизиту("НомерР3",код,1)=1) Тогда спр.Parent = спр.ТекущийЭлемент(); спр.Write(); Состояние("Перенесён элемент "+спр.Код+" Всего "+i); КонецЕсли; КонецЦикла; ЗафиксироватьТранзакцию(); |
|||
3
Platon
10.10.04
✎
09:09
|
Уже и так пробовал и всё равно все остаются в своей группе
********** спр=СоздатьОбъект("Справочник.Материалы"); НачатьТранзакцию(); спр.НайтиПоКоду("520000"); Род=спр.ТекущийЭлемент(); стр = ""; Для Номер = 1 По сз.РазмерСписка() Цикл код = сз.ПолучитьЗначение(Номер, стр); //получить значение и представление Если (спр.НайтиПоРеквизиту("НомерР3",код,1)=1) Тогда спр.НайтиЭлемент(спр.ТекущийЭлемент()); спр.Parent = Род; спр.Write(); Состояние("Перенесён элемент "+спр.Код+" Всего "+Номер); КонецЕсли; КонецЦикла; ЗафиксироватьТранзакцию(); |
|||
4
mszsuz
10.10.04
✎
09:28
|
Проверь, находит ли
Если спр.НайтиПоКоду("520000") = 0 тогда Сообщить("Не найден"); Возврат; КонецЕсли; в (2): спр.Parent = спр.ТекущийЭлемент(); // !!! ты пытаешься самого себя присвоить в качестве родителя; в (3): // лишнее спр.НайтиЭлемент(спр.ТекущийЭлемент()); |
|||
5
Platon
10.10.04
✎
09:59
|
Похоже поехало. Я действительно не правильно искал и после проверки мне выдало что не находит Теперь я в найти по коду установил флаг глобального поиска с учётом ваших замечаний и вроде перенос идёт только медленно я наверно ждать не буду и посмотрю завтра что получилось. Спасибо.:)
спр=СоздатьОбъект("Справочник.Материалы"); НачатьТранзакцию(); Если спр.НайтиПоНаименованию("Запчасти ОГМ",0,1) = 0 тогда Сообщить("Не найден"); Возврат; Иначе Род=спр.ТекущийЭлемент(); КонецЕсли; стр = ""; Для Номер = 1 По сз.РазмерСписка() Цикл код = сз.ПолучитьЗначение(Номер, стр); //получить значение и представление Если (спр.НайтиПоРеквизиту("НомерР3",код,1)=1) Тогда //спр.НайтиЭлемент(спр.ТекущийЭлемент()); спр.Parent = Род; спр.Write(); Состояние("Перенесён элемент "+спр.Код+" Всего "+Номер); КонецЕсли; КонецЦикла; ЗафиксироватьТранзакцию(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |