|
v7: Объект не может быть перепозиционирован! | ☑ | ||
---|---|---|---|---|
0
Trotter
08.06.16
✎
07:31
|
Если ПустоеЗначение(РодДляТД) = 1 Тогда
Сообщить("Прервано"); Возврат; КонецЕсли; Искомый = "{ТД}"; нСпр = СоздатьОбъект("Справочник.Номенклатура"); нСпр.ВыбратьЭлементы(); Пока нСпр.ПолучитьЭлемент() = 1 Цикл ТекЭл = нСпр.ТекущийЭлемент(); Если Найти(СокрЛП(нСпр.Наименование), СокрЛП(Искомый)) > 0 Тогда ТекЭл.Родитель = ""; Если ТекЭл.Родитель <> РодДляТД Тогда ТекЭл.Родитель = РодДляТД; нСпр.Записать(); КонецЕсли; КонецЕсли; КонецЦикла; Как правильно переместить найденный объект в другую группу, почему вываливается сабж ? |
|||
1
big
08.06.16
✎
07:36
|
нСпр.ВыбратьЭлементы(0);
|
|||
2
Zmich
08.06.16
✎
07:36
|
(0). Сбивается выборка сменой родителя.
|
|||
3
vcv
08.06.16
✎
07:37
|
Пройтись по справочнику и запомнить нужные элементы в списке значений. Потом перебрать значения в списке и как надо их изменять.
Или выбрать элементы не перебором справочника, а запросом. ТОгда результаты запроса выгрузить в таблиццу значений. Строки таблицы перебрать, записывая как надо элементы. |
|||
4
Zmich
08.06.16
✎
07:39
|
Кажется, был в 7-ке метод, позволяющий не иерархически выбирать элементы, что-то типа ПорядокКодов. Тогда выборка не сбивается.
|
|||
5
vcv
08.06.16
✎
07:43
|
У ТС есть группа, которую перебирать надо (РодДляТД).
Не самое разумное решение перебирать весь справочник без иерархии. Вдруг там несколько сотен тысяч элементов :) |
|||
6
vcv
08.06.16
✎
07:43
|
(5) Ой, нет, вру. Это группа, куда перемещать надо.
|
|||
7
big
08.06.16
✎
07:56
|
интересно вот это
ТекЭл.Родитель = ""; Если ТекЭл.Родитель <> РодДляТД Тогда зачем сравнивать заведомо пустое значение с чем либо? |
|||
8
ifso
08.06.16
✎
08:04
|
(7)
> зачем сравнивать заведомо пустое значение с чем либо? ну а вдруг, не? |
|||
9
Trotter
08.06.16
✎
08:50
|
Приведите пример пожалуйста как сделать. А то добавляю в ТЗ. А в неё добавляются пустые строки )
ТЗ.Номенклатура = нСпр - так нельзя ?) Хотя написано, что можно писать любой тип (ТипЗначенияСтр(нСпр) "Справочник") |
|||
10
Зая Бусечка
08.06.16
✎
08:51
|
ТЗ.Номенклатура = нСпр.ТекущийЭлемент()
|
|||
11
пипец
08.06.16
✎
08:54
|
вот и выросло поколение не понимающее клюшки )))
ЗЫ достаточно перепозиционировать выборку |
|||
12
big
08.06.16
✎
08:58
|
(9) Пробовал выборку делать без иерархии, как в (1) показано?
|
|||
13
Bigbro
08.06.16
✎
09:30
|
нСпр2 = СоздатьОбъект("Справочник.Номенклатура");
... нСпр2.НайтиЭлемент(нСпр); наСпр2.Родитель=РодДляТД; нСпр2.Записать(); |
|||
14
Trotter
08.06.16
✎
09:42
|
С тз вот так вот не работает
ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку() = 1 Цикл Если ТЗ.Номенклатура.Родитель <> РодДляТД Тогда ТЗ.Номенклатура.Родитель = РодДляТД; КонецЕсли; КонецЦикла; Сейчас (13) Попробую |
|||
15
пипец
08.06.16
✎
09:45
|
(14) в этом случае
нСпр2 = СоздатьОбъект("Справочник.Номенклатура"); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку() = 1 Цикл Если ТЗ.Номенклатура.Родитель <> РодДляТД Тогда ... нСпр2.НайтиЭлемент(ТЗ.Номенклатура); наСпр2.Родитель=РодДляТД; нСпр2.Записать(); КонецЕсли; КонецЦикла; |
|||
16
пипец
08.06.16
✎
09:45
|
нСпр2.Родитель=РодДляТД;
|
|||
17
Trotter
08.06.16
✎
09:55
|
(15) Спасибо. Да так заработало. Только долго чёт ) Правда позиций 1000+ секунд 30... )
|
|||
18
пипец
08.06.16
✎
10:01
|
(17) Запрос по справочнику с условием потом
ТЗЗЗ=создатьобъект("ТаблицаЗначений"); Запрос.Выгрузить(ТЗЗЗ,0,0); Потом перебираешь ТЗ , быстрее будет |
|||
19
Ёпрст
08.06.16
✎
10:03
|
(18) зачем там ТЗ
|
|||
20
Ёпрст
08.06.16
✎
10:03
|
?
|
|||
21
пипец
08.06.16
✎
10:03
|
+ а если еще перед выборкой ТЗ поставить начатьтранзакцию а после зафиксироватьтранзакцию ))) еще быстрее
|
|||
22
Ёпрст
08.06.16
✎
10:03
|
И ..быстрее будет, открыть для себя Uchoice или update
|
|||
23
пипец
08.06.16
✎
10:04
|
(19) в (15) - написано "в этом случае" (с) про без ТЗ было уже описано
|
|||
24
пипец
08.06.16
✎
10:06
|
(22) Если Найти(СокрЛП(нСпр.Наименование), СокрЛП(Искомый)) > 0 Тогда строка из (0) не смутила ? )
|
|||
25
Trotter
08.06.16
✎
10:17
|
(24) Чем она кого - то должна смутить ?)
Она говорит об моём дилетантском уровне ?) |
|||
26
Ёпрст
08.06.16
✎
10:18
|
(24) нет, ючойз может искать по наименованию и поиск по подстроке тоже есть
|
|||
27
пипец
08.06.16
✎
10:52
|
(26) ну для этого как минимум нужно знать, что они есть ... ))) по мне так порой проще за 5-ть минут написать - чем копаться в сборнике обработок )))
(25) не в этом дело - не все универсальные обработки - сильно универсальны ... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |