![]() |
![]() |
![]() |
|
Подскажите по поиску "дублей" во вложенном цикле | ☑ | ||
---|---|---|---|---|
0
Ковычки
15.05.13
✎
11:59
|
Есть крайне тупой код, не понимаю где ошибка кроме ДНК ?
(удаляет и уже удаленные)
|
|||
1
Laerys
15.05.13
✎
12:18
|
(0) Чутка подробнее проблему можно описать?)
|
|||
2
Ковычки
15.05.13
✎
12:25
|
В коде во вложенном цикле есть УтановитьПометкуУдаления и Продолжить если элемент помечен на удаление, но при выполнении помеченные на удаления (в этом коде) не пропускаются, а так же попадают в проверку.
|
|||
3
H A D G E H O G s
15.05.13
✎
12:28
|
Надо же.
Сам Смахабр пишет копрокот. Неожидал. |
|||
4
User_Agronom
15.05.13
✎
12:32
|
Цикл по всему справочнику номенклатуры? Жестоко.
Предположу: Команду Сп=Новый Массив; Поставь вместо Сп.Очистить(); У меня было что-то похожее. Метод массива очистить не всегда отрабатывает. Т.е. часто отрабатывает как-то странно. |
|||
5
Laerys
15.05.13
✎
12:34
|
ВыбХар1=Харки.Выбрать(,Выбор.Ссылка);
Пока ВыбХар1.Следующий() Цикл Хар1=ВыбХар1.ПолучитьОбъект(); Если Хар1.ПометкаУдаления Тогда Продолжить; КонецЕсли; ВыбХар2=Харки.Выбрать(,Выбор.Ссылка); мб из-за этого: ВыбХар2 и Выбхар1 получаются одинаковые, и дважды получаются |
|||
6
mikecool
15.05.13
✎
12:34
|
(3) да. что то он в последнее время заработался )))
|
|||
7
Laerys
15.05.13
✎
12:36
|
(4) Примерно так же использовал массив для поиска ссылок, очистка массива отрабатывала нормально.
|
|||
8
Ковычки
15.05.13
✎
12:40
|
(3)(6) почему бы и нет, восьмерку не знаю, а надо разово и на коленке
|
|||
9
User_Agronom
15.05.13
✎
12:40
|
(7) Год назад дело было. Поправили может быть.
Но он в некоторых случаях отрабатывал правильно, в некоторых нет. При пошаговом проходе было видно, что массив не очищался. От чего зависило так и не понял. Были обработки, где работало правильно |
|||
10
Ковычки
15.05.13
✎
12:41
|
(5) пусть одинаковые, но утановитьпометку не отрабатывает "как бы".
|
|||
11
Ковычки
15.05.13
✎
12:43
|
(9) не изменилось, да и ссылки оно верно находит
походу буду исправляться по совету бывалых (3) и (6) |
|||
12
Laerys
15.05.13
✎
12:55
|
||||
13
Ковычки
15.05.13
✎
13:04
|
(12) бред, про объяснения.
сменил копрокод на еще копрее Хар2.ПометкаУдаления=Истина; Хар2.Записать(); но ни Если Хар1.ПометкаУдаления Тогда Продолжить; КонецЕсли; ни Если Хар2.ПометкаУдаления Тогда Продолжить; КонецЕсли; не отрабатывают. Краем глаза слыхал про всякое кэширование в восьмерке - это не оно ? (не взирая на копрость сабжа, нормальный человек посчитает, что код рабочий) |
|||
14
Ковычки
15.05.13
✎
13:04
|
Вывод сообщить
БС ШБ/К.10.01.10 == Вишня- 3 == Вишня-3 БС ШБ/К.10.01.10 == Вишня-3 == Вишня- 3 БС ШБ/К.10.01.10 == Милан - 3 == Милан-3 БС ШБ/К.10.01.10 == Милан-3 == Милан - 3 Выполнение прервано пользователем! |
|||
15
Ковычки
15.05.13
✎
13:08
|
поменял на удаление внешней выборки вместо внутренней, все стало работать - объясните данный бред ?!
Хар1.ПометкаУдаления=Истина; Хар1.Записать(); |
|||
16
Ковычки
15.05.13
✎
13:12
|
+(15)
Ну и конечно Сп.Добавить(Хар2.Ссылка); поменял на Сп.Добавить(Хар1.Ссылка); |
|||
17
wms
15.05.13
✎
13:14
|
зачем у объекта см. пометка удаления?
Хар1=ВыбХар1.ПолучитьОбъект(); Если Хар1.ПометкаУдаления Тогда Продолжить; КонецЕсли; можно же сразу у ссылки |
|||
18
Ковычки
15.05.13
✎
13:15
|
(17) сперва была ссылка, после стал объект, все монописуарно
|
|||
19
wms
15.05.13
✎
13:15
|
тем более потом опять из этого объекта получаешь ссылку...
|
|||
20
wms
15.05.13
✎
13:15
|
в том то и дело что писсуарно
|
|||
21
Ковычки
15.05.13
✎
13:15
|
(20) читай (18)
|
|||
22
Ковычки
15.05.13
✎
13:16
|
в (18) речь о коде, сперва не парился с получением объекта, после увидев непонятное поведение, начал получать объекты "для верности"
|
|||
23
Ковычки
15.05.13
✎
13:17
|
+ лучьше поясните результат (15) и (16) - в чем разница Хар2 и Хар1 в сабже ?
|
|||
24
wms
15.05.13
✎
14:24
|
(15)кеш почисти
|
|||
25
Ковычки
15.05.13
✎
14:27
|
(24) и что теперь его на каждый чих чистить ?
хотя при замене как в (15)(16) сто раз проверено все ок, а наоборот не работает. Должно быть ясное объяснение такого поведения. |
|||
26
France
15.05.13
✎
14:30
|
УстановитьПометкуУдаления, а не
ПометкаУдаления = Истина... |
|||
27
France
15.05.13
✎
14:31
|
(26) не, не туда посмотрел))..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |